Skip to main content
jobo-job-search-mcp is a remote MCP server over Jobo’s live job index — millions of listings from employer career sites and 100+ applicant tracking systems. Clients sign in with a Jobo account instead of pasting an API key.
This is the jobs MCP server. Jobo also runs a separate analytics MCP server at mcp.jobo.world, which exposes SQL-style querying over the dataset rather than job search tools — that’s a different product, documented on its own marketing page. If you want an assistant to search and cite individual job listings, you want this page; if you want it to run aggregate queries across the dataset, you want that one.

Get the server

npmjs.com/package/jobo-job-search-mcp
This page assumes you’ve read the shared Authentication section on the connectors overview — this connector is the one exception to it, so read on for what’s different.

Add the hosted server to your client

The hosted server runs at https://jobs-mcp.jobo.world/mcp. Add it wherever your client supports a remote MCP server over Streamable HTTP:
In Claude Desktop, add it under Settings → Connectors. In ChatGPT, add it as a connector from the connector settings. Any MCP client that supports Streamable HTTP works the same way.

Sign in (OAuth)

The first tool call opens a Jobo login in your browser. Approve access and the token refreshes itself from then on — there’s no key to copy or rotate by hand. Under the hood, the server is an OAuth 2.1 Resource Server; the Jobo API is the Authorization Server, and every tool call forwards the bearer token your client currently holds. If your client keeps asking you to re-authenticate, the access token likely expired without the client refreshing it — remove and re-add the connector. The server issues a standard challenge that any compliant client uses to re-authorise automatically on the next attempt.

Self-hosting

Run the same server yourself with:
This starts the Streamable HTTP server on $PORT (default 3002); point your client at http://localhost:3002/mcp (or wherever you deploy it) instead of the hosted URL. Self-hosting is about controlling where the process runs — it does not switch the server to API-key auth. It’s still an OAuth resource server gated on the same Jobo account sign-in, since the upstream API validates every request against Jobo’s Authorization Server regardless of which copy of the gateway made it. Configuration is via environment variables:

Tools

search and fetch deliberately take the minimum arguments the Deep Research contract allows. Anything with more structure — a location, a salary floor, a specific ATS — should go through search_jobs instead.

Credits

Searching costs credits from the same wallet the rest of the Jobo API bills against, at the same rate as GET /api/jobs: you pay per job returned, not per tool call. A search that comes back with ten jobs costs ten jobs’ worth of credits; one that comes back empty costs nothing. No subscription is required — a wallet balance is enough. If you hold a Job Search plan, its included monthly quota is consumed first and only the overage touches the wallet, exactly as on the REST API. There’s no separate rate limit on the MCP server: your balance is the ceiling. When it runs out, tools return a message saying how many credits the search needed and where to top up, and nothing is billed for that call. Top up at enterprise.jobo.world/credits.

Troubleshooting


Related: n8n node

For a scheduled workflow rather than a conversational assistant, the n8n node covers the same search surface plus a polling trigger.