
Image: freehire
Why it mattersHiring teams and job seekers can now self-host a job index that pulls from each company's own careers page. The MCP server lets Claude Code and ChatGPT search the catalogue in a chat.
Most job boards show the same opening five times, and half the links are already dead. Freehire is a new open-source project that fixes both. It reads jobs directly from each company's own careers page. It then collapses every repost into one entry. The project launched on Show HN on 26 October with 21 points.
What it does
Freehire is a Go server. It uses Postgres with pgvector, Meilisearch and Redis. The server crawls every company that uses one of 124 applicant-tracking systems. Workday, Greenhouse, Lever, Ashby and iCIMS are all in. The author also crawls 97 Telegram channels and a long list of third-party aggregators. That makes 320 sources in total.
A snapshot in the README is dated 20 October. It counts 3,371,563 unique open postings across 477,323 companies. Each repost of a role is collapsed into one entry. The hosted site at freehire.me carries the same catalogue, free, with no account required.
What is new for a reader
Three ways to use the index are not standard on a job board. A Chrome and Firefox extension opens a side panel on any posting. It fills in the application form from a stored profile.
A separate MCP server lets Claude Desktop and Claude Code query the catalogue inside a chat. A prompt such as "find me a senior Go role in Berlin that is remote-friendly" turns into a search call. The server also exposes ChatGPT Actions for the same job. A CLI is available for people who prefer the terminal. The server supports keyless read access to the HTTP API.
What is around the search
The author describes the project as four surfaces: find, apply, track and ask. The CV builder renders ATS-safe PDFs. It scores a CV against a vacancy with a deterministic rule set. Only then does it add an LLM analysis on top.
A built-in mail inbox links recruiter replies to the application they answer. An event ledger records every change. A posting-reality signal, labelled "ghost", scores whether a job is still open. The LLM features connect to any OpenAI-compatible endpoint through langchaingo. Bifrost handles per-user keys and Langfuse records every LLM call. No model vendor is baked in.
Traction and licence
The repository was created on 7 June 2026. It carries 3,092 stars and 313 forks under the MIT licence. The code is one repository. It holds the API, the SvelteKit frontend, the extension, and every crawler and worker.
A hiring team or a job seeker today pays for a scraping service or a seat on a commercial board. This is an invitation to run the same pipeline in-house. A team can change what counts as a match. It can also feed the catalogue to the coding agents it is already paying for.
Source
- The repository and README at github.com/strelov1/freehire
- The Show HN launch at news.ycombinator.com/item?id=50237813
This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.
Get AI News in your inbox
New developer tools, model and agent releases, and how teams are actually using them to release software. Short, and only when there is something worth reading.