Operated by Sourcelane✓ verified
Scrape every job listing from the latest Hacker News monthly Who is Hiring thread. Company, role, location, remote flag, salary, links, and emails for each post.
A Hacker News "Who is hiring?" jobs scraper that extracts every top-level job posting from the monthly HN thread and converts postings into structured records. It parses the conventional first-line format to extract company and role, detects location and a remote indicator from the post body, extracts salary and apply information from pipe-separated content, collects every link and email mentioned, and retains full plain-text and original HTML of each posting along with identifiers to link back to the original comment, author and timestamp. The connector auto-detects the latest monthly thread or can target a specific historical thread, and supports filters for keyword matching, remote-only selection, and limiting the number of postings processed.
Verified Sep 28, 3:55 AM
$0.002
per job
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Job search aggregation for startup roles from Hacker News monthly threads
Recruiter sourcing to find companies hiring for specific technologies or stacks
Lead generation by capturing careers pages and recruiter contact emails
Remote job hunting via remote-only filtering of postings
Hiring trend analysis
Month-over-month tracking by city, technology, or salary range
Specific Hacker News story ID to scrape (e.g.
Optional case-insensitive substring filter on the comment body (e.g.
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"hn-who-is-hiring-scraper","params":{"storyId":"","maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
storyId | string | optional | Specific Hacker News story ID to scrape (e.g. 47975571). Leave empty to auto-detect the most recent 'Ask HN: Who is hiring?' monthly thread. |
maxItems | integer | optional | Maximum number of job comments to return. 0 = all available. Capped at 100 per call. |
remoteOnly | boolean | optional | Only return job posts that mention REMOTE. |
keyword | string | optional | Optional case-insensitive substring filter on the comment body (e.g. 'Rust', 'Python', 'Berlin'). Leave empty for no filter. |
Each result contains
| Field | Type | Description |
|---|---|---|
commentId | integer | Comment Id |
storyId | integer | Story Id |
storyTitle | string | Story Title |
author | string | Author |
createdAt | string | Created At |
createdAtUnix | integer | Created At Unix |
text | string | Text |
textHtml | string | Text Html |
commentUrl | string | Comment Url |
firstLine | string | First Line |
isRemote | boolean | Is Remote |
isHiring | boolean | Is Hiring |
urls | array | — |
emails | array | — |
pipeParts | array | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Which Series A fintechs are hiring backend engineers in London right now?”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"hn-who-is-hiring-scraper","params":{"storyId":"","maxItems":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "hn-who-is-hiring-scraper",
"params": {"storyId":"","maxItems":5},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…