Vibeleaderboard
Index / app
Visit github.com
Category
AI Tools
Rank
Pricing
Open Source
Type
APP
Use case
Workflow Automation
Interfaces
Desktop
Builder
@Vasu_Devs
Latest release
v1.7.0
Date

About

A local-first AI workbench for job hunting that scrapes roles from multiple sources, ranks them by fit using transparent criteria, and generates tailored application materials like resumes and cover letters. Designed for people tired of noisy job boards and black-box AI apply tools.

What it does

This is a desktop application, not a browser extension, that runs entirely on your own machine and pulls job postings in from many different channels: company career pages, RSS feeds, forums, and configured APIs. Before anything is shown to you, incoming listings pass through a rules-based filter that discards stale, thin, or spammy postings. What survives gets scored against your own resume and experience footprint using a profile graph, and the app can then draft a resume, cover letter, and outreach notes for roles that clear your threshold.

Why it's ranked here

AGPL-3.0 licensing and a genuinely offline default set this apart from the wave of cloud-dependent apply bots: local embeddings, a local graph database, and support for locally-run language models mean the core matching and generation pipeline needs no API key and no data leaving the machine. The backend also takes real security precautions for a piece of software that talks to a webview, restricting which hosts can reach it and refusing to leak internal errors. The macOS build is not yet notarized and the automation lab is explicitly unsupported, but the reviewed core is stable enough to trust with real job data.

What's good

The lead pipeline runs a deterministic quality gate before anything reaches ranking, so stale, senior-only, or spammy postings get filtered out early rather than polluting every score downstream. When a lead is evaluated, matching draws on a profile graph built from an imported resume rather than simple keyword overlap, and the whole pipeline can run on a local model with no subscription required. Generated output goes past a single resume: cover letters, a founder message, a LinkedIn note, a cold email, and a keyword coverage summary all come from the same pass, giving a reviewer several drafts instead of one template filled in.

Tradeoffs

The macOS build is ad-hoc signed rather than notarized, so Gatekeeper blocks it on first launch until a user manually approves the app, a real speed bump next to a signed installer. The advertised thin installer is misleading on its own: the actual runtime, including a browser engine and vector libraries, downloads separately on first run before anything works. Browser automation and auto-apply exist in the codebase but are explicitly experimental and off by default, so anyone wanting automated submissions rather than reviewed drafts has to opt into an unsupported path.

How to use it well

This fits someone running a real search across weeks who wants to see why a role scored the way it did rather than trust a black box, and who is comfortable reviewing AI-drafted resumes and cover letters before sending them rather than approving one-click submissions. Start on the keyless path with a local model before adding a paid provider, since the whole matching and generation flow is designed to work without one. It is a weaker fit for someone who wants full automated applying out of the box, since that capability is present but deliberately unsupported and disabled until turned on.

Technical notes+

backend/main.py reserves the listening socket before announcing its port to the desktop shell and hands that same socket straight to uvicorn, closing a TOCTOU window where another process could grab the port after it was announced, and it lazily builds the FastAPI singleton through a module-level __getattr__ so the gateway app is constructed once rather than twice. backend/api/app.py pairs a CORS policy scoped to a local-origin regex with TrustedHostMiddleware restricted to localhost, 127.0.0.1 and [::1], a defense against DNS rebinding against the local API, plus a global exception handler that returns a generic 500 with a request id instead of the underlying exception text. backend/graph/__init__.py implements the evaluate/generate/persist flow as a LangGraph StateGraph, and each node (evaluate_node, generate_node, persist_node) catches its own exceptions and returns a partial result with an error field so one failed step degrades the pipeline instead of crashing it. src/App.tsx runs a 15-minute watchdog that clears stuck scanning/reevaluating/cleaning flags if no backend progress event arrives, and polls a health/subsystems endpoint every 30 seconds. backend/core/__init__.py, backend/discovery/__init__.py, and backend/generation/__init__.py are one-line docstring stubs with no logic, consistent with a domain-per-package layout at the top of the backend tree. package.json pins React 19.2.6, the Tauri 2 API, and Vitest 4.1.7, and defines separate release:windows, release:linux, and release:macos scripts that each chain a frontend build, sidecar build, runtime pack, and platform-specific packaging step.

Observed

License
AGPL-3.0-only
Desktop framework
Tauri 2 desktop shell with a React/TypeScript frontend
Backend stack
Python 3.13 backend served over FastAPI with WebSockets
Local CRM storage
SQLite
Profile graph store
Kuzu
Vector store
LanceDB
Embeddings
Bundled local ONNX model with a deterministic hashing fallback, no API key required for semantic matching
Backend network exposure
Local API restricts accepted Host headers to localhost, 127.0.0.1, and [::1]
Automation stack
Browser automation for auto-apply is present in the repository but shipped disabled and marked experimental
Platform packaging
Desktop installers built for Windows, macOS, and Linux with built-in auto-update

Read from README.md, package.json, backend/main.py, backend/api/app.py, backend/core/__init__.py, backend/discovery/__init__.py, backend/generation/__init__.py, backend/graph/__init__.py, src/App.tsx.

What it can do

  • Scrape job postings from multiple sources

    Job board URLs or search criteria → Raw job posting data

  • Filter out low-quality job postings

    Raw job posting data → Filtered list of quality job postings

  • Rank job postings by fit using transparent criteria

    User profile/preferences and filtered job postings → Ranked list of jobs with fit scores

  • Generate tailored resumes

    User profile and specific job posting → Customized resume document

  • Generate tailored cover letters

    User profile and specific job posting → Customized cover letter document

  • Store all job data locally

    Job postings and application materials → Local database of job hunting data

Tags

job-searchaiscrapinglocal-firstdesktop-appresume-generatorhiring

Tech Stack

Node.jsTypeScriptVite

Featured in Intel

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.