JustHireMe is a free, open source machine learning infrastructure project written in Python and released under AGPL-3.0. It has 2,250 GitHub stars, 360 forks and 38 open issues, and was last pushed 9 days ago. On this registry it ranks #48 of 80 tracked projects in Machine Learning Infrastructure, with 5 head-to-head comparisons available.

JustHireMe

Local-first AI job intelligence for scraping better roles, ranking fit, and generating tailored application materials.

License: AGPL-3.0 Status: Stable v1 Local First Desktop: Tauri Backend: Python GitHub Sponsors

vasu-devs%2FJustHireMe | Trendshift vasu-devs%2FJustHireMe | Trendshift

What It Does · Workflow · Architecture · Quick Start · Standard Procedure · Agent Skill + MCP · Contributing · Roadmap


Star History

Star History Chart

The Short Version

JustHireMe is an AGPL-licensed, local-first desktop workbench for people who are tired of noisy job boards and black-box AI apply tools.

Maintainer

JustHireMe is built and maintained by Vasudev Siddh - full-stack AI engineer, open-source builder, and the person who got tired of bad job boards and built something better.

Sponsor the project - Sponsorship keeps JustHireMe actively maintained, funds source adapter coverage, and supports the local-first architecture that makes this different from every cloud-first alternative.

Current Status

JustHireMe's stable core is the local-first desktop workbench, Python sidecar API, lead ingestion, deterministic ranking, profile-aware matching, local CRM workflows, and document/outreach generation. Every release is built by GitHub Actions from a v* tag and now ships installers for Windows, macOS, and Linux.

Area Status
Frontend workbench Stable
Python sidecar API Stable
Scraper, ranking, vector matching, and customizer core Supported open-source scope
Windows installer (.exe) Released every version
macOS installer (.dmg + .app) Released every version (ad-hoc signed, not yet notarized — Gatekeeper may need "Open Anyway")
Linux packages (.deb + AppImage) Released every version
Auto-update Built in; the app updates itself from the latest GitHub release
Thin installer + first-run runtime Installer is ~100 MB; the heavy runtime (browser + vector libs + embedding model) downloads once on first run, then is cached
Dark mode Light / Dark / System, system-aware, shipped
Local embeddings Bundled ONNX model (all-MiniLM-L6-v2) with a deterministic hashing fallback — semantic matching works fully offline, no API key
Keyless by default Discovery, ranking, and generation all run with zero API key — local Ollama or your existing Claude Code / Codex CLI subscription can power every LLM step; keyed providers (OpenAI, Gemini, Groq, and 15+ others) are optional, not required
Field-agnostic Discovery, ranking, and tailoring work for any field (healthcare, trades, finance, law, education, hospitality, creative, software, ...) — scoring is relative to the candidate's own domain, not a fixed tech vocabulary
Location-agnostic Targets any city/region worldwide; location is auto-detected from your résumé (or set explicitly), with remote / hybrid / onsite preference
Resume tailoring Works for any field (engineering, design, finance, healthcare, education, trades, ...)
Résumé/profile ingestion Tolerates real-world profile shapes (PDF/DOCX/TXT/MD, JSON Resume exports, LinkedIn zips, GitHub, portfolio URLs) and shows a transparent import report — what was pulled in, skipped, or capped
Explainable matching Fit scores are backed by GraphRAG proof from your own Kùzu skill/project graph, not just a number
Browser automation / auto-apply Experimental lab, disabled by default
API key storage Local app settings; .env is for development overrides; OS keychain planned

If you are new here, start with the frontend preview first. If you want to contribute backend behavior, source adapters, or packaging, use the full desktop setup below.

It helps you:

Stage What JustHireMe Does Why It Matters
Scrape Collect leads from ATS boards, feeds, communities, APIs, and configured sources You are not locked into one job board
Quality Gate Reject stale, thin, spammy, senior-only, or low-context leads before they pollute the pipeline Better signal, less cleanup
Rank Score lead quality and candidate fit with explainable deterministic rules, feedback learning, and optional LLM reasoning You can see why a role is worth attention
Match Use Kuzu graph data and LanceDB vectors to compare jobs against your profile context Matching is profile-aware, not keyword-only
Customize Generate tailored resume PDF, cover letter PDF, and outreach drafts You get a useful package, not just a list of links

Browser automation and auto-apply code exists in the repository, but it is experimental, opt-in, and unsupported as part of the stable core. The supported open-source core is scraper, ranker, vector matching, and customizer.


Visual Workflow

flowchart LR
    A["Import Resume / Profile"] --> B["Profile Graph<br/>Kuzu"]
    A --> C["Skill + Project Vectors<br/>LanceDB"]
    D["Scraper Sources"] --> E["Normalized Leads"]
    E --> F["Lead Quality Gate"]
    F --> G["Ranker + Evaluator"]
    B --> G
    C --> G
    G --> H["Lead Pipeline"]
    H --> I["Customizer"]
    I --> J["Resume PDF"]
    I --> K["Cover Letter PDF"]
    I --> L["Outreach Drafts"]
flowchart TD
    S["Source Adapter"] --> N["Normalize Lead"]
    N --> Q{"Quality Gate"}
    Q -- "Reject" --> R["Filtered with reason"]
    Q -- "Accept" --> C["Local CRM"]
    C --> E["Fit Evaluation"]
    E --> U["User Review"]

    Q:::gate
    R:::reject
    C:::store
    E:::score

    classDef gate fill:#e0f2fe,stroke:#0284c7,color:#0f172a
    classDef reject fill:#fee2e2,stroke:#dc2626,color:#0f172a
    classDef store fill:#dcfce7,stroke:#16a34a,color:#0f172a
    classDef score fill:#fef3c7,stroke:#d97706,color:#0f172a

What It Does

Scrape From Many Sources

Collect jobs from ATS/company boards, RSS feeds, Hacker News, GitHub-style sources, Reddit/community sources, APIs, and custom configured targets.

Reject Low-Quality Leads

Apply a deterministic quality gate before saving leads. Filter stale, thin, senior-only, unpaid, spammy, or missing-context postings.

Rank Fit Transparently

Score role alignment, stack coverage, project evidence, seniority fit, location constraints, red flags, source signal, and semantic profile similarity.

Generate Tailored Packages

Create a resume PDF, cover letter PDF, founder message, LinkedIn note, cold email, keyword coverage summary, an

readme truncated — read the full docs on github

Frequently asked questions

Is JustHireMe free to use?

JustHireMe is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does JustHireMe do?

Local-first AI job intelligence workbench for scraping roles, ranking fit, and generating tailored application materials.

What is JustHireMe written in?

JustHireMe is primarily written in Python. Its source is publicly available at https://github.com/vasu-devs/JustHireMe, and it has 2,250 GitHub stars.