Inspiration

I'm job-hunting right now, from Brazil, for remote roles based in the US — and I couldn't find a tool that filtered for "remote, no US presence required" properly. So I built the one I needed.

This is the fourth product I've shipped this year. The other three quietly failed — nobody talks about that part online, but it's true. This time I wasn't trying to build a business with a "pay now" button. I was solving my own problem, and I use freehire.me every day myself, which keeps me honest about what it actually needs to do.

What it does

freehire.me crawls employer career pages directly, normalizes every posting into one schema, dedupes reposts, and enriches them with AI-derived facets (seniority, skills, remote regions, etc.) — then indexes all of it for filtered search. It's fully open-source, the API is public, and most people never even register.

It's also agentic by design: other tools already use freehire as their job-search backend — ai-job-search (~30k users) runs its search on top of our index, and we're in talks with a larger tool (~60k users) about doing the same instead of building their own crawler.

For [Shipaton] we built a mobile companion: instant push notifications the moment a job matching your saved filters goes live — free, no catch — plus one-tap AI CV tailoring for that exact posting, drawing on an "experience bank" you fill in yourself. The tailoring is the one piece that costs real LLM spend per use, so it's the part behind a RevenueCat subscription — search itself stays free, always.

How we built it

Go + Fiber backend, Postgres, sqlc, Meilisearch for search, langchaingo for LLM enrichment, per-ATS-provider crawlers (Greenhouse, Ashby, Workable, Lever…), SvelteKit for the web app. The mobile app wraps the existing push and CV-tailoring pipelines behind RevenueCat for subscription handling.

Challenges we ran into

Getting job data at scale without hammering employer career pages, and reliably deduping the same posting when it reappears across boards. Bigger than that: figuring out where the free/paid line honestly belongs — search and data had to stay free, since that's the whole point of the project, but AI CV tailoring burns real money per call, so charging there (and only there) was the one line that didn't compromise what freehire is for

Accomplishments that we're proud of

The whole thing is open-source, and the API is already powering two other people's tools without us asking them to. We publish live usage metrics in the open. And the AI CV-tailoring pipeline — built on evidence the candidate actually provided, not invented by a model — already works, even before this hackathon.

What we learned

Openness earned trust faster than any launch post did — people plugged into the API because they could read the source, not because we marketed it. And the parts of a product worth charging for are the parts that cost real money to run, not the parts that are simply valuable.

What's next for freehire.me

Auto-apply on top of the experience bank, AI interview prep tailored to a specific role (in progress), and growing the mobile push+tailor loop into the first real revenue line — one that funds free search for everyone else, rather than replacing it

Built With

Share this project:

Updates

Submission history