Every month since April 2011, a Hacker News account posts “Ask HN: Who is hiring?” and companies reply with one top-level comment each. The format is a convention — company, location, roles, a link, often a salary, separated by pipes — and a convention is something a parser can lean on but never trust. This guide is about where that convention holds.
Where the threads come from
Two public APIs serve Hacker News. Y Combinator publishes a Firebase-based API on GitHub that serves items one by one; reading a thread of several hundred comments through it means one request per comment. The Algolia HN Search API adds search by tag and date, and a request without any key returned the latest Who is hiring thread on 10 October 2026. The Hacker News Who is Hiring Scraper reads the Algolia API, one request per thread, and does not request pages from news.ycombinator.com itself.
That distinction matters for robots.txt. news.ycombinator.com/robots.txt, fetched on 10 October 2026, sets a 30-second crawl delay and disallows action paths such as voting, replying and flagging. The Algolia host's robots.txt returned 404 the same day. The archive behind the API holds 184 monthly threads and about 93,700 company posts.
Months are addressed the way a scheduled job needs them: 2026-10, October 2026, latest or latest-1. A monthly schedule with latest and a dedupe on postId is the simplest feed, with one caveat — the thread opens on the first weekday of the month and keeps growing for days, so a run on the first sees about 100 posts where the finished September 2026 thread had 254.
From free text to fields
On 848 company posts from the July to October 2026 threads, the parse rates were:
| Field | Filled | Source of the value |
|---|---|---|
company | 91% | First line, or an “At X we are hiring” opening |
domain | 80.8% | Website, careers subdomain or a corporate email |
roles | 76% | First line, role lists and bullets |
stack | 63% | 111 recognised technologies |
salaryMin / salaryMax | 37% | Every band, with currency and period |
contactEmails | 28.8% | De-obfuscated, personal domains removed |
visaSponsorship | 8.7% | True 3.5%, false 5.2% |
Of 284 posts that stated a salary currency, 252 were USD, 19 EUR, and the rest GBP, CAD, PLN, AUD and CHF. A post that lists several bands keeps all of them in salaries; the top-level minimum and maximum are the first band. Where a post says nothing, the field is null — the original text and HTML are always beside the parsed fields, so a null can be checked.
Latin America eligibility, three states
latamEligible answers whether someone in Latin America can apply, and it has three values because posts have three states. On the 848 posts: true on 7.1% — a Latin American place in the location, or remote worldwide or Americas; false on 65.9% — remote restricted to another region or an office elsewhere; null on 27.0%, where the post does not say. latamSignals records the words behind each decision, such as remote:worldwide, so a reader can disagree with a specific row.
Companies across months
With outputType: companies, every post a company made in the chosen months merges into one row, grouped by domain, or by normalised name when no domain is found. Over twelve threads from November 2025 to October 2026, 1,822 companies came from 3,475 posts; 84.0% grouped by domain. 34.6% posted more than once and 18.7% in three months or more, which is a repeat-hiring signal no single month shows.
The aggregated salary range takes the lowest and highest bound of the company's most common currency and period, and never mixes currencies; every band stays listed with the month it came from. Filters apply to posts before grouping, so a remote-only company list is built from those companies' remote posts only, not from everything they ever posted.
For startup hiring with structured salary and equity rather than free text, the Wellfound guide covers a source that publishes them as fields; for a Latin American board with a documented API, Get on Board.
Posts that are people
Company posts are delivered with corporate and role addresses as published. Addresses on personal domains — 19 of 269 addresses in the measured company posts — are removed from contactEmails and hidden inside rawText and rawHtml unless includePersonalEmails is on. The author's Hacker News username is delivered as shown.
The Who wants to be hired thread, and the SEEKING WORK posts of the freelancer thread, are written by individuals looking for work. Both threads are off by default. When added, every email, phone number and CV link in those posts stays hidden unless personal emails are enabled, which the input says to do only with a lawful basis. In company mode the job-seeker thread is not read at all. The email pattern never uses personal addresses, and a pattern backed by observed addresses was found for 4 of 480 domains — the other 476 got a free guess marked inferred.
How this source compares with the other four, including on people data, is in the cluster overview.
What it costs
A post is $0.004 and a company row $0.01. Measured on Apify on 2 October 2026: the latest month at 100 posts cost $0.40 in 5 seconds; twelve months merged into 100 companies cost $1.00 in 55 seconds. A month that does not exist yet returns one explanatory error row and costs nothing.
{
"outputType": "companies",
"months": ["latest", "latest-1", "latest-2", "latest-3", "latest-4", "latest-5"],
"maxItems": 500
}