Multi-ATS Jobs MCP Server
RemoteAbout Multi-ATS Jobs MCP Server
Multi-ATS Jobs MCP Server provides live, normalized job listings from eight company ATS platforms and Hacker News hiring threads. It is for MCP clients that need to search public postings using a consistent schema, without API keys or an account.
Key features
- 01Search jobs across eight ATS platforms
- 02Normalize postings into a shared schema
- 03Resolve ATS from company slug or domain
- 04Search current Hacker News hiring thread
Use cases
- 01Find open roles at one or more companies
- 02Search Hacker News hiring posts by keyword
- 03Filter hiring results to remote roles
- 04Resolve a company’s ATS board before searching
MCP support
It exposes job-search tools to MCP clients over stdio, including ATS discovery, platform listing, normalized job search, and Hacker News hiring search.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://assetfactory-jobs-x402.sigrunner.workers.dev/mcpclaude mcp add --transport http rezearcher-jobs https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp{"mcpServers":{"rezearcher-jobs":{"type":"http","url":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp"}}}Open in Cursor{"servers":{"rezearcher-jobs":{"type":"http","url":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp"}}}Open in VS Code{"mcpServers":{"rezearcher-jobs":{"type":"http","url":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp"}}}{"mcpServers":{"rezearcher-jobs":{"serverUrl":"https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEGrey Ridge Jobs MCP
A Model Context Protocol server that gives any MCP client — Claude Desktop, Cursor, Cline, Continue, or your own agent — a live, normalized feed of open job postings pulled straight from company applicant-tracking systems.
One tool call, eight ATS platforms, one clean schema:
Greenhouse · Lever · Ashby · SmartRecruiters · Workday · Recruitee · Workable · BambooHR
Give it a bare company name (stripe), a domain (stripe.com), or an explicit board
(greenhouse:stripe, workday:nvidia.wd5:NVIDIAExternalCareerSite) — the server detects the ATS
and board token for you and returns postings with stable field names across every platform.
- Zero dependencies. No MCP SDK, no transitive package tree — the server is one file plus a
vendored adapter core. It installs and boots instantly under
npx, and drags nothing into your agent's trust boundary. (For an agent tool, the supply chain is the attack surface.) - Zero keys, zero account. Every source is a public ATS JSON endpoint.
- Normalized schema.
title · company · location · remote · employment_type · department · posted_at (ISO) · salary · url · source_platform— same shape whoever the employer uses. - Auto-detect. Pass a slug or domain; the ATS and token are resolved for you.
- Plus Hacker News "Who is hiring?" The
search_hn_hiringtool reads the current month's thread into the same schema, and finds next month's thread by itself when it is posted.
Install
Requires Node.js ≥ 18.
Claude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"jobs": {
"command": "npx",
"args": ["-y", "github:rezearcher/jobs-mcp-server"]
}
}
}
Cursor / Cline / Continue
Point the client at the same command (npx -y github:rezearcher/jobs-mcp-server) as a stdio
server. In Cursor: Settings → MCP → Add new server → type command.
From source
git clone https://github.com/rezearcher/jobs-mcp-server
cd jobs-mcp-server
node server.mjs # speaks MCP over stdio
npm test # real client handshake + live-data roundtrip
Tools
| Tool | What it does |
|---|---|
search_jobs | Live normalized postings for one or more companies. Args: companies (string[]), maxPerCompany (default 25, max 200), includeDescription (default false). |
detect_ats | Resolve a company slug/domain to {platform, token} without pulling the full list. |
list_platforms | The 8 supported platforms and how to address each. No network call. |
search_hn_hiring | Live postings from the current month's Hacker News "Ask HN: Who is hiring?" thread, parsed into the same schema. Args: query (keyword filter), remoteOnly (default false), maxResults (default 50, max 200), includeDescription. The monthly thread id is auto-discovered — it rotates on the 1st of every month, so you never re-point it. |
Example
Ask your assistant: "Use the jobs tool to list open engineering roles at Stripe and Palantir." The model calls:
{ "name": "search_jobs",
"arguments": { "companies": ["greenhouse:stripe", "lever:palantir"], "maxPerCompany": 25 } }
and gets back a jobs[] array plus a resolutions[] log showing how each company was resolved.
Or, to sweep the whole Hacker News hiring thread: "Find remote Rust roles in this month's HN who-is-hiring thread." →
{ "name": "search_hn_hiring",
"arguments": { "query": "rust", "remoteOnly": true } }
Addressing a company
| Form | Example | Notes |
|---|---|---|
| bare slug | stripe | auto-detected across platforms |
| domain | stripe.com | auto-detected |
| explicit | greenhouse:stripe, lever:palantir, ashby:openai | skips detection |
| Workday | workday:nvidia.wd5:NVIDIAExternalCareerSite or a *.myworkdayjobs.com URL | explicit only |
Why a maintained server (and not a one-off script)
ATS JSON shapes drift and companies migrate between vendors. This server is the public face of a
continuously maintained adapter layer: each platform is isolated so a shape change touches one
adapter, and a scheduled canary (.github/workflows/smoke.yml) exercises a live board on every push
and daily, failing loudly the moment an adapter stops returning rows. That upkeep is the point — it
is why the feed keeps working after the day you install it.
License
MIT © Grey Ridge Signals Group LLC. Job content belongs to the respective employers and their ATS providers; this tool only retrieves and normalizes publicly listed postings. Respect each source's terms and rate limits.
Related tools (same maintained engine)
Prefer a plain CLI, or a company-level signal instead of an MCP tool?
- ats-jobs-scraper-cli — the same 8-ATS feed as a zero-dependency command-line tool.
- unified-jobs-scraper-cli — adds LinkedIn public postings and cross-source dedup.
- company-enrichment-cli — domain → one clean company record (firmographics, contacts, tech stack) with a rolled-up hiring-intensity signal from the same ATS engine; sales/prospecting buying-intent rather than a raw job feed.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.