Jobstack Mcp

io.github.IsaiahDupree由 GitHub 帳號 IsaiahDupree 發布v1.0.0更新於 Nov 2, 2026

Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)

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

概覽

AI 產生的概覽

遠端 MCP 端點,讓助理跨官方徵才網站與 ATS 招募看板搜尋職缺,並取得單一職缺內容。

可以做什麼
  • 跨 USAJOBS、Adzuna、Jooble、The Muse、Reed 以及涵蓋 Greenhouse、Lever、Ashby、Workable、SmartRecruiters 的 ATS 引擎搜尋職缺,合併成統一格式,依刊登時間由新到舊排序並分頁。
  • 依關鍵字、地點、是否遠端、指定來源子集、筆數與位移量篩選搜尋。
  • 依來源引擎與原生 id 取得單一職缺,ATS 結果使用 board:company:id 的複合格式。
適用情境
適合需要一次查看多個招募平台上的最新職缺、依地點或遠端條件篩選比較職缺,或查看某筆搜尋結果詳細內容的情境。
執行需求
透過 streamable HTTP 連線的遠端 MCP 端點,不需本機安裝或帳號。連接器本身持有上游代理金鑰,並預設依 IP 施加每小時約 30 次工具呼叫的軟性限制。
安裝前請注意
兩個工具皆為唯讀,但每次呼叫都會轉送到按用量計費的第三方職缺 API,因此搜尋詞與地點會離開目前對話。免費層依 IP 限流,定位為探索管道,而非繞過付費 API 的無限通道。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Jobstack Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "jobstack": {
      "type": "http",
      "url": "https://jobstack-mcp.vercel.app/mcp"
    }
  }
}

README

jobstack-mcp

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.

What this is

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.

Tools

ToolJobStack endpointDescription
search_jobsGET /v1/jobs/searchSearch + merge job postings across all (or a sources= subset of) engines, sorted newest-first, paginated.
get_jobGET /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 inputs

  • keywords (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 inputs

  • source (enum: usajobs | adzuna | jooble | themuse | reed | ats).
  • id (string) — native upstream id from a search result; for ats, the composite board:company:nativeId string.

Config

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

Local development

bash
npm installnpm run dev          # starts local-server.js on http://localhost:3900npm run smoke        # in another terminal — real HTTP/JSON-RPC smoke test

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.

Deploy

bash
cd /Users/isaiahdupree/Software/jobstack-mcpnpx vercel --yes --prod

After deploy, the MCP connector URL to register in Claude/ChatGPT/any MCP client is https://<deployment-domain>/mcp.

來源:README.md,提交 96d89a5

工具

2

search_jobs

Search jobs (unified feed)

Search job postings across every configured source and merge the results into one flat Job shape. Fans out in parallel to USAJOBS, Adzuna, Jooble, The Muse, Reed, and the ats engine (Greenhouse/Lever/Ashby/Workable/SmartRecruiters), then merges + sorts by postedDate (newest first) and paginates the combined set. Each Job has id, source, title, company, location, remote, url, description, postedDate, salaryMin, salaryMax, salaryCurrency, department, and employmentType. The response envelope carries meta, the echoed query, sources_requested, an optional sources_errored map, total, count, limit, offset, and results. Use sources= to restrict to specific engines.

輸入參數limitoffsetremotesourceskeywordslocation

get_job

Get a single job by source + id

Fetch one job posting by its source engine and native id, returned as { meta, job } with the same flat Job shape search_jobs yields. The id is the native upstream id as returned by that source in search results (NOT prefixed with the source name). Exception: for source="ats" the id is a composite "board:company:nativeId" string (e.g. "greenhouse:airbnb:7995153") so the lookup can round-trip to the right ATS board. Not every source supports single-job lookup — a search-only source returns a not_supported / not_found error.

輸入參數id必填source必填

版本歷史

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

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。