This is the jobs MCP server. The analytics MCP server at
https://mcp.jobo.world/mcp is a separate product for aggregate, SQL-style queries (product page). Use this one when an assistant should search and cite individual listings.Get the server
npmjs.com/package/jobo-job-search-mcp
Add the hosted server to your client
The hosted server runs athttps://jobs-mcp.jobo.world/mcp over Streamable HTTP:
Sign in (OAuth)
The first tool call opens a Jobo login in your browser. Approve access, and the client refreshes the token from then on, so there’s no key to copy or rotate.Self-hosting
$PORT (default 3002). Point your client at http://localhost:3002/mcp, or wherever you deploy it, instead of the hosted URL.
Self-hosting does not switch the server to API-key auth. It’s still an OAuth 2.1 resource server gated on Jobo account sign-in. The upstream API validates every token against Jobo’s authorization server, whichever copy of the server forwards it.
Configure it with environment variables:
Tools
searchandfetchfollow the ChatGPT Deep Research contract and take only its minimum arguments. Deep Research readsfetch’stextdirectly and never opens the URL, sotextis self-contained prose built from the extracted job fields.search_jobstakes the same filters asPOST /api/jobs/search: query, location, sources, companies, work model, employment type, experience level, language, skills, industries, company categories, job categories, job subcategories, occupations, salary, posting and discovery dates, sort,include_facets, and paging. Companies, skills, industries, company categories, job categories, job subcategories, and occupations each have anexclude_version. Setsearch_description: falsefor title-only matching.find_companiesturns a company name or domain into its ids. One company can have several ids, one per careers board, and the assistant passes all of them ascompanies.find_filter_valueslists the values of an open-ended filter, such as occupations, job categories, skills, or ATS sources. It turns “registered nurse” into the occupation idsearch_jobstakes.get_job_detailsreturns the same data asfetchfor clients that don’t use the Deep Research contract.include_descriptionappends the raw employer description.
Cost
Searches bill likeGET /api/jobs: per job returned, not per tool call. One search call bills at most 20 jobs and one search_jobs call at most 50; an empty result costs nothing. The Unlimited plan doesn’t cover MCP searches (cost model).
No subscription is required: a wallet balance is enough. MCP search shares your account’s rate limits and included jobs with REST search.
When included jobs and the wallet can’t cover a search, nothing is billed. The tool returns a message with the credits needed and a link that opens a top-up for the amount you’re short. You can also top up under Account → Billing in the dashboard.
Troubleshooting
Related: n8n node
For a scheduled workflow instead of a conversational assistant, the n8n node covers the same search plus a polling trigger.

