Unified Jobs MCP Server
Queries public Greenhouse ATS job boards as part of the cross-source jobs feed, retrieving job postings that can be normalized, merged, and deduplicated with results from other sources.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unified Jobs MCP ServerFind remote backend engineer jobs at Stripe and Palantir, deduped across sources"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unified Jobs MCP Server
A zero-dependency Model Context Protocol server that gives an AI
agent one thing no single-source jobs tool does: a cross-source, deduplicated jobs feed. It
queries applicant-tracking systems, the LinkedIn public guest search, and the Hacker News
"Who is hiring?" thread, then collapses the same role seen on several sources into one canonical
record — with a sources[] array and a union of the richest salary, longest description, and
earliest post date. The agent gets a clean list instead of three overlapping ones plus a dedup
problem of its own.
No API key, no account, no login. All data comes from keyless public endpoints.
Zero dependencies. Hand-rolled spec-conformant JSON-RPC 2.0 over stdio — no SDK, no transitive package tree in your agent's trust boundary. Installs and boots instantly under
npx.Public postings only. No member data, no PII beyond public job fields.
Install
Claude Desktop (claude_desktop_config.json) / Cursor / Cline / Continue:
{
"mcpServers": {
"unified-jobs": {
"command": "npx",
"args": ["-y", "github:rezearcher/unified-jobs-mcp"]
}
}
}Or run it directly:
npx -y github:rezearcher/unified-jobs-mcpRelated MCP server: io.github.groundtruthtools/ats-jobs-mcp
Tools
search_unified_jobs
The cross-source feed. Pull one or more companies' ATS boards (companies[]), search LinkedIn
(keywords + location), and/or the current HN thread — in a single call — and get back one
deduplicated list. The same role on several sources merges into one record:
{
"title": "Backend Software Engineer - Infrastructure",
"company": "Palantir",
"location": "United States",
"salary": "$135,000 - $200,000 / yr",
"posted_at": "2026-10-14T00:00:00.000Z",
"sources": [
{ "source_platform": "lever", "url": "https://jobs.lever.co/palantir/..." },
{ "source_platform": "linkedin", "url": "https://www.linkedin.com/jobs/view/..." }
],
"primary_url": "https://jobs.lever.co/palantir/...",
"merged": true
}Every result set reports dedup stats: raw_source_hits, canonical_jobs, cross_source_merges,
collapsed, per_source_hits.
field | notes |
| ATS companies: bare slug ( |
| LinkedIn search (and |
| subset of |
| cap rows per source before merge (default 25, max 200). |
| cap canonical records after merge (optional). |
| booleans; |
search_hn_hiring
Just the current month's Hacker News "Ask HN: Who is hiring?" thread, normalized into the same
schema. The monthly thread id is auto-discovered (it rotates on the 1st of every month) and each
free-text post header is parsed into structured fields. Optional query / remoteOnly filters.
list_sources
The source families, how to address ATS companies, and exactly how the cross-source dedup behaves. No network call.
Sources
family | coverage | keyless |
ats | Greenhouse, Lever, Ashby, SmartRecruiters, Workday, Recruitee, Workable | ✅ |
public guest job search (keywords + location) | ✅ (rate-limited on cloud IPs → degrades open) | |
hn | "Who is hiring?" current-month thread | ✅ |
Every source is wrapped so a single source failing (e.g. LinkedIn's guest endpoint rate-limiting a cloud IP) never fails the whole call — you get the sources that did return. The hosted metered version adds Indeed and rotating residential proxies for volume.
How the dedup works
Canonical key:
company | title | city, with legal suffixes stripped but seniority and role qualifiers kept — soBackend - InfrastructureandBackend - Defensestay distinct.Merge: scalar fields are first-non-null in source-rank order; salary is taken whole from the single richest source (kept internally consistent);
posted_atis the earliest; description is the longest;sources[]accumulates every origin.Degrade open: a row with no derivable key is emitted as its own record with
merged: false— never silently dropped.
Maintenance
A GitHub Actions smoke workflow runs a real MCP client handshake plus a live cross-source pull on every push and daily. The ATS and HN families gate it; LinkedIn is advisory (cloud-IP rate limits). A genuine upstream shape change fails the roundtrip and opens a tracking issue automatically — the feed is kept working, not left to rot.
License
MIT © Grey Ridge Signals Group LLC
This server cannot be deployed
Maintenance
Related MCP Connectors
Search job postings across Indeed, LinkedIn, and more from one request - titles, companies
Job search across Greenhouse, Lever, Ashby, SmartRecruiters, Personio and Pinpoint, deduplicated.
JobsPipe — data pipeline of every job posting on the web. Search live, normalized job postings from 30+ ATS feeds and job boards for AI agents via MCP.
searchnapply connects your AI agent to 800K+ open jobs taken straight from company career sites, kept up to date as companies add and close them. Search in your own words with the site's filters (role, location, remote, salary, experience, department), read postings in full, and tailor a resume or cover letter from your searchnapply profile. Save a search as a monitor to collect new postings and track what you applied to or skipped. It never invents a job or a salary, and it does not apply for you: you apply on the company's own page. Free plan included, within a daily call limit.
Related MCP Servers
- 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.-
- AlicenseAqualityBmaintenanceEnables querying open job postings directly from company applicant-tracking systems (Greenhouse, Ashby, Lever), finding a company's job board, listing and comparing roles, and accessing salary data, all without scraping or API keys.335 PyPI1MIT
- AlicenseNot gradedqualityBmaintenanceEnables natural-language job search and aggregation from multiple recruitment websites with zero configuration, providing filtered results and standardized output for AI assistants.42 npmISC
- AlicenseAqualityCmaintenanceEnables real-time job search across thousands of companies' open roles from Greenhouse, Lever, Ashby, and SmartRecruiters, with full-text filtering and company-specific queries, no API key required.2MIT