Jobo Job Search MCP Server
OfficialClick on "Install 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., "@Jobo Job Search MCP ServerFind remote software engineer jobs with salary range"
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.
Jobo Job Search MCP Server
Remote MCP server exposing Jobo's live job index — millions of listings collected from employer career sites and 100+ applicant tracking systems — to LLM clients.
Full client setup (Claude, ChatGPT, Cursor, Codex CLI) and the tool reference: jobo.world/docs/connectors/mcp.
Transport: Streamable HTTP, single
/mcpendpoint, stateless. Serves MCP spec 2026-07-28 natively and every 2025-era client through the built-in legacy fallback (SDK v2createMcpHandler, one factory for both eras).Auth: OAuth 2.1. This is a Resource Server; the Authorization Server is the Jobo API. Clients log in with their Jobo account — no API key copy-paste. Required scope:
jobs:read.
Self-hosting
The hosted deployment is https://jobs-mcp.jobo.world. To run your own copy instead:
npx jobo-job-search-mcpStarts the Streamable HTTP server on $PORT (default 3002); point your client at
http://localhost:3002/mcp. This changes where the gateway runs, not its auth model — it's still an
OAuth resource server gated on Jobo account sign-in, since the upstream API validates every request against
the Authorization Server regardless of which copy of the gateway forwarded it. Set MCP_RESOURCE_URL to
match whatever host you actually serve it from — see Configuration below.
Related MCP server: mcp-jobs
Why this is a separate server
Jobo.Enterprise/Jobo.Enterprise.Mcp was deliberately re-scoped to analytics-only in v4, which removed
search_jobs, get_job_details, list_filters, search and fetch. Adding job tools back there would
undo that decision, so this is a second server against the same External API.
The /api/mcp/jobs/* endpoints were never removed — McpController.cs still serves them, and its own
comment notes the GET search is "convenient for the canonical ChatGPT search(query) tool". This server
is a thin OAuth-forwarding gateway in front of endpoints that were built for it.
The immediate payoff: search + fetch restore Deep Research compatibility. Without that canonical
pair a server cannot be used as a ChatGPT Deep Research connector at all.
Tools
Tool | Purpose |
| Canonical Deep Research contract: |
| Canonical Deep Research contract: |
| Structured search — location, work model, employment type, experience level, source, skills, industries, salary, date, facets, paging. |
| Full listing for clients not using the Deep Research contract. |
| Accepted values for every filter, with live counts. |
search/fetch deliberately take the minimum arguments the contract allows. Anything with structure
should go through search_jobs, where filters are real parameters rather than hopeful free text.
What fetch returns
text is self-contained prose, because Deep Research reads it and never opens the URL. It is built from
the AI-extracted fields (responsibilities, qualifications, benefits, compensation) in preference to the
raw employer HTML, which is boilerplate-heavy and frequently longer than it is useful. The raw description
is available via get_job_details with include_description: true.
Auth model
The server is a gateway, not the cryptographic authority. The C# External API validates the JWT with
OpenIddict against the same issuer, audience and jobs:read scope; verifying the signature a second time
here would only let the two validators drift. So this does the minimum a gateway must:
Require a Bearer token; absent →
401with the resource-metadata challenge, starting the OAuth flow.Cheaply reject an already-expired token (decode
exp, no signature check) so long-lived clients refresh rather than forwarding a dead token.Attach the raw current-request token to
req.auth, so every tool call forwards the token the client just sent — never one captured at session-initialize.
Stateless by design
No session map. That map lived in process memory, so every restart or redeploy stranded clients with
"No active session", and it pinned the deployment to a single replica. Redis cannot back it either: the
value is a live transport object holding open streams. Each POST is served by a fresh server and transport
with no mcp-session-id issued.
Configuration
Variable | Default | Notes |
|
| Upstream External API. |
|
| OAuth audience. Must differ from the analytics server's |
|
| Authorization Server. |
|
| Analytics server uses 3001. |
Development
npm install && npm run build && npm testnpm run devVerifying without credentials
node --test dist/format.test.js covers the mapping logic, including that search and fetch return
exactly the shapes Deep Research requires. For the wire path, point the server at a stub:
JOBO_API_URL=http://localhost:3098 PORT=3097 MCP_RESOURCE_URL=http://localhost:3097 node dist/index.jsThen tools/list and tools/call over HTTP with any JWT-shaped bearer whose exp is in the future —
the gateway forwards it and the stub answers. A real token is only needed against the live API.
Registry listing
Published to the official MCP Registry as world.jobo/job-search (the mcpName in package.json;
server.json in this directory is the registry manifest). Publishing is automated: the mcp-v* tag
workflow publishes npm first, then pushes server.json to the registry under the DNS-TXT-verified
world.jobo/* namespace — see ../RELEASING.md. There is no review queue and aggregators poll roughly
hourly. Note the official registry has no per-server web page by design — it is a metadata API for
aggregators. The downstream surfaces differ: PulseMCP emits a dofollow link, Glama and mcp.so are
nofollow. Manual directory submissions (Claude, ChatGPT, aggregator claims) live in
../MCP-DISTRIBUTION.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceEnables AI assistants to search job vacancies, manage resumes, and apply to jobs on HeadHunter (hh.ru), Russia's largest job search platform. Includes OAuth 2.0 integration for secure job applications and an automated vacancy hunter agent with intelligent matching.Last updated24MIT
- Alicense-qualityDmaintenanceA zero-configuration job aggregation server that enables searching for positions and retrieving details across multiple recruitment platforms using natural language. It provides standardized data for job requirements, salary comparisons, and market trends directly within AI clients.Last updated61115ISC
- AlicenseAqualityBmaintenanceEnables searching over 1 million enriched job listings from 20,000+ companies directly from MCP-compatible AI tools. Provides tools for job search, company profiles, and AI-powered similar job recommendations with real-time data updates.Last updated4832MIT
- Flicense-qualityCmaintenanceEnables 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.Last updated
Related MCP Connectors
AI job search for Claude, ChatGPT, Cursor. 128K+ jobs, 1,900+ companies. OAuth or stdio.
Live job postings from 30+ ATS feeds and job boards, one schema. Live results need a Bearer key.
Job search and interview prep MCP. 11 tools, OAuth 2.1, cross-LLM. four-leaf.ai.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JoboAI/jobo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server