关于 jobfeed
jobfeed 是 Fairquery 职位数据 MCP 服务的本地桥接,可读取公开职位板和在招岗位,适合查询单家公司或监测多家公司职位。它转发上游结果,不保存职位数据,也不处理申请或候选人信息。
主要功能
- 01读取职位板当前岗位
- 02解析公司对应的职位板
- 03检查职位是否仍开放
- 04查询职位详情与种子板
- 05按地点或公司搜索职位
适用场景
- 01查看某家公司公开的在招岗位
- 02确认单个职位是否仍在发布
- 03按地点和角色查找职位板
- 04跨公司监测新增、关闭和重发职位
MCP 相关
提供上游职位工具的本地工具列表,并将 MCP 调用转发到 Fairquery Jobs 远程服务。上游结果原样返回。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ats | enum | 是 | 必填。托管该招聘页面的申请人跟踪系统:“greenhouse” | “lever” | “ashby” | “personio” | “pinpoint” | “gem”。Personio、Pinpoint 和 Gem 填写你指定的账户、子域名或自定义名称,而非发现的招聘页面。示例:“ashby”greenhouse | lever | ashby | personio | pinpoint | gem |
| slug | string | 是 | 必填。公共招聘页面 URL 中显示的板块 slug(不区分大小写):boards.greenhouse.io/{slug}、jobs.lever.co/{slug}、jobs.ashbyhq.com/{slug}、{account}.jobs.personio.de 中的 Personio 账户、{subdomain}.pinpointhq.com 中的 Pinpoint 子域名,或 jobs.gem.com/{vanity} 中的 Gem vanity。指定的源名称中不能包含点号。1–100 个字符。示例:“ramp” 或 “acme” |
| limit | integer | 否 | 可选页大小,整数 1–500,默认值为 50 |
| offset | integer | 否 | 可选要跳过的条目数,整数 >= 0,默认值为 0;传入上一个响应中的 nextOffset |
| remote | enum | 否 | 可选,“any” | “only” | “exclude”,默认值为 “any”any | only | exclude |
| countries | array | 否 | 可选 ISO-3166 alpha-2 代码,任意匹配,区分大小写。示例:["US","DE"] |
| locations | array | 否 | 可选,0–50 个字符串,匹配任一项。按地点文本进行子串匹配。美国州名和代码双向匹配(FL 和 Florida);NYC、SF、LA、DC、Tampa Bay 等美国都会区别名也可匹配。"remote" 也会匹配 ATS 远程标记。示例:["new york","berlin"] |
| longOpenDays | integer | 否 | 可选整数,默认值为 60:超过此天数的行会将 long_open 设为 true(这是一种启发式判断,并非幽灵职位的确证) |
| titleExcludes | array | 否 | 可选,0–50 个字符串,任意匹配。删除标题中包含任一字符串的职位。示例:["intern","manager"] |
| titleIncludes | array | 否 | 可选,0–50 个字符串,任意匹配。保留标题中包含这些完整单词或短语(不区分大小写)的职位。示例:["engineer","data scientist"] |
| postedWithinDays | integer | 否 | 可选整数 1–3650:保留 ATS 发布日期距今不超过此天数的职位。示例:14 |
| includeDescription | boolean | 否 | 可选布尔值,默认值为 false。true 会添加 description_text(纯文本,最多 20,000 个字符,已移除电子邮件地址和电话号码) |
详细介绍
jobfeed
jobfeed 是一个小型本地桥接服务,连接托管的 Fairquery jobs MCP 服务,该服务从官方公开来源读取实时招聘信息。可查询一家公司的招聘板,解析公司使用的招聘板,重新检查某个职位是否仍在招聘,获取某个职位的完整信息,列出已验证的入门招聘板,或按地点和职位搜索该入门列表;还可通过付费的公司搜索,监控多家公司的职位空缺及其历史记录。
该桥接服务不保留任何招聘数据。它会在本地提供上游服务的工具列表,该列表与从实时端点捕获的内容完全一致,并将每次工具调用转发到上游,原样返回结果。捕获到的接口仅包含只读的公开招聘板数据:不支持申请职位、发送消息,也不包含候选人数据。
工具
jobs_get_board— 某个招聘板当前发布的所有职位。必填:ats和slug。可选筛选条件包括标题包含或排除的内容、地点、国家/地区、远程办公、发布天数范围、是否包含职位描述,以及分页。jobs_find_board— 将公司名称、域名或招聘/招聘板 URL 解析为其公开招聘板。必填:company。jobs_check_open— 重新检查某个职位是否仍在发布。接受jobKey,或ats+slug+jobId,并可选传入includeDescription。jobs_get_job— 获取某个已发布职位的完整详情,可传入jobKey,或ats+slug+jobId。jobs_list_seed_boards— 已捆绑的已验证招聘板入门列表,可按ats缩小范围,并支持分页。jobs_search_by_location— 按地点和职位搜索入门列表,不含公司名称。必须提供地点信号:locations、countries或远程办公"only"。jobs_search_companies— 付费的多公司搜索和监控工具,可跨多家公司或招聘板查看历史记录、新增/关闭职位及重新发布信号。
招聘板涵盖 Greenhouse、Lever 和 Ashby,以及指定的 Personio、Pinpoint 和 Gem 信息流。
配置
FAIRQUERY_JOBS_MCP_URL(可选)— 覆盖上游端点。默认值为https://mcp.getfairquery.com/jobs/mcp。(此覆盖钩子是本次重建中特别标注的还原实现。)FAIRQUERY_JOBS_API_KEY(可选)— 设置后,每个上游请求都会携带Authorization: Bearer <key>标头。未设置时,不会发送密钥标头。上游记录未固定任何身份验证标头,因此此转发行为也是特别标注的还原实现;原始接口是在不带密钥的情况下捕获的。
转发机制
首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:发送 JSON-RPC initialize 请求(protocolVersion 为 2025-03-26,clientInfo 名称为 jobfeed),然后发送 notifications/initialized 通知,接着发送携带调用方原样参数的 tools/call 请求。上游在 initialize 响应中返回 Mcp-Session-Id 标头时,该值会随会话的每个后续请求一同发送;该会话会在进程运行期间持续复用。响应可能是普通 JSON,也可能是服务器发送事件;两种格式都会读取。
上游的成功结果会原样传递,包括上游设置的任何 isError 标志。失败情况——JSON-RPC 错误、非 2xx 状态、无法读取的响应,或无法完成的请求——会以 isError 结果返回,其文本以 jobfeed error: 开头(此呈现方式是本次重建中特别标注的还原实现)。
CLI
每个工具也都是一个子命令,接受一个 JSON 参数字符串:
npx @reneturcios/jobfeed jobs_get_board '{"ats":"ashby","slug":"ramp"}'
npx @reneturcios/jobfeed jobs_find_board '{"company":"ramp.com"}'
npx @reneturcios/jobfeed jobs_search_by_location '{"locations":["Costa Mesa"],"descriptionIncludes":["avionics"]}'
npx @reneturcios/jobfeed --version
退出代码:成功时为 0,结果包含 isError 时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/jobfeed mcp
MCP 客户端配置:
{
"mcpServers": {
"jobfeed": {
"command": "npx",
"args": ["-y", "@reneturcios/jobfeed", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/jobfeed
docker run --rm ghcr.io/cloudcorprecords/jobfeed --version
容器的默认命令为 mcp,因此第一种形式是 stdio MCP 服务;其他任何参数都会照常传给 CLI。
开发
npm install
npm run build
npm test
npm run dev
测试套件完全针对桩接的 JSON-RPC 上游运行,不会进行实时网络调用。
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。