HN Who is hiring

io.github.Crayz129由 GitHub 帳號 Crayz129 發布v0.1.0更新於 Oct 24, 2026

Search, read and compare Hacker News "Who is hiring?" job posts as typed data. Read-only.

概覽

AI 產生的概覽

一個本機 MCP 伺服器,把 Hacker News 每月「Who is hiring?」徵才貼文轉成可搜尋的結構化職缺資料,供助理使用。

可以做什麼
列出最近各月徵才討論串及其編號與留言數,並依自由文字、地點、工作模式、技術、是否標註薪資或是否提供簽證贊助搜尋某個月的貼文,支援排序與分頁,回傳精簡摘要。依編號取得單一貼文的全文與解析欄位。按月比較各技術的提及比例以及遠端、混合、進辦公室職缺數量。
適用情境
適合把 Hacker News 徵才貼文當成結構化資料來瀏覽或比較,例如尋找某項技術且標註薪資的遠端職缺,或查看某項技能需求在近幾個月的變化。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 22 以上版本。不需帳號或 API 金鑰。會呼叫公開的 HN Algolia API,因此需要網路連線。選用環境變數 HN_HIRING_MCP_CACHE_DIR 可指定快取目錄或關閉磁碟快取。
安裝前請注意
唯讀,不會代替任何人投遞履歷。欄位是從自由文字盡力解析而來,應核對標題與原貼文連結。電子郵件地址會被遮蔽,發文者使用者名稱不會回傳,但貼文內容來自第三方公開 API。回應預設會快取到磁碟。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 HN Who is hiring,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

hn-hiring-mcp

[CI] [npm]

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

ToolWhat it does
list_hiring_threadsLatest monthly threads with ids and comment counts.
search_jobsSearch one month: free text, location, work_mode, technologies, has_salary, visa_sponsorship, sort, limit/offset. Returns compact summaries.
get_jobFull text and parsed fields of one post by id.
hiring_trendsPer month: share of posts mentioning each technology, and remote/hybrid/onsite counts.

All tools declare JSON Schemas for input and output (structuredContent), are annotated readOnlyHint, and fail with a clear, model-readable error:

INVALID_INPUT: Unknown technology "cobol". Known technologies: Python, TypeScript, … For anything else use the free-text "query".NOT_FOUND: HN item 49922569 is not a top-level job post in a "Who is hiring?" thread.UPSTREAM_ERROR: HN API answered 503 while loading thread list. Try again later.

Install

Requires Node.js 22+.

Claude Code

bash
claude mcp add hn-hiring -- npx -y hn-hiring-mcp

Claude Desktop: add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

json
{  "mcpServers": {    "hn-hiring": {      "command": "npx",      "args": ["-y", "hn-hiring-mcp"]    }  }}

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:

  1. NeuralFrame: Senior Backend Engineer, Medical Data Pipeline (Python + Rust). REMOTE (US only, no visa sponsorship), $170k–$210k + equity. HN post
  2. …

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 with HN_HIRING_MCP_CACHE_DIR, or off). 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; headline and hn_url are 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] com and puzzle-style ones) are replaced with [email on HN]; the user follows hn_url to the original post to apply.
  • HN usernames of posters are not returned.

Development

bash
npm installnpm test            # vitest, against recorded fixtures only; no networknpm run typechecknpm run buildnode scripts/smoke.ts search_jobs '{"query":"rust","limit":3}'   # live call through a real MCP clientnode scripts/record-fixtures.ts                                   # refresh fixtures (anonymised, trimmed)

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

來源:README.md,提交 2b3e280

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Oct 15, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分