Hacker News hub

Hacker News Who is Hiring API

Discover the monthly Who is Hiring thread and page top-level job comments as structured rows — text is always the source of truth.

GET /v1/hackernews/jobs/who-is-hiring

1 credit per successful request.

About this endpoint

Recruiting and market maps still treat Ask HN: Who is hiring? as a primary signal. Manually finding the current monthly thread, then parsing hundreds of top-level comments for company, role, and remote flags, is a recurring ops chore. Regex scrapers drift every time posters invent a new format.

`GET /v1/hackernews/jobs/who-is-hiring` discovers the active monthly thread and returns top-level comments as job rows. Optional `page` and `pageSize` page the list. On `found`, `data.thread` has id, title, createdAt, and itemUrl; each `data.items` row includes commentId, author, createdAt, full `text`, and best-effort `company`, `role`, `location`, `remote`, `salary`, `visa`, and `contact` (structured fields may be null). Plain-text `text` is always the source of truth.

Credit pricing for this operation comes from the API registry and appears on this page, and `meta.creditsCharged` is the billing source of truth. This is not the same as the `jobs` ranked feed of standalone job items.

Hacker News Who is Hiring API FAQ

How do I list Who is Hiring jobs via API?

Call GET /v1/hackernews/jobs/who-is-hiring with your Social Fetch API key in the x-api-key header. Optionally set page and pageSize. Read data.lookupStatus, data.thread, and data.items.

How many credits does Who is Hiring cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.

Are structured fields always filled?

No. company, role, location, remote, salary, visa, and contact are best-effort parses. They may be null even when the posting mentions them in prose. Always treat data.items[].text as the source of truth.

Who is Hiring vs the jobs feed?

Who is Hiring parses the monthly Ask HN thread into comment-derived job rows. GET /v1/hackernews/feeds/jobs returns the ranked jobs feed of standalone HN job items. Use the route that matches the corpus you care about.

How does pagination work?

Use page and pageSize query params. When data.page.hasMore is true, request nextPage with the same pageSize. Each successful page is a separate billed request.

Do I need to find the monthly thread id myself?

No. The route discovers the current Who is Hiring thread and returns it under data.thread. You do not pass a story id for the default monthly page.

Can I use this for recruiting or market maps?

Yes. Teams page the thread monthly, store commentId as the stable key, and index text plus any non-null structured fields. Persist meta.requestId when a page needs support review.