Hacker News Scraper — stories, comments, jobs, Who is hiring
Pricing
$0.20 / 1,000 stored item (story, comment, job or candidate)s
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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):
| field | description |
|---|---|
id, rank, kind | HN item id, position in the list, story / ask / show / job / poll |
title, url, domain, text | Link and (for Ask/Show/Jobs) the post body as plain text |
author, points, num_comments, created_at | Metadata (UTC ISO timestamp) |
hn_url | https://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
| field | default | meaning |
|---|---|---|
mode | top | top, new, best, ask, show, jobs, search, whoishiring |
query | — | search text (mode search) |
searchTags | story | Algolia tags: story, comment, poll, show_hn, ask_hn, front_page, job, author_pg, story_8863; , = AND, (a,b) = OR |
sortBy | relevance | relevance or date |
dateFrom, dateTo | — | search window, YYYY-MM-DD (UTC) |
minPoints | 0 | search: minimum upvotes |
maxItems | 100 | max story/job rows (lists: up to 500; search: up to 5,000) |
includeComments | false | add comment rows per story |
commentDepth | 1 | 1 = top-level only, 2 = plus replies, … |
maxCommentsPerStory | 100 | cap per story |
hiringThread | who-is-hiring | who-is-hiring, who-wants-to-be-hired, freelancer |
hiringMonth | latest | YYYY-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), sopoints/num_commentscan lag HN by a few minutes. - Comments are loaded from Algolia in one call per story (up to 5,000 per story);
depthis 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 getheader,header_parts,text,urlsandemails, butcompany/role/locationmay be off.remote/onsite/hybridare 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.