mcpField
U
Unified Jobs MCP Server

Unified Jobs MCP Server

Remote
github.comBusiness & Marketing0Updated 1d ago

About Unified Jobs MCP Server

Unified Jobs MCP Server searches public jobs across ATS platforms, LinkedIn guest search, and Hacker News, then merges duplicate listings into canonical records. It is for agents that need a consolidated feed with source details and combined posting data.

Key features

  1. 01Search ATS, LinkedIn, and Hacker News
  2. 02Merge duplicate roles across sources
  3. 03Retain source links and merged fields
  4. 04Continue with results when a source fails

Use cases

  1. 01Search several job sources in one call
  2. 02Reduce duplicate results for the same role
  3. 03Compare source links and salary details
  4. 04Retrieve available results despite a source outage

MCP support

It exposes unified job search, Hacker News search, and source-listing tools to MCP clients. Search results can combine multiple sources into deduplicated records.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://assetfactory-jobs-x402.sigrunner.workers.dev/mcp/unified
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

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 README

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-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.

fieldnotes
companiesATS companies: bare slug ("stripe"), domain ("stripe.com"), or "platform:token" ("lever:palantir", "workday:tenant.wd5:Site"). ATS + token auto-detected for slugs/domains.
keywords, locationLinkedIn search (and keywords also filters HN).
sourcessubset of ["ats","linkedin","hn"]. Default: all three.
maxPerSourcecap rows per source before merge (default 25, max 200).
maxResultscap canonical records after merge (optional).
remoteOnly, dedupe, includeDescriptionbooleans; dedupe defaults on.
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

familycoveragekeyless
atsGreenhouse, Lever, Ashby, SmartRecruiters, Workday, Recruitee, Workable✅
linkedinpublic 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 — so Backend - Infrastructure and Backend - Defense stay 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_at is 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

Comments

Markdown supported

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.