← all repositories
strelov1/freehire

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.

663 stars Go RAG · SearchDomain Apps
freehire
Velocity · 7d
+12
★ / day
Trend
accelerating
star history

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 sqlc for 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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.