Hacker News Scraper — stories, comments, jobs, Who is hiring avatar

Hacker News Scraper — stories, comments, jobs, Who is hiring

Pricing

$0.20 / 1,000 stored item (story, comment, job or candidate)s

Go to Apify Store
Hacker News Scraper — stories, comments, jobs, Who is hiring

Hacker News Scraper — stories, comments, jobs, Who is hiring

Pricing

$0.20 / 1,000 stored item (story, comment, job or candidate)s

Rating

0.0

(0)

Developer

Arthur

Arthur

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape Hacker News into a clean dataset: the front page, newest, best, Ask HN, Show HN and job listings; full-text search with date and points filters; comment threads (depth-limited); and the monthly "Who is hiring?" thread parsed into structured job rows (company, role, location, remote/onsite/hybrid, salary, links, contact e-mails). Uses HN's official Firebase API and the Algolia HN search API — no login, no browser, no proxies, fast and cheap.

Typical uses: tech-news monitoring and digests, brand/competitor/keyword alerts (e.g. every story mentioning your product), research datasets and LLM inputs, job boards and recruiting leads from "Who is hiring?", Show HN launch tracking, sentiment analysis on comments.

What you get

Stories (type: "story", modes top/new/best/ask/show/jobs/search):

fielddescription
id, rank, kindHN item id, position in the list, story / ask / show / job / poll
title, url, domain, textLink and (for Ask/Show/Jobs) the post body as plain text
author, points, num_comments, created_atMetadata (UTC ISO timestamp)
hn_urlhttps://news.ycombinator.com/item?id=…

Comments (type: "comment", with includeComments or searchTags: comment): id, story_id, story_title, story_url, parent_id, depth, author, created_at, text (plain text, HTML entities decoded), hn_url.

Jobs (type: "job", mode whoishiring): company, role, location, remote, onsite, hybrid, visa, interns, salary (first salary range found, e.g. $170-240K), urls, emails, header (the post's first line), header_parts (the first line split on |), text (full plain text), thread_title, month, author, created_at, hn_url.

Candidates (type: "candidate", thread "Who wants to be hired?"): location, remote, willing_to_relocate, technologies, resume, email, header_parts, urls, emails, text.

Problems (bad mode, no matching thread, API errors) produce a type: "error" row — free.

Export as JSON, CSV or Excel, or push rows to Google Sheets, Make, Zapier, webhooks or your code through the Apify API.

Input

fielddefaultmeaning
modetoptop, new, best, ask, show, jobs, search, whoishiring
querysearch text (mode search)
searchTagsstoryAlgolia tags: story, comment, poll, show_hn, ask_hn, front_page, job, author_pg, story_8863; , = AND, (a,b) = OR
sortByrelevancerelevance or date
dateFrom, dateTosearch window, YYYY-MM-DD (UTC)
minPoints0search: minimum upvotes
maxItems100max story/job rows (lists: up to 500; search: up to 5,000)
includeCommentsfalseadd comment rows per story
commentDepth11 = top-level only, 2 = plus replies, …
maxCommentsPerStory100cap per story
hiringThreadwho-is-hiringwho-is-hiring, who-wants-to-be-hired, freelancer
hiringMonthlatestYYYY-MM to pick an older thread

Examples:

{ "mode": "whoishiring", "maxItems": 1000 }
{ "mode": "search", "query": "postgres", "sortBy": "date", "dateFrom": "2026-08-01", "minPoints": 50, "maxItems": 200, "includeComments": true, "commentDepth": 1, "maxCommentsPerStory": 20 }

Schedule the actor (hourly for new/search, monthly for whoishiring) and deduplicate on id to build a continuous monitor.

Pricing

Pay per event: $0.0002 per stored row ($0.20 per 1,000 stories, comments or jobs). Error rows are free. Apify platform usage (a few seconds of compute per run) is billed separately by Apify.

Limitations — please read

  • List modes (top, new, …) return at most the 500 items HN publishes; story metadata comes from Algolia's index (with a per-item Firebase fallback), so points/num_comments can lag HN by a few minutes.
  • Comments are loaded from Algolia in one call per story (up to 5,000 per story); depth is computed from the parent chain. Deleted/empty comments are skipped.
  • "Who is hiring?" parsing follows the community convention Company | Role | Location | … on the first line. Posts that ignore the convention still get header, header_parts, text, urls and emails, but company/role/location may be off. remote/onsite/hybrid are keyword flags, not verified facts. Candidate posts are even less uniform — treat those fields as best-effort.
  • Search is limited by Algolia to 50 pages × 100 hits.

Not affiliated with Y Combinator or Hacker News. Public data only; respect people's contact preferences when using e-mails from posts.