关于 ATS Jobs — open roles and hiring changes
ATS Jobs 根据公司域名,跟踪六种申请人跟踪系统中的开放职位和招聘变化。它提供托管 API 与可自托管的 MCP 服务,可查找职位板、列出职位、检测变化并生成招聘信号,同时附带数据来源信息。
主要功能
- 01查找六种 ATS 平台的职位板
- 02按公司域名列出开放职位
- 03检测职位发布、关闭和岗位变化
- 04根据发布模式生成招聘信号
- 05附带来源与可信度信息
适用场景
- 01监控目标公司的开放职位
- 02跟踪职称、地点和薪资变化
- 03识别招聘加速或冻结
- 04了解公司正在招聘的岗位和职能
MCP 相关
可自托管的 MCP 服务提供 `find_job_board`、`list_jobs`、`detect_changes` 和 `hiring_summary` 四种工具。它与托管的 Apify 服务使用相同引擎,默认在本地保存状态。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
4收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| domain | string | 是 | 公司网站,例如 "stripe.com" |
详细介绍
Greenhouse、Lever、Ashby、Workable、Teamtailor 招聘 API
一个 API,支持六种申请人跟踪系统:Greenhouse、Lever、Ashby、Workable、Teamtailor 和 SmartRecruiters。
提供公司网站,它会自行找到招聘公告板,返回所有开放职位;此后每次运行都只返回发生变化的内容——新开放或关闭的职位、职位名称变更、薪资变更,以及推导出的招聘信号。
{ "domains": ["stripe.com", "spotify.com", "pleo.io"] }
无需公告板令牌,也无需了解 ATS,更无需浏览器。
两种运行方式
| 托管在 Apify 上 | 自托管 MCP 服务 | |
|---|---|---|
| 设置 | 无需设置 | npx ats-jobs-mcp |
| 运行之间的状态 | 托管管理 | 本地文件 |
| 定时调度、重试、存储 | 已包含 | 自行管理 |
| 价格 | 每 1,000 个职位 $1 | 免费 |
| 链接 | apify.com/feedworks/ats-jobs-api | 本仓库,mcp/ |
两种方式使用的逻辑完全相同。选择适合你的方式即可。
你将获得什么
| 事件 | 含义 |
|---|---|
job_indexed | 基准记录:首次运行时捕获的开放职位 |
job_posted | 出现新的空缺职位 |
job_closed | 空缺职位已消失 |
job_changed | 职位名称、地点、部门或雇用类型发生变化 |
salary_changed | 薪酬发生变化 |
hiring_accelerating | 本月发布的职位数量达到近期平均值的 2 倍或以上 |
first_role_in_function | 首次招聘销售、AI/ML、安全、数据等职能的员工——新增了一项预算 |
hiring_freeze | 稳定招聘后,职位发布数量降至零 |
每条记录都包含来源信息:来源 URL、HTTP 状态、抓取时间、职位数量、截断标记和 confidence 值——因此 Agent 可以先验证再采取行动,而不是盲目信任某项声明。
MCP 服务
npx ats-jobs-mcp
包含四种工具,任何 MCP 客户端都可以使用——Claude Desktop、Cursor、VS Code 或你自己的 Agent:
| 工具 | 回答的问题 |
|---|---|
find_job_board | 这家公司使用哪种 ATS,公告板令牌是什么? |
list_jobs | 目前有哪些开放职位? |
detect_changes | 自上次查看以来发生了什么变化? |
hiring_summary | 这家公司在招聘什么岗位——哪些职能、哪些地点? |
Claude Desktop 配置:
{
"mcpServers": {
"ats-jobs": { "command": "npx", "args": ["-y", "ats-jobs-mcp"] }
}
}
状态保存在 ~/.ats-jobs-mcp/state.json 中。使用 ATS_MCP_STATE 可更改路径。
为什么持续运行的成本很低
每个来源都会使用 If-None-Match 进行轮询。内容没有变化时,ATS 会返回无响应正文的 304。
在 512 MB 内存下对托管 Actor 进行的测量:
| 路径 | 计算用量 |
|---|---|
没有变化(304) | 每次运行 0.000344 CU |
| 建立基准,143 个职位 | 0.001386 CU |
因此,每隔几小时监控数百家公司只需花费几分钱,而非几美元——也因此本项目绝不会打开无头浏览器来读取招聘公告板。
明确不做的事
- 不处理个人数据。 解析时会剔除招聘人员的姓名、电子邮件和电话号码,且绝不存储。
- 不使用无头浏览器或代理。 只使用能够返回 JSON 的公开 ATS 端点。
- 不误报裁员。 如果来源响应可能因分页而被截断,就会抑制
job_closed事件——分页造成的假象绝不能被误认为公司停止招聘。
支持的来源
greenhouse · lever · ashby · workable · teamtailor · smartrecruiters
检测顺序:公司招聘页面上的链接 → 根据域名猜测公告板令牌 → 通过重定向解析 Workable 短链接。
无法解析的公司会返回说明原因的 source_unresolved 记录,而不会静默失败。
此列表未包含 Recruitee 和 Personio,因为尚未验证它们能够正常工作。目前,Personio 会向非浏览器客户端返回 429;测试中 Recruitee 端点无法解析。本项目不会声称提供无法实现的覆盖范围。
仓库结构
src/ Apify Actor: adapters, diff engine, derived signals
mcp/ MCP server — the same engine, self-hosted
tools/ discovery utilities (domain → ATS)
.actor/ Apify manifests and schemas
采用 MIT 许可证。欢迎贡献,尤其是新增 ATS 适配器——每个系统的接口只需一个 url() 函数和一个 parse() 函数,参见 src/adapters/index.js。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。