Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Jobstack MCP.
search_jobsSearch + merge job postings across all (or a `sources=` subset of) engines, sorted newest-first, paginated.
get_jobFetch one job by its source engine + native id (composite `board:company:nativeId` for `ats`).
A remote MCP (Model Context Protocol) connector for JobStack β the unified jobs-search API (jobs-api) that fuses official job-board feeds and public ATS boards (USAJOBS, Adzuna, Jooble, The Muse, Reed, and Greenhouse/Lever/Ashby/Workable/SmartRecruiters behind one ats engine) into one flat Job shape.
Live: https://jobstack-mcp.vercel.app/mcp β 2 tools, exposed over the MCP streamable-HTTP transport. Since the upstream jobs-api deployment is metered (RapidAPI/Apify) and its /v1/* routes sit behind a RapidAPI proxy-secret guard, this connector authenticates its own outbound calls with that same secret (JOBSTACK_MCP_PROXY_SECRET, sent as the X-RapidAPI-Proxy-Secret header) and applies a soft per-IP rate limit (JOBSTACK_MCP_RATE_LIMIT, default 30 tool-calls/hour, in-memory) so the free MCP tier stays a discovery channel rather than an unmetered bypass of the paid listing β see lib/ratelimit.js.
JobStack is a plain REST API. This repo is a thin adapter that exposes each endpoint as a discoverable, typed MCP tool so MCP clients (Claude, ChatGPT, any MCP-aware agent) can call it directly, speaking the MCP streamable-HTTP transport at a single /mcp endpoint. It has no business logic of its own β every tool call is a pass-through fetch to jobs-api, and the JSON response is handed back verbatim as the tool result.
| Tool | JobStack endpoint | Description |
|---|---|---|
search_jobs | GET /v1/jobs/search | Search + merge job postings across all (or a sources= subset of) engines, sorted newest-first, paginated. |
get_job | GET /v1/jobs/{source}/{id} | Fetch one job by its source engine + native id (composite board:company:nativeId for ats). |
Both tools are read-only and annotated { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }.
search_jobs inputskeywords (string, optional) β free-text search terms.location (string, optional) β free-text location filter.remote (boolean, optional) β filter to remote roles where the source signals it.sources (string, optional) β comma list of engine keys: usajobs, adzuna, jooble, themuse, reed, ats. Omit for all six.limit (int 1-100, optional, default 20).offset (int β₯0, optional, default 0).get_job inputssource (enum: usajobs | adzuna | jooble | themuse | reed | ats).id (string) β native upstream id from a search result; for ats, the composite board:company:nativeId string.JOBSTACK_MCP_API_BASE_URL β upstream base URL. Default https://jobs-api-gamma.vercel.app.JOBSTACK_MCP_PROXY_SECRET β the RapidAPI proxy secret forwarded as X-RapidAPI-Proxy-Secret on outbound calls (needed for the production origin, which guards /v1/*).JOBSTACK_MCP_RATE_LIMIT β soft per-IP tools/call cap per hour. Default 30.test/smoke.mjs drives the running server over real HTTP/JSON-RPC and verifies GET /health, initialize (serverInfo.name === "jobstack"), and tools/list (the 2 tools with their zod-derived schemas), then attempts a live search_jobs tools/call. Without JOBSTACK_MCP_PROXY_SECRET set locally the upstream origin returns 403 (its RapidAPI guard) β an expected upstream-auth condition the smoke test reports as a soft warning while still verifying the full protocol surface.
After deploy, the MCP connector URL to register in Claude/ChatGPT/any MCP client is https://<deployment-domain>/mcp.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jobstack-mcp)<a href="https://allmcps.com/mcp/jobstack-mcp"><img src="https://allmcps.com/api/badge/jobstack-mcp?style=directory" alt="Jobstack MCP on AllMCPs" /></a>