mrkeyoor.com_
Mon 17 Aug 15:17 UTC
Webevaluationupdated 17 Aug 2026

freehire

freehire is an open-source search engine and job-hunting workspace built from postings collected directly from company career systems. It combines a large deduplicated catalog with saved searches, CV tools, application tracking, and a public API, solving both job discovery and the messy work that follows it.

Verdict

freehire is unusually ambitious and unusually inspectable: the search catalog, CV workflow, tracker, API, and ingestion machinery are all present rather than represented by mock screens. Use the hosted service or API if its catalog matches your market, and consider self-hosting only if the data pipeline itself is worth owning. Its fast development pace is encouraging, but the documented stale-job cases mean accuracy-sensitive users should verify a posting on the employer site before investing time in an application.

Setup3/5Compose starts it, but useful operation needs several services and cron
Docs5/5Excellent feature, architecture, API, and package-level guidance
Community3/5Active development and issue traffic, but a very young community
Maturity3/5Broad working product with important catalog freshness issues open

Who it’s for

Developers who want one searchable catalog across many company career sites without recruiter reposts.
Job seekers who want search, CV tailoring, application tracking, and reminders in one open-source workspace.
Teams building job-data products on a public HTTP API or their own self-hosted crawl.
Go and Svelte contributors willing to improve source adapters, classification dictionaries, or job lifecycle logic.

Who it’s NOT for

Anyone who requires every listed opening to be freshly verified: issue #2017 documents whole providers with jobs still marked open after going unseen for days.
Casual self-hosters expecting a single lightweight binary: the basic stack includes PostgreSQL, pgvector, Meilisearch, Redis, MinIO, a Go API, and a SvelteKit frontend.
Operators who cannot schedule and monitor many run-once workers: crawling, enrichment, indexing, notifications, embeddings, and cleanup are separate commands intended for cron.
Teams wanting complete AI features without an external model endpoint: the feature guide says analysis, tailoring, extraction, and assistant functions need an OpenAI-compatible service.
Users who need uniformly complete international coverage: issue #2038 tracks unresolved board identifiers across several ATS providers, and the remaining interface translations are still open work.

Setup reality

The README's make up route is credible for a local tour because Docker Compose starts the API, frontend, PostgreSQL, Meilisearch, Redis, and MinIO together. A useful private deployment is much more involved: set secrets, persist and back up several data services, schedule the run-once workers, load source files, monitor crawl health, and decide whether to provide LLM and embedding endpoints. Starting the software is easier than recreating the hosted catalog, whose value comes from continuously crawling hundreds of configured sources and keeping millions of records current.

More than another job-board frontend

freehire starts with a good premise: fetch openings from the systems where employers actually publish them, normalize the results, and send users back to the original posting. The repository says its hosted catalog contains more than 3.3 million open jobs from over 294,000 companies, collected through 225 live sources. Those are the project's own live snapshot figures, not independently audited counts, but the implementation behind them is visible. Adapters cover major applicant-tracking systems, aggregators, Telegram channels, and direct company feeds.

The result is not merely a searchable table. freehire adds saved searches, email and Telegram digests, market views, a CV builder, application stages, recruiter-mail linking, referrals, and an in-process assistant. A public, keyless API and separate CLI make the catalog useful outside the web interface. The breadth is the main reason to try it, especially if your current routine is spread across browser tabs, a spreadsheet, and several job alerts.

That breadth also makes the product harder to summarize honestly. This is a young employment platform, crawler fleet, search index, document workspace, and AI-assisted application tool in one repository. Buyers should judge each layer separately rather than assuming a polished search page proves the entire pipeline is equally dependable.

The data pipeline is the product

The most convincing part of freehire is its architecture. Provider-specific workers fetch boards, normalize postings into one schema, deduplicate them, and write changes to PostgreSQL. Transactional outboxes feed enrichment and search indexing later, so a crawl does not have to update Meilisearch directly. Workers run once and exit, allowing each provider and queue drain to have its own cron schedule. That is a sensible way to keep one slow source from blocking the rest.

