Multi-ATS Jobs MCP Server

io.github.rezearcherPublished by GitHub account rezearcherv0.4.0Updated Oct 30, 2026

Free live multi-ATS + HN job search. Comp & hiring-signal depth metered via x402/USDC. Hosted MCP.

The publisher's own server: Tech Risk

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server that lets an assistant search live, normalized job postings across seven applicant-tracking systems and preview company domain data.

What you can do
  • Search live job postings for one or more companies across seven ATS platforms, with auto-detected platform and board token and a unified schema.
  • Resolve which ATS a company uses and its board token from a slug or domain.
  • List the supported ATS platforms and how to address each.
  • Preview keyless DNS/RDAP company enrichment for a domain, such as email provider, detected SaaS and domain age.
  • Retrieve the pay-per-call premium rail details for deeper layers such as hosted search, compensation and hiring-intent signals.
When to use it
Useful when you want an assistant to pull current openings at specific companies, compare hiring across employers, or check which ATS a company runs on, without API keys or accounts. Also handy for a quick free company-domain enrichment preview before deciding on paid depth.
Requirements
A remote streamable HTTP endpoint; no account, API key or environment variables are declared. The free tools read public ATS JSON endpoints, so network access to those sources is needed. Paid depth layers require an x402-aware client with a wallet holding USDC on Base.
Before you install
The premium layers are paid per call in USDC on Base through an x402 flow, so a wallet and spending are involved; check prices before enabling. Enrichment sends company domains to third-party DNS and RDAP services. The free tools only read public data, but results depend on third-party ATS endpoints that can change.

Installation

In SourceWeft

  1. Open Multi-ATS Jobs MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.rezearcher%2Fjobs-mcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "multi-ats-jobs": {
      "type": "http",
      "url": "https://assetfactory-jobs-x402.sigrunner.workers.dev/mcp"
    }
  }
}

README

Greenhouse Jobs MCP Server

[smoke] [MCP] [deps]

A Model Context Protocol server that gives any MCP client — Claude Desktop, Cursor, Cline, Continue, or your own agent — live, normalized job postings straight from a company's Greenhouse board (the most-requested ATS feed), plus seven more applicant-tracking systems in one clean schema.

One tool call, Greenhouse + seven more 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_hiring tool 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):

json
{  "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

bash
git clone https://github.com/rezearcher/jobs-mcp-servercd jobs-mcp-servernode server.mjs          # speaks MCP over stdionpm test                 # real client handshake + live-data roundtrip

Tools

ToolWhat it does
search_jobsLive normalized postings for one or more companies. Args: companies (string[]), maxPerCompany (default 25, max 200), includeDescription (default false).
detect_atsResolve a company slug/domain to {platform, token} without pulling the full list.
list_platformsThe 8 supported platforms and how to address each. No network call.
search_hn_hiringLive 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.
get_premium_accessDescribe the metered depth endpoints beyond the free reads above — a normalized cross-ATS compensation layer and a per-company hiring-intent signal — served pay-per-call over x402 (USDC on Base, no account, the caller's wallet pays the 402 inline). No network call, no payment.

Free vs. metered

The four search tools above are free and read the live boards directly. Two derived layers are heavier to keep correct — pay-transparency text drifts, cross-ATS comp needs normalizing — so they are served pay-per-call over the x402 rail (USDC on Base, no API key): a few tenths of a cent per call. Call get_premium_access for the exact endpoints, prices, and payment handshake, or hit the free preview first: https://assetfactory-jobs-x402.sigrunner.workers.dev/jobs/preview?companies=stripe.com.

Example

Ask your assistant: "Use the jobs tool to list open engineering roles at Stripe and Palantir." The model calls:

json
{ "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." →

json
{ "name": "search_hn_hiring",  "arguments": { "query": "rust", "remoteOnly": true } }

Addressing a company

FormExampleNotes
bare slugstripeauto-detected across platforms
domainstripe.comauto-detected
explicitgreenhouse:stripe, lever:palantir, ashby:openaiskips detection
Workdayworkday:nvidia.wd5:NVIDIAExternalCareerSite or a *.myworkdayjobs.com URLexplicit 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.

Source: README.md at commit dccf285

Tools

5

search_jobs

Fetch live, normalized open job postings for one or more companies across 7 keyless ATS platforms (Greenhouse, Lever, Ashby, SmartRecruiters, Workday, Recruitee, Workable). Platform and board token are auto-detected from a bare slug or domain. Returns a unified schema: title, company, location, remote, url, source_platform, posted_at. Free. Derived layers (normalized comp, hiring-intent) and a hosted 10-ATS feed are metered — call get_premium_access.

ParameterscompaniesrequiredmaxPerCompanyincludeDescription

resolve_company

Resolve which applicant-tracking system a company uses and its board token, from a bare slug or domain. Returns {platform, token, via}. Free.

Parameterscompanyrequired

list_platforms

List the supported ATS platforms this feed auto-detects and normalizes. Free.

Takes no parameters.

enrich_preview

Free keyless DNS/RDAP enrichment preview for a company domain: email provider (from MX), SaaS detected from DNS TXT, domain age + registrar (RDAP). A real taste of the paid /company/enrich, which adds a bounded site crawl (firmographics, contacts, social), tech-stack fingerprint, office address, legal registration (VAT / company number) and the live multi-ATS hiring block — call get_premium_access for the full record.

Parametersdomainrequired

get_premium_access

Return the paid x402 rail: the metered depth layers (hosted 10-ATS search, normalized compensation, per-company hiring-intent signal, company enrichment, email deliverability) with exact prices (USDC on Base), the pay-to address, and how the 402 flow works. No account; an x402-aware client pays inline from the agent's wallet.

Takes no parameters.

Version history

3
  1. v0.4.0LatestOct 30, 2026
  2. v0.3.0Oct 30, 2026
  3. v0.2.0Oct 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Greyridgesignals integrations