# Need help with my own open source project

**URL:** <https://onehack.st/t/need-help-with-my-own-open-source-project/326421>\
**Category:** Discussion & Solutions\
**Tags:** solved\
**Created:** [Oktober 12, 2026, 11:14pm UTC](https://onehack.st/t/need-help-with-my-own-open-source-project/326421 "2026-10-12T23:14:02Z")\
**Posts on this page:** 1\
**Showing post:** 12

<div class="post-metadata">

**Author:** ![SRZ](https://onehack.st/user_avatar/onehack.st/srz/32/146132_2.png) [@SRZ](https://onehack.st/u/SRZ)\
**Post date:** [Oktober 23, 2026, 2:47am UTC](https://onehack.st/t/need-help-with-my-own-open-source-project/326421/12 "2026-10-23T02:47:14Z")

</div>

# 🧭 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. 🎯

```auto
❌ 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](https://hiringcafe.com/insights/how-to-avoid-ghost-jobs)** walks the same checks, and **[a 10-point test built from FTC and Indeed data](https://www.lumyhired.com/blog/ghost-jobs-2026)** 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](https://services.onetcenter.org/about)

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](https://hirelayer.co/blog/skills-taxonomy-api-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](https://theorg.com)** publishes free org charts, so you can find the actual hiring manager, not the recruiter. Its **[Job API](https://developers.theorg.com/api/endpoints/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](https://hiringcafe.com/)** 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](https://jobspipe.dev/blog/hiring-cafe-api)** to the same ATS-sourced postings.

> **The plumbing from the first version — all still valid**
>
> - **[JobSpy](https://github.com/speedyapply/JobSpy)** ★4,542 — LinkedIn, Indeed, Glassdoor, ZipRecruiter, Bayt, Naukri and BDJobs in one dataframe
> - **[browser-use](https://github.com/browser-use/browser-use)** ★118,903 — an agent that reads a live form and types like a person
> - **[Stagehand](https://github.com/browserbase/stagehand)** ★25,785 — `act("fill the phone")` instead of selectors that break next week
> - **[Skyvern](https://github.com/Skyvern-AI/skyvern)** ★23,253 — whole workflows, sign-in included
> - **[AIHawk](https://github.com/feder-cr/Auto_Jobs_Applier_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](https://github.com/sst/opencode)** with the free endpoints on our [635-endpoint board](https://onehack.st/t/free-ai-instead-of-chatgpt-and-claude-34-providers-635-endpoints-one-key/326626).

**Ghost score, skill graph, hiring manager.** Three features, three free data sources, and your app stops competing with the hundred autofill extensions. 🚀

---

_[View the full topic](https://onehack.st/t/need-help-with-my-own-open-source-project/326421)._
