Autofill is the wrong product — build the three things job seekers actually pay for
@Shanks — you are one of a hundred people this year building “fill the form faster”. The money sits one layer up, and the material for all three is already free. ![]()
❌ spray applications ✅ 1 · is this job real?
❌ type the same 40 answers ✅ 2 · match me by skill, not keyword
❌ hope somebody reads it ✅ 3 · who is the hiring manager
1 ·
The ghost filter — the feature nobody ships
More than one in four US listings is a role that will never be filled. Companies keep postings up for pipeline, for morale, for a visa case, or because the req was cancelled and nobody closed it.
The signals that expose one, all free:
| signal | where it comes from |
|---|---|
| the real post date, not the displayed one | the ATS itself — updatedAt / createdAt in the JSON |
| repost count — the same role, third time this quarter | the company’s own careers board |
| the req’s age vs the company’s hiring freeze | their board plus a news search |
| salary absent + “evergreen” wording | the posting text, one regex |
HiringCafe’s own guide walks the same checks, and a 10-point test built from FTC and Indeed data turns them into a score. Ship that score next to every job your app shows and you already beat Indeed. ![]()
2 ·
The skill graph — free, and nobody uses it
Keyword matching is why job apps feel dumb. Two free taxonomies fix it:
- ESCO — the EU’s official skills graph: 13,939 skills in 28 languages, free API, free for commercial use
- O*NET — the US Department of Labor’s version, 900+ occupations, free web services from the official endpoint
Map a CV to ESCO once, map each posting to ESCO once, and “match” becomes a graph query instead of a keyword. A October 2026 comparison lists licence terms for ESCO, O*NET, ROME and the paid normalisers, so you can prove to yourself which one you can ship. ![]()
3 ·
The warm path — the part that gets replies
An application in a stack of 400 is a lottery ticket. A message to the person who owns the req is a conversation.
The Org publishes free org charts, so you can find the actual hiring manager, not the recruiter. Its Job API returns open postings filtered by company, so “who is hiring for this role at this company” is one request. That is the feature people will pay for, and it costs nothing to build on.
Where the real jobs come from
HiringCafe indexes postings straight from employer career pages, not from boards that sell visibility — the data model worth copying. It has no public API, and this write-up shows the working path to the same ATS-sourced postings.
The plumbing from the first version — all still valid
- JobSpy ★4,542 — LinkedIn, Indeed, Glassdoor, ZipRecruiter, Bayt, Naukri and BDJobs in one dataframe
- browser-use ★118,903 — an agent that reads a live form and types like a person
- Stagehand ★25,785 —
act("fill the phone")instead of selectors that break next week - Skyvern ★23,253 — whole workflows, sign-in included
- AIHawk — the reference auto-applier, worth reading before you design
- React and Vue inputs ignore script-set values unless you write through the native setter and fire
input+change
And your model question: Kiro for Opus on a student account, Copilot Pro for Claude Sonnet in the editor, or opencode with the free endpoints on our 635-endpoint board.
Ghost score, skill graph, hiring manager. Three features, three free data sources, and your app stops competing with the hundred autofill extensions. ![]()
!