Hacker News Scraper: Who Is Hiring Jobs, Stories, Comments avatar

Hacker News Scraper: Who Is Hiring Jobs, Stories, Comments

Pricing

from $0.35 / 1,000 results

Go to Apify Store
Hacker News Scraper: Who Is Hiring Jobs, Stories, Comments

Hacker News Scraper: Who Is Hiring Jobs, Stories, Comments

Scrape Hacker News stories, full comment trees, user profiles and the monthly Who Is Hiring threads as HN jobs with company, role, location, remote, salary and visa fields. Search by keyword, domain or author with date and points filters, past the 1,000-result limit. Official HN API.

Pricing

from $0.35 / 1,000 results

Rating

0.0

(0)

Developer

Ctrio Lab

Ctrio Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Categories

Share

Hacker News Scraper: Stories, Comments, Who's Hiring, Search

Get Hacker News stories, full comment trees, user profiles, search results and the monthly "Who is hiring?" job posts as clean JSON, CSV or Excel. No login, no API key, no browser. Built on the official Hacker News API (Firebase) and the HN Search API by Algolia.

Use it for: tech job leads from Who is hiring, hiring-market research (remote share, salary ranges, stacks), brand and launch monitoring (who links to your domain), competitor and trend research, Show HN and Ask HN analysis, sentiment analysis of big discussions, and LLM / RAG datasets of HN threads.

What you get

ModeOne row perMain fields
Story lists (top, new, best, Ask HN, Show HN, jobs)story (+ optional comments)rank, title, URL, domain, points, comment count, author, date, text, HN link
Search (keyword, linked domain or URL, author, date range, min points, min comments)story or commentsame as above, plus story title and parent for comments
Stories by ID or URLstory + every commentdepth, parentId, path (story/parent/.../comment), reply count, clean text, links
Who is hiring / Who wants to be hired / Freelancertop-level postcompany, role, location, remote (yes / no / hybrid), salary text, visa (yes / no), employment type, company URL, full text, hasEmail flag
User profilesuserkarma, join date, about text, links in about, number of submissions

All text is converted from HN's HTML to plain text. Links are kept as a separate links list.