Classification favors explicit dictionaries over model guesses. Unknown skills, locations, or roles produce no tag instead of a confident but wrong facet. Search coverage may be thinner when a posting uses unusual wording, but filters are easier to trust. The repository also exposes how jobs close, reopen, and survive hard deletion from user histories. This level of written operational reasoning is rare in an application README.

There is a serious qualification. Issue #2017, opened August 16, 2026, reports several providers with jobs still marked open even though their records had not been seen for days. Some providers were affected entirely, while others contained large stale subsets. Issue #2038 separately tracks 59 board identifiers that remained unresolved after repeated checks. The maintainers are clearly measuring and documenting data quality, which is positive, but these reports cut directly into the promise of avoiding dead listings. Always follow the employer link and confirm the vacancy still exists.

The job-seeker workspace is thoughtfully constrained

The features beyond search show more care than the usual AI wrapper. CV matching has a deterministic layer, while optional model analysis sits on top. Tailoring may only draw claims from a stored experience bank, and provenance rules prevent model-inferred achievements from being written into a CV as facts. Edits are revisioned and undoable. The assistant has no shell, receives no newly minted credential, and can call only registered application services. Mail tools cannot send messages.

Those choices do not eliminate risk, but they put useful limits in code instead of relying entirely on prompts. The ghost-job feature follows a similar pattern: it presents observed signals and evidence, not a definitive accusation against an employer. Tracer links are opt-in per CV. These are good product decisions for sensitive personal and employment data.

Several functions need extra services. Fit analysis, tailoring, Telegram extraction, and the assistant require an OpenAI-compatible endpoint. Semantic work uses embeddings stored through pgvector. OAuth, email, object storage, and notifications each bring their own configuration. A user can search without enabling all of this, but a self-host that aims to match the public product must manage many credentials and background jobs.

Setup is simple only at the demonstration layer

For local evaluation, make up is admirably direct. Docker Compose builds and starts the API, frontend, PostgreSQL, Meilisearch, Redis, and MinIO, then health and jobs endpoints can be queried with curl. Developers can instead run only the database in Docker and start the Go server on the host. The README explains required secrets, migrations, port changes, and common maintenance commands.

Operating a useful instance is a different commitment. You need persistent storage and backups for multiple services, a secure JWT secret, scheduled crawl and queue-drain workers, search-index maintenance, source configuration, and visibility into failed or cooled boards. Recreating the hosted catalog means continuous network work and substantial stored data, not just starting six containers. The frontend also consumes a separately linked design-system package, which matters when building outside the supplied path.

The documentation earns high marks because it does not stop at installation. Dedicated feature and architecture guides explain boundaries, queues, authentication, job lifecycle, and the repository layout. Many internal packages have their own contributor guidance. The volume can be intimidating, but it answers questions operators actually face.

Health and the decision

The repository was created in June 2026, pushed on August 17, and released an extension update the same day. Its 59 open items combine issues and pull requests, so that number is not a defect count. Recent issue activity covers both production data failures and detailed source cleanup, while the codebase is changing quickly. This is active but young software, with a large surface area accumulated in a short period.

For ordinary job seekers, the hosted site is the sensible first stop. Its direct-source links, useful facets, and integrated tracking provide more value than cloning the repository. For developers, the public API or JobSpy may cover a narrower data need with far less operational weight. Self-host freehire when control over the catalog and workflow justifies running the crawler fleet, search engine, storage services, and optional model infrastructure. It is one of the more credible open job-search projects available, but its own issue tracker shows why the final source check still belongs to you.

Alternatives

ProjectWhat it isPick it when
JobSpyA Python library that scrapes several major job sites into a common table.pick this instead when you need job data inside a Python script and do not want to operate a complete search and applicant workspace.
Simplify New Grad PositionsA maintained list of software, quant, and product roles for new graduates.pick this instead when your search is limited to new-graduate roles and a curated list is more useful than a self-hosted platform.
HiringCafeA hosted job search product focused on direct employer listings and detailed filters.pick this instead when you only want to search and have no interest in source code, APIs, or operating infrastructure.

What people are saying

  1. [github-trending] strelov1/freehire

Sources

  1. freehire repository and README
  2. freehire feature reference
  3. freehire architecture guide
  4. Issue #2017: stale open jobs across providers
  5. Issue #2038: unresolved board identifiers
  6. Latest freehire release