
HN Who is hiring
io.github.Crayz129Published by GitHub account Crayz129v0.1.0Updated Oct 24, 2026
Search, read and compare Hacker News "Who is hiring?" job posts as typed data. Read-only.
Overview
A local MCP server that turns Hacker News monthly 'Who is hiring?' threads into a searchable, structured job feed for assistants.
- What you can do
- List the latest monthly hiring threads with ids and comment counts, and search one month's posts by free text, location, work mode, technologies, salary presence or visa sponsorship, with sorting and paging that return compact summaries. Fetch the full text and parsed fields of a single post by id. Compare months to see the share of posts mentioning each technology and remote, hybrid or onsite counts.
- When to use it
- Useful when you want to explore or compare Hacker News hiring posts as structured data, for example finding remote roles in a given technology that state a salary, or checking how demand for a skill changes over recent months.
- Requirements
- Runs locally over stdio via npx, so Node.js 22 or later is needed. No account or API key. It calls the public HN Algolia API, so network access is required. An optional HN_HIRING_MCP_CACHE_DIR environment variable sets the cache directory, or disables the disk cache.
Installation
In SourceWeft
- Open HN Who is hiring in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
hn-hiring-mcp
An MCP server that turns the monthly Hacker News "Ask HN: Who is hiring?" threads into a typed, searchable job API.
Every month hundreds of companies post jobs there as free-form comments. HN's own API can only return items by id, so there is no way to ask "remote Python roles in Europe that state a salary" or "is Rust demand growing?". This server parses each post into structured fields (company, roles, location, remote/hybrid/onsite, salary, visa, technologies) and exposes four read-only tools to any MCP client.
Tools
All tools declare JSON Schemas for input and output (structuredContent), are annotated
readOnlyHint, and fail with a clear, model-readable error:
Install
Requires Node.js 22+.
Claude Code
Claude Desktop: add to claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
Any other MCP client: run npx -y hn-hiring-mcp as a stdio server.
Example
An abridged session in Claude Desktop (October 2026 data):
You: Find remote Python jobs from this month's Who is hiring that state a salary.
Claude calls
search_jobs({ "technologies": ["Python"], "work_mode": "remote", "has_salary": true })Claude: The October 2026 thread has 37 remote posts mentioning Python; 22 of them state a salary:
- NeuralFrame: Senior Backend Engineer, Medical Data Pipeline (Python + Rust). REMOTE (US only, no visa sponsorship), $170k–$210k + equity. HN post
- …
You: Has demand for MCP experience changed this year?
Claude calls
hiring_trends({ "technologies": ["MCP", "Python", "TypeScript"], "months": 6 })Claude: Yes. Posts mentioning MCP went from 2.5% in May to 4.5% in October (1.3% at the June low), while Python (22–27%) and TypeScript (20–24%) stayed flat.
How it works
- Data source: the public HN Algolia API. One request returns a whole thread (~250 job posts), instead of ~400 item requests to the Firebase API.
- Politeness: requests are serialised with at least 1 s between them, send an identifying
User-Agent, and retry once on 429/5xx. - Cache: responses are cached in memory and on disk (
~/.cache/hn-hiring-mcp, override withHN_HIRING_MCP_CACHE_DIR, oroff). Threads older than 45 days never change and are kept; the current month is refreshed hourly. Replies to job posts are dropped before caching. - Parsing (
src/parse.ts) follows the thread's own convention,Company | Role | Location | REMOTE | Salary, and also handles—separators, the location in parentheses and salary ranges written with-. Technology detection (src/technologies.ts) leans conservative: "Go ahead and apply" is not Go. Posts are free text, so the fields are best-effort;headlineandhn_urlare always there to check.
Privacy and scope
- Read-only. No accounts, no logins, no applying on anyone's behalf.
- E-mail addresses in posts (including
name [at] company [dot] comand puzzle-style ones) are replaced with[email on HN]; the user followshn_urlto the original post to apply. - HN usernames of posters are not returned.
Development
The server tests connect a real MCP Client to the server over an in-memory transport,
so they exercise schemas, validation and error mapping the way Claude does.
License
MIT
Source: README.md at commit 2b3e280
Tools
0Version history
1- v0.1.0LatestOct 15, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts

