ATS Jobs — open roles and hiring changes

io.github.VovikP由 GitHub 账号 VovikP 发布v0.1.2更新于 Oct 24, 2026

Open jobs and hiring changes from Greenhouse, Lever, Ashby, Workable, Teamtailor, SmartRecruiters

概览

AI 生成的概览

跟踪六种招聘系统上的在招职位与招聘变化,每次运行只返回相较上次的变动。

可以做什么
给定公司域名后,它会识别该公司使用的招聘系统并返回其全部在招职位。提供四个工具:find_job_board、list_jobs、detect_changes 和 hiring_summary。后续运行时只报告增量,例如职位新增或关闭、职位名称或地点变化、薪资变化,以及招聘加速、招聘冻结等派生信号。每条记录都带有来源信息,包括来源网址、HTTP 状态、抓取时间和置信度。
适用场景
适合长期监测多家公司的招聘情况,用于招聘或市场研究,或回答某家公司当前在招什么岗位的问题。当你需要变化检测而不是一次性的职位查询时更合适。
运行要求
通过 stdio 在本地运行,通常用 npx ats-jobs-mcp 启动,因此需要 Node.js。未声明任何身份验证、API 密钥或环境变量。状态保存在用户主目录下的本地文件中,可用 ATS_MCP_STATE 变量覆盖,并需要访问公开招聘系统端点的网络。另有付费托管版本。
安装前请注意
它会写入本地状态文件,以便在多次运行之间进行变化检测。它只读取公开的招聘板端点,并在解析时移除招聘人员的个人数据,但你查询的域名会发送给第三方招聘系统服务。托管版本按处理的职位数量计费,自托管服务器免费。

安装

在 SourceWeft 中

  1. 打开 控制台中的 ATS Jobs — open roles and hiring changes,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Greenhouse, Lever, Ashby, Workable, Teamtailor Jobs API

One API for six applicant tracking systems: Greenhouse, Lever, Ashby, Workable, Teamtailor and SmartRecruiters.

Give it a company website. It finds the job board itself, returns every open role, and on every run after that returns only what changed — roles opened, roles closed, titles moved, salaries changed — plus derived hiring signals.

json
{ "domains": ["stripe.com", "spotify.com", "pleo.io"] }

No board tokens. No ATS knowledge required. No browser.


Two ways to run it

Hosted on ApifySelf-hosted MCP server
Setupnonenpx ats-jobs-mcp
State between runsmanagedlocal file
Scheduling, retries, storageincludedyour own
Price$1 per 1,000 jobsfree
Linkapify.com/feedworks/ats-jobs-apithis repo, mcp/

The logic is the same code in both. Pick whichever fits.


What you get

EventMeaning
job_indexedBaseline: an open role captured on the first run
job_postedA new opening appeared
job_closedAn opening disappeared
job_changedTitle, location, department or employment type changed
salary_changedCompensation changed
hiring_acceleratingThis month's postings are 2× or more the recent average
first_role_in_functionFirst ever hire in sales, AI/ML, security, data — a new budget line opened
hiring_freezePostings dropped to zero after steady hiring

Every record carries provenance: source URL, HTTP status, fetch time, job count, truncation flag and a confidence value — so an agent can verify before it acts, instead of trusting a claim.


MCP server

bash
npx ats-jobs-mcp

Four tools, usable by any MCP client — Claude Desktop, Cursor, VS Code, your own agent:

ToolQuestion it answers
find_job_boardWhich ATS does this company use, and what is its board token?
list_jobsWhat roles are open right now?
detect_changesWhat changed since the last time I looked?
hiring_summaryWhat is this company hiring for — which functions, which locations?

Claude Desktop config:

json
{  "mcpServers": {    "ats-jobs": { "command": "npx", "args": ["-y", "ats-jobs-mcp"] }  }}

State lives in ~/.ats-jobs-mcp/state.json. Override with ATS_MCP_STATE.


Why it stays cheap to run continuously

Every source is polled with If-None-Match. When nothing changed, the ATS answers 304 with no body.

Measured on the hosted Actor at 512 MB:

PathCompute
Nothing changed (304)0.000344 CU per run
Baseline, 143 jobs0.001386 CU

That is why watching hundreds of companies every few hours costs cents rather than dollars — and why this project will never open a headless browser to read a job board.


What it deliberately does not do

  • No personal data. Recruiter names, emails and phone numbers are stripped at parse time and never stored.
  • No headless browser, no proxies. Only public ATS endpoints that answer with JSON.
  • No false layoffs. If a source response may be truncated by paging, job_closed events are suppressed — a paging artefact must never look like a company shutting down hiring.

Supported sources

greenhouse · lever · ashby · workable · teamtailor · smartrecruiters

Detection order: a link on the company careers page → the board token guessed from the domain → Workable short links resolved through their redirect.

Companies that cannot be resolved return a source_unresolved record explaining why, instead of failing silently.

Recruitee and Personio are not listed because they are not verified working. Personio currently answers 429 to non-browser clients; Recruitee endpoints did not resolve in testing. This project does not claim coverage it cannot deliver.


Repo layout

src/          Apify Actor: adapters, diff engine, derived signalsmcp/          MCP server — the same engine, self-hostedtools/        discovery utilities (domain → ATS).actor/       Apify manifests and schemas

MIT licensed. Contributions welcome, especially new ATS adapters — the interface is one url() and one parse() function per system, see src/adapters/index.js.

来源:README.md,提交 0534585

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分