An open-source job engine that scrapes straight from the ATS
Freehire crawls 3.3 million live IT postings directly from company ATS pages, deduplicates the reposts, and serves them through a faceted search API — no recruiters, no dead links.

What it does
Freehire is an open-source job aggregator that crawls live postings directly from roughly 294,000 company career pages and 92 ATS platforms — Workday, Greenhouse, Lever, and others. It normalizes every listing into a single schema, collapses duplicate roles, and exposes the catalogue through a SvelteKit 2 frontend and a public, keyless HTTP API. The repository also packs a full application toolkit — CV scoring, ATS-tailored PDF generation, an in-process LLM assistant, and application tracking — though several of those features need an LLM endpoint configured to wake up.
The interesting bit
Most job boards are mirrors of mirrors; Freehire treats the company’s own ATS as the only source of truth, deriving search facets like region, seniority, and salary from curated dictionaries rather than guessing. The architecture is aggressively modular: the HTTP server is just one entry point in cmd/, while crawling, enrichment, semantic embedding, and search indexing are standalone workers that run as cron jobs and exit when their queue is drained.
Key highlights
- Crawls 3.3 million live postings from 225 sources, linking directly to original company pages instead of reposts.
- Deduplicates listings using a stable key, so the same role on three boards surfaces once.
- Faceted search powered by Meilisearch, with semantic embeddings stored in PostgreSQL via pgvector.
- Go backend using
sqlcfor type-safe database access — no ORM — and a SvelteKit 2 frontend running Svelte 5 runes. - Ships with a CLI, a Telegram digest worker, an MCP server for Claude, and a Chrome extension for form filling.
Caveats
- Several features — AI enrichment, CV tailoring, the in-app assistant — require an LLM endpoint and credits, and stay disabled if unset.
- The worker model is cron-oriented: if you self-host, you are responsible for scheduling ingest, enrichment, and search-drain jobs.
- Schema migrations do not re-apply to existing Postgres volumes automatically; manual intervention is needed.
Verdict
Job seekers tired of stale reposts and developers who need a structured, queryable job corpus will find a lot to like. If you are looking for a five-minute install that runs itself, the worker-heavy, cron-dependent architecture will test your patience.
Frequently asked
- What is strelov1/freehire?
- Freehire crawls 3.3 million live IT postings directly from company ATS pages, deduplicates the reposts, and serves them through a faceted search API — no recruiters, no dead links.
- Is freehire open source?
- Yes — strelov1/freehire is open source, released under the MIT license.
- What language is freehire written in?
- strelov1/freehire is primarily written in Go.
- How popular is freehire?
- strelov1/freehire has 663 stars on GitHub and is currently accelerating.
- Where can I find freehire?
- strelov1/freehire is on GitHub at https://github.com/strelov1/freehire.