mcpField
H
HN Who is hiring

HN Who is hiring

本地服务
github.com/Crayz129商业与营销02 周前更新

关于 HN Who is hiring

HN Who is hiring 是只读 MCP 服务,可将 Hacker News 招聘帖转为可搜索的结构化职位数据。它面向求职者及关注招聘趋势的人,提供解析字段和按月技术统计。

主要功能

  1. 01列出每月招聘帖
  2. 02按条件搜索职位
  3. 03返回解析后的职位详情
  4. 04汇总每月招聘趋势
  5. 05提供类型化只读工具

适用场景

  1. 01查找注明薪资的远程职位
  2. 02按地点或技术筛选职位
  3. 03比较不同月份的技术提及

MCP 相关

MCP 服务提供四种只读工具,用于列出讨论串、搜索职位、读取单条帖子和查看招聘趋势。工具声明 JSON 输入与输出模式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"crayz129-hn-hiring": {
"command": "npx",
"args": [
"-y",
"hn-hiring-mcp"
],
"env": {
"HN_HIRING_MCP_CACHE_DIR": "<HN_HIRING_MCP_CACHE_DIR>"
}
}
}
}
启动命令npx -y hn-hiring-mcp
需要配置的环境变量
HN_HIRING_MCP_CACHE_DIRDirectory for the response cache (default ~/.cache/hn-hiring-mcp; "off" disables the disk cache)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmhn-hiring-mcp0.1.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否

详细介绍

hn-hiring-mcp

CI npm

一个 MCP 服务,可将每月的 Hacker News “Ask HN: Who is hiring?” 主题帖转换为带类型、可搜索的职位 API。

每个月,数百家公司都会在这些主题帖中以自由格式的评论发布职位。HN 自带的 API 只能按 ID 返回条目,因此无法查询 “欧洲注明薪资的远程 Python 职位” 或 “Rust 的需求是否在增长?”。此服务会将每条帖子解析为结构化字段(公司、职位、地点、远程/混合办公/现场办公、薪资、签证、 技术),并向任何 MCP 客户端提供四个只读工具。

工具

工具功能
list_hiring_threads获取最新的月度主题帖及其 ID 和评论数。
search_jobs搜索某个月份:自由文本、location、work_mode、technologies、has_salary、visa_sponsorship、sort、limit/offset。返回精简摘要。
get_job按 ID 获取一条帖子的全文和解析字段。
hiring_trends按月统计:提及各项技术的帖子占比,以及远程/混合办公/现场办公的帖子数量。

所有工具都为输入和输出(structuredContent)声明 JSON Schema,带有 readOnlyHint 注解,并会在失败时返回清晰、可供模型读取的错误:

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.

安装

需要 Node.js 22+。

Claude Code

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

Claude Desktop:添加到 claude_desktop_config.json (macOS:~/Library/Application Support/Claude/claude_desktop_config.json):

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

其他任何 MCP 客户端:运行 npx -y hn-hiring-mcp,将其作为 stdio 服务。

示例

Claude Desktop 中的一段精简会话(2026 年 10 月的数据):

你: 查找本月 Who is hiring 中注明薪资的远程 Python 职位。

Claude 调用 search_jobs({ "technologies": ["Python"], "work_mode": "remote", "has_salary": true })

Claude: 2026 年 10 月的主题帖中有 37 条提及 Python 的远程招聘帖;其中 22 条注明了薪资:

  1. NeuralFrame:高级后端工程师,医疗数据管道(Python + Rust)。 远程(仅限美国,不提供签证担保),$170k–$210k + 股权。 HN 帖子
  2. …

你: 今年对 MCP 经验的需求有变化吗?

Claude 调用 hiring_trends({ "technologies": ["MCP", "Python", "TypeScript"], "months": 6 })

Claude: 有。提及 MCP 的帖子占比从 5 月的 2.5% 上升到 10 月的 4.5% (6 月低点为 1.3%);而 Python(22–27%)和 TypeScript(20–24%)保持平稳。

工作原理

  • 数据来源: 公共的 HN Algolia API。一次请求 即可返回整个主题帖(约 250 条招聘帖),而 Firebase API 则需要约 400 次条目请求。
  • 请求规范: 请求按顺序执行,间隔至少 1 秒,带有可识别的 User-Agent,并在遇到 429/5xx 时重试一次。
  • 缓存: 响应会缓存在内存和磁盘上(~/.cache/hn-hiring-mcp,可通过 HN_HIRING_MCP_CACHE_DIR 覆盖,或设为 off)。超过 45 天的主题帖不会再变化,会一直保留; 当月数据每小时刷新。缓存前会移除对招聘帖的回复。
  • 解析(src/parse.ts)遵循主题帖自身的格式约定: Company | Role | Location | REMOTE | Salary,也能处理 — 分隔符、括号中的地点,以及用 - 表示的薪资范围。技术检测 (src/technologies.ts)倾向于保守判断:“Go ahead and apply” 不会被识别为 Go。 帖子采用自由文本,因此各字段只能尽力解析;headline 和 hn_url 始终存在,可供核对。

隐私与范围

  • 只读。不创建账户、不登录,也不代替任何人申请。
  • 帖子中的电子邮件地址(包括 name [at] company [dot] com 和谜题式地址)会被替换为 [email on HN];用户可通过 hn_url 前往原帖申请。
  • 不会返回发帖者的 HN 用户名。

开发

npm install
npm test            # vitest, against recorded fixtures only; no network
npm run typecheck
npm run build
node scripts/smoke.ts search_jobs '{"query":"rust","limit":3}'   # live call through a real MCP client
node scripts/record-fixtures.ts                                   # refresh fixtures (anonymised, trimmed)

服务器测试会通过内存传输将真实的 MCP Client 连接到服务器,因此会像 Claude 一样测试架构、验证和错误映射。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。