io.github.groundtruthtools/ats-jobs-mcp
Officialats-jobs-mcp
一个提供公开职位数据的 MCP 服务器,直接从公司招聘页面背后的应聘者追踪系统中获取第一手信息。 问问你的助手 Anthropic 在招什么岗位,得到的答案来自 Anthropic 自己的招聘板,而不是某个职位聚合器的索引。
它构建在 Greenhouse、Ashby 和 Lever 公开的 job board API 之上,这些 API 本来就是给第三方搭建职位网站用的。无需爬虫,无需 API 密钥,无需账号,也不涉及任何个人数据。
为什么做这个
这些 API 开放且有文档,但除非你已经知道公司的招聘板名称,否则毫无用处:Anthropic 的是 anthropic,Ramp 的是 ramp,Mistral 的是 mistral.ai。
没有一家供应商会发布其客户名录,也不可能有谁能发布,因为没有哪家供应商知道其他家的客户。已于 2026-08-24 验证:job-boards.greenhouse.io、boards.greenhouse.io、jobs.lever.co 和 apply.workable.com 上的 sitemap.xml 要么返回 404,要么重定向。
所以本项目自带一份名录:7,479 个公司招聘板,每个都对照过供应商自己的 API 确认,并带有确认日期。
Related MCP server: recruiting-jobs-mcp
三个工具
find_company_board —— 某家公司用的是哪套系统?
给它一个公司名称,返回对应的系统和招聘板名称,以及该招聘板最近一次确认时的公开招聘职位数。
list_open_jobs —— 一家公司的全部公开招聘职位
职位名称、职位部门、地点、雇佣类型、工作场所类型、发布日期,以及雇主提供时解析出来的薪资范围,还有一个指向雇主原始招聘规整的 verify_url。
compare_companies —— 多个公司,同一套 schema
这是任何单一供应商都无法做到的。用 Greenhouse 的公司和用 Ashby 的公司返回相同的字段名,因此可以直接相互比较。某一家公司查询失败,不会影响其他公司的结果。
薪资解析:解析,评不清时拒绝
Ashby 把薪资显示为 "$211.4K - $290.6K"。Greenhouse 则使用单位分为单位,有时出现多个薪资区间。两者都无法直接筛选,所以内部都会被拆成数字用:
"salary_min": 211400.0, "salary_max": 290600.0,
"salary_currency": "USD", "salary_text": "$211.4K - $290.6K"解析器会有意选择拒绝,而不是猜测:
$50 - $80 / hour返回 无薪资。小时工资是另一类的数量,如果把按年化为年薪,那是提由自信的谎言。600 000 kr返回 无薪资。kr是瑞典语,也是挪威语,也是丹麦语。0.5% - 1.75% - Offers Equity返回 无薪资。股权不是薪资。两种货币的区间,绝不会被拼成一个肌肉不存在的区间。
salary_text 始终保留雇主实际写下的内容,所以当解析器拒而不答时,没有任何信息会丢失。
每个解析出的行为都会被与雇主自己发布的结构化 baseSalary 数据块(也就是用来给 Google 索引的那一个)比对,而不是根据测试里手打的某个数字比对。
不涉及个人数据
绝不返回招聘者的姓名。电子邮件地址和电话号码会被从 job descriptions 中移除,因为描述中确实存在这些信息,而把联系方式收集成一栏,本质上是一份营销名单,而不是职位信息流。
Ashby 的 unlisted(未公开列表)职位会被丢弃,因为 Ashby 的文档说明确地写,这些职位不应被公开展示。
覆盖率:如实呈现
系统 | 目录中的招聘板数量 |
Greenhouse | 4,168 |
Ashby | 3,311 |
Lever 可以读取,但目录中暂时还没有多少招聘板,所以需要直接点名使用(如 lever:spotify),或者传入它的招聘页 URL。Workable 已经有确定可用的 endpoint,但还没有适配器,所以完全没被列出来——为一样没人能读取的东西建一个目录条目,本身就是是说一个未兑现的承诺。
安装
pip install ats-jobs-mcp然后把它添加到你的 MCP 客户端配置中:
{
"mcpServers": {
"ats-jobs": {
"command": "ats-jobs-mcp"
}
}
}与托管版本的关系
同样一份解析逻辑也以 Apify Actor 的形式运行在 apify.com/groundtruth/ats-job-listings,那个版本增加了定时和增量模式,只返回你之前没有收到过的职位。本服务免费、跑在你的机器上,不对任何东西提取提成。
tests/test_core_parity.py 会在两份解析逻辑产生偏差时失败。
Licence
MIT。发布内容仍然归发布它的雇主所有。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to fetch and structure job postings from major ATS platforms (Greenhouse, Lever, Ashby, etc.) directly, eliminating copy-paste and context loss.352MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to pull live job listings from major ATS platforms (Greenhouse, Lever, Ashby, Workable), Hacker News hiring threads, and detect hiring signals on company career pages.
- AlicenseAqualityAmaintenanceSearch and read public Ashby job boards for named companies, with filtering, full job details, and side-by-side compensation comparison. No API key required.6562MIT
- FlicenseNot gradedqualityCmaintenanceEnables searching and retrieving startup job listings from Wellfound with salary, equity, and company signals like Y Combinator backing, funding stage, and remote status.
Related MCP Connectors
Semantic search over 3.5M+ live US job postings pulled straight from company ATSes. Read-only.
Live job postings from 30+ ATS feeds and job boards, one schema. Live results need a Bearer key.
Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/groundtruthtools/ats-jobs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server