Features

  • Search beyond 1,000 results. The HN Search API returns at most 1,000 hits per query. In date order the Actor walks back in time automatically, so a query like rust from 2025-01-01 returns every match (tested: 2,500 results in 5 requests).
  • Complete comment trees. Every comment of a story, flattened in HN display order with depth, parentId and path. Tested on a 1,051-comment story: 1,051 of 1,051 comments (100% of HN's own count).
  • Parsed Who is hiring posts. Best-effort extraction of company, role, location, remote, salary, visa and employment type from the usual Company | Role | Location | Remote | Salary first line. Filter by keywords, remote and location. "Who wants to be hired" posts give location, remote, relocation, technologies and resume link.
  • Domain and URL monitoring. Find every HN story linking to yourcompany.com or github.com/your-org. Fuzzy matches are removed, only real links are returned.
  • New items only mode for daily or hourly schedules: the Actor remembers what it already returned per list, search, story or thread and outputs only new items. Runs with nothing new succeed and cost almost nothing.
  • Polite and fast fail. Official APIs only, at most 10 parallel requests to the HN API and at most 2.5 requests per second to HN Search. Rate limits and server errors are retried with backoff. Invalid input stops the run within seconds with a clear message and no charge.

Input examples

Front page right now (default)

{ "mode": "lists", "lists": ["top"], "maxItems": 30 }

This month's Who is hiring, remote jobs that mention Python

{
"mode": "hiring",
"hiringThreads": ["who_is_hiring"],
"hiringMonths": ["latest"],
"hiringKeywords": ["python"],
"hiringRemote": "remote",
"maxItems": 0
}

Last 3 months of Who is hiring in Europe

{ "mode": "hiring", "hiringMonths": ["last 3"], "hiringLocations": ["Europe", "London", "Berlin", "Amsterdam"], "maxItems": 0 }

Every story about Rust since 2025 with at least 50 points

{
"mode": "search",
"searchQueries": ["rust"],
"searchType": "story",
"searchSort": "date",
"dateFrom": "2025-01-01",
"minPoints": 50,
"maxItems": 0
}

Who links to my site (daily monitor)

{
"mode": "search",
"searchDomains": ["github.com/anthropics"],
"searchType": "story",
"onlyNewItems": true,
"monitorName": "anthropic-github-links",
"maxItems": 0
}

Comments mentioning my product in the last 7 days

{ "mode": "search", "searchQueries": ["\"apify\""], "searchType": "comment", "dateFrom": "7 days", "maxItems": 0 }

A whole discussion with every comment

{ "mode": "items", "storyIds": ["https://news.ycombinator.com/item?id=8863"] }

User profiles

{ "mode": "users", "users": ["pg", "dang"] }

Output example

Who is hiring row (type: "job"):

{
"type": "job",
"threadType": "who_is_hiring",
"threadTitle": "Ask HN: Who is hiring? (October 2026)",
"threadMonth": "2026-10",
"id": 49930681,
"author": "PolinaLu",
"firstLine": "Modash.io | Senior Product Engineer | Remote (Europe) | Full-time | €75k–110k | https://modash.io",
"company": "Modash.io",
"role": "Senior Product Engineer",
"location": "Remote (Europe)",
"remote": "yes",
"salary": "€75k–110k",
"visa": null,
"employmentType": "full-time",
"url": "https://modash.io",
"text": "Modash.io | Senior Product Engineer | ...",
"links": ["https://modash.io", "https://modash.io/engineering", "https://apply.workable.com/modash/j/C1507B65C3"],
"hasEmail": false,
"replyCount": 0,
"createdAt": "2026-10-02T07:13:32.000Z",
"hnUrl": "https://news.ycombinator.com/item?id=49930681"
}

Comment row (type: "comment"):

{
"type": "comment",
"id": 47940125,
"storyId": 47939579,
"storyTitle": "Ghostty is leaving GitHub",
"parentId": 47939809,
"depth": 2,
"path": "47939579/47939809/47940125",
"author": "idan",
"text": "Hi there! Longtime fan and hubber here. ...",
"links": [],
"hasEmail": false,
"replyCount": 38,
"createdAt": "2026-04-28T20:21:02.000Z",
"hnUrl": "https://news.ycombinator.com/item?id=47940125"
}

A RUN_SUMMARY record in the default key-value store lists, per list, query, story and thread: rows saved, total matches, comment completeness versus HN's count, non-posts skipped, rows filtered out and errors.

Email addresses

Email addresses in posts and profiles are replaced with [email hidden] and only a hasEmail: true/false flag is returned. This Actor is not a tool for collecting personal email addresses. Use the hnUrl to read the original post and contact people the way they asked to be contacted.

Pricing

Pay per result: $0.50 per 1,000 results plus a tiny Actor start fee. You pay for each row saved to the dataset, nothing for requests that return nothing. Runs that find nothing new in new-only mode cost almost nothing.

Tips

  • Who is hiring fields are best effort. Posts are free text. company, role, location, remote, salary and visa are filled when the post follows the usual pattern. text always has the full post.
  • Relevance vs date order. Relevance is limited to 1,000 results by the search API. Use date order (default) for anything bigger.
  • Points and comment counts in search results come from the search index and can lag a few minutes. Lists and comment trees read live data from the official API.
  • Deleted and flagged (dead) comments are not returned. Their visible replies are, with the original parentId.
  • Usernames are case-sensitive.

Use with AI agents (MCP)

Call this Actor from Claude, ChatGPT or any MCP client through the Apify MCP server (https://mcp.apify.com), for example: "Get this month's remote Who is hiring jobs that mention Rust".

FAQ

Is it legal to scrape Hacker News? This Actor does not scrape the website. It reads the official Hacker News API that Y Combinator publishes for developers, and the public HN Search API. You are responsible for how you use the data, including the privacy of the people who wrote it.

Do I need a Hacker News account or API key? No.

How fresh is the data? Lists and comment trees are live. Search results are usually seconds to minutes behind.

Can I get all comments of a user? Yes: mode search, searchAuthor set to the username, searchType comment, maxItems 0.

This Actor is not affiliated with Y Combinator, Hacker News or Algolia.