Jobo Job Search

world.jobo由 jobo.world 發布官方發布者v1.1.0更新於 Oct 24, 2026

Search a live index of millions of open jobs from employer career sites and 100+ ATS platforms.

已驗證Streamable HTTP可網頁執行效率與工作流網頁搜尋與抓取

概覽

AI 產生的概覽

Jobo Job Search 讓助理檢索來自企業招募網站與 ATS 平台、數百萬筆職缺的即時索引,支援搜尋、擷取詳情與結構化篩選。

可以做什麼
  • 以簡單查詢檢索職缺索引,並依 Deep Research 規範取得自成一體的職缺文字。
  • 依地點、工作模式、僱用類型、經驗程度、來源、技能、產業、薪資與日期進行結構化職缺搜尋,支援 facet 與分頁。
  • 讀取單一職缺的完整內容,可選擇包含雇主原始描述。
  • 列出每個篩選條件可接受的值及即時數量。
適用情境
適合讓助理尋找職缺、依地點、薪資或技能等條件比較職缺,或作為 ChatGPT Deep Research 等用戶端中的求職資訊來源。
執行需求
可使用 jobs-mcp.jobo.world 遠端端點,或以 npx jobo-job-search-mcp 在 Node.js 上本機執行,監聽 PORT(預設 3002)。需透過 OAuth 2.1 以 Jobo 帳號登入並具備 jobs:read 權限範圍,無須複製 API 金鑰。自架時另需將 MCP_RESOURCE_URL 設為實際對外提供服務的位址。
安裝前請注意
登入經由 Jobo 帳號完成,每個請求都會由 Jobo 授權伺服器在上游驗證,因此職缺查詢內容與帳號身分會傳送給 Jobo。伺服器對職缺資料為唯讀,但每次呼叫都會轉送用戶端的 bearer 權杖。自架副本同樣需要 Jobo 登入,且須正確設定資源 URL。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Jobo Job Search,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/world.jobo%2Fjob-search/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "jobo-job-search": {
      "type": "http",
      "url": "https://jobs-mcp.jobo.world/mcp"
    }
  }
}

README

Jobo Job Search MCP Server

Remote MCP server exposing Jobo's live job index — millions of listings collected from employer career sites and 150+ 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 /mcp endpoint, stateless. Serves MCP spec 2026-07-28 natively and every 2025-era client through the built-in legacy fallback (SDK v2 createMcpHandler, 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:

bash
npx jobo-job-search-mcp

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

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

ToolPurpose
searchCanonical Deep Research contract: {query} → {results: [{id, title, url}]}.
fetchCanonical Deep Research contract: {id} → {id, title, text, url, metadata}.
search_jobsStructured search — location, work model, employment type, experience level, source, skills, industries, salary, date, facets, paging.
get_job_detailsFull listing for clients not using the Deep Research contract.
list_filtersAccepted 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:

  1. Require a Bearer token; absent → 401 with the resource-metadata challenge, starting the OAuth flow.
  2. Cheaply reject an already-expired token (decode exp, no signature check) so long-lived clients refresh rather than forwarding a dead token.
  3. 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

VariableDefaultNotes
JOBO_API_URLhttps://connect.jobo.worldUpstream External API.
MCP_RESOURCE_URLhttps://jobs-mcp.jobo.worldOAuth audience. Must differ from the analytics server's mcp.jobo.world.
OAUTH_AUTH_SERVER_URLhttps://enterprise.jobo.worldAuthorization Server.
PORT3002Analytics server uses 3001.

Development

bash
npm install && npm run build && npm test
bash
npm run dev

Verifying 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:

bash
JOBO_API_URL=http://localhost:3098 PORT=3097 MCP_RESOURCE_URL=http://localhost:3097 node dist/index.js

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

來源:README.md,提交 49966fa

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分