Career Site Jobs: Workday, Oracle, Greenhouse and 21 more

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

Open jobs from any company's careers site by name or domain, plus a search across 2.5M+ roles

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取商業與電商

概覽

AI 產生的概覽

託管於 Apify 的 MCP 伺服器,可依公司名稱或網域抓取企業招募頁面上的全部職缺,涵蓋 24 種以上招募系統。

可以做什麼
  • 依公司名稱或網域查詢公司,並從雇主自家的招募看板讀取所有開放職缺
  • 依職稱關鍵字、地點關鍵字、僅限遠端,以及單一公司或整次執行的結果上限進行篩選
  • 可選擇一併抓取完整職缺描述,預設關閉,因為資料量明顯較大
  • 每筆職缺回傳統一格式的一列,包含職稱、地點、部門、連結、刊登時間、僱用類型、工作型態與來源招募系統
  • 回傳錯誤列,說明某家公司為何沒有結果
適用情境
適合讓助理回答某家特定公司目前招募哪些職位,或跨多家指定公司彙整職缺,而不必事先知道各家使用哪套招募系統。
執行需求
遠端 MCP 端點 mcp.apify.com,並在網址中指定此工具;需以 Apify OAuth 登入,或以 Authorization Bearer 標頭提供 Apify API 權杖;需要 Apify 帳號,依結果計費。
安裝前請注意
需要 Apify API 權杖或 Apify 登入,助理將以你的 Apify 帳號身分操作。執行依結果付費,被篩選條件排除的資料列與錯誤列不計費。資料來自第三方招募網站,並經 Apify 託管服務傳輸。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "career-site-jobs-workday-oracle-greenhou": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=glitchbound/ats-jobs-scraper,glitchbound/workday-jobs-scraper,glitchbound/ats-jobs-search"
    }
  }
}

README

Company Career Page Scraper: every open job from any company, by name or domain

Give it company names or websites (stripe.com, Marriott, Casey's) and get every open job on each company's careers page as one clean row, whichever hiring system the page runs on: Workday, Oracle, ADP, iCIMS, SAP SuccessFactors, Eightfold, Phenom, Greenhouse, Lever, Ashby and 14 more. No board tokens to look up, no API key for any of those systems, no proxy.

This repo is the quick start for the hosted Company Career Page Jobs Scraper on Apify: one HTTP call from the shell, a standard-library Python script, and the setup for using it as a tool in Claude, ChatGPT or Cursor.

Quick start: one curl

Get a free Apify API token at console.apify.com/settings/integrations, then:

bash
export APIFY_TOKEN=apify_api_...curl -s -X POST \  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \  -d '{"companies": ["stripe.com", "Marriott", "Casey'"'"'s"], "titleKeywords": ["manager"], "maxItems": 20}' \  "https://api.apify.com/v2/acts/glitchbound~ats-jobs-scraper/run-sync-get-dataset-items"

The response is a JSON array, one object per job. Stripe is on Greenhouse, Marriott on Oracle, Casey's on ADP; you did not need to know any of that. For runs longer than five minutes, start the run and fetch the dataset when it finishes.

Quick start: Python

example.py uses only the standard library and writes a CSV:

bash
python3 example.py --company stripe.com --company Marriott --company "Casey's" --title manager --max 6python3 example.py inputs/security-roles.json

A real run of the first command:

6 jobs written to jobs.csv  Stripe: AEO and GEO Marketing Manager (Remote in the US)  Stripe: AI Solutions Program Manager, Finance (SEA, SF, NYC, CHI)  Marriott: Revenue Manager (LONDON, United Kingdom)  Marriott: Analytics Manager (Goa, India)  Casey's: Center Store Manager - Gardner, KS (Gardner, Kansas, United States)

Use it from an AI agent (MCP)

Add this as a connector in Claude or ChatGPT:

https://mcp.apify.com?tools=glitchbound/ats-jobs-scraper

In Cursor or VS Code, the same address goes in mcp.json:

json
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com?tools=glitchbound/ats-jobs-scraper" } } }

The first call asks you to sign in to Apify or takes an API token. Then "what is Stripe hiring for in Dublin?" is one tool call.

It is also listed in the official MCP Registry as io.github.danielhagever/career-site-jobs, together with the Workday and Job Listings tools (server.json).

Input

FieldWhat it does
companiesCompany names or domains: NVIDIA, Home Depot, stripe.com. Each is looked up in a directory of career sites already read, and guessed (then verified against the live board) only when the directory has nothing.
boardsSkip discovery and read a board directly as platform:token, e.g. greenhouse:stripe or lever:palantir. Workday takes its careers URL: workday:https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite.
titleKeywordsKeep roles whose title contains any of these. Plain text, so c++ means c++.
locationKeywordsKeep roles whose location contains any of these, e.g. London.
remoteOnlyKeep remote roles only.
includeDescriptionAlso fetch the description text. Off by default, because some sources are many times heavier with it.
maxResultsPerCompanyCeiling per board (default 1,000).
maxItemsCeiling for the whole run.

Ready-made inputs are in inputs/. Rows your filters drop are not charged, and on large Workday, Oracle, Eightfold, Phenom and Amazon boards a title or city filter is sent to the employer's own search, so it finds every match rather than skimming the newest postings.

Output

Every system names things differently; every row comes back in one shape. One real row from each of the three systems in the run above is in sample-output.json:

json
{  "jobId": "5001234068100",  "title": "Center Store Manager - Gardner, KS",  "location": "Gardner, Kansas, United States",  "departments": ["Store / Field Leadership"],  "url": "https://myjobs.adp.com/caseysstore/cx/job-details?reqId=5001234068100",  "postedAt": "2026-10-25T13:02:33Z",  "employmentType": "full-time",  "company": "Casey's",  "atsPlatform": "adp",  "boardToken": "caseysstore",  "boardUrl": "https://myjobs.adp.com/caseysstore",  "workArrangement": "onsite",  "isRemote": false,  "country": "United States",  "region": "Kansas",  "city": "Gardner"}

atsPlatform says which system each row came from. Error rows ("recordType": "error") say why a company returned nothing and are not charged.

How a name becomes a board

Most scrapers that take a company name can only guess at a board token, which finds startups on Greenhouse or Lever and misses the employers people ask about first: Workday, Oracle, ADP and iCIMS addresses carry ids that no name or domain can be turned into.

So the Actor ships a directory of over 75,000 company names, each mapped to a career site it has already read real postings from, refreshed nightly. A name is looked up there first. Only when the directory has nothing does it derive candidate tokens from the domain, and then it checks each one against the live board: on the systems where a board that does not exist answers 404, a 200 is proof, not a guess.

Some companies run careers software of their own (Google, Apple, Meta, Tesla). For those the run says so and charges nothing, instead of returning some other company's board that happens to share the name.

The systems it reads

SystemExamples of employers it answers by name
WorkdayNVIDIA, Walmart, Salesforce, Disney, Wells Fargo
Oracle Recruiting CloudMarriott, Kroger, JPMorgan Chase, Hilton, Uber
ADPCasey's, PepsiCo Beverages North America
iCIMSCharles Schwab, Liberty Mutual, EMCOR
SAP SuccessFactors (on the employer's own site)EY, Compass Group, Aramark, Union Pacific
EightfoldMicrosoft, Starbucks, Lockheed Martin, Qualcomm
PhenomUPS, RTX, Eli Lilly, United Airlines
RadancyUnitedHealth Group, Comcast, Kaiser Permanente
JibeCostco, H&R Block, PetSmart, AMD
BrassRingHome Depot, Best Buy, Publix, Edward Jones
TaleoValero, Textron
Amazon (its own search)Amazon, AWS
Greenhouse, Lever, AshbyStripe, Airbnb, Palantir, OpenAI, Notion
Workable, Recruitee, Rippling, Teamtailor, Personio, BambooHR, Breezy, JazzHR, Paylocitythe long tail of small and mid-size employers, many in Europe

The raw public endpoint of each of these, with a tested curl, is in job-board-apis.

FAQ

How do I get every open job from a company's career page? Put its name or website in companies. The Actor works out which system the careers page runs on and reads that system's own job feed, so you never need the board's URL or token.

Does it work for the biggest employers? Yes, that is what the directory is for. Each board gives up to 1,000 roles by default; raise maxResultsPerCompany and a 20,000-job board such as Costco's is read in full. A title or city filter goes to the employer's own search, so it finds every match either way.

Why not just scrape Indeed or Glassdoor? They have no public jobs API and block automated requests at the edge. They also aggregate from these same career pages, so the source is fresher.

What does it cost? It is paid per result; rows dropped by your filters and error rows are not charged. The current rate for your plan is on the Actor page.

I want what is new, not everything. Job Listings API searches the whole index by title, place or salary, with newWithin for only the roles that appeared since the last daily refresh.

Related

Questions, or a company that does not resolve? Open an issue here or on the Actor page.

License

MIT

來源:README.md,提交 d8e1d21

工具

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

版本歷史

1
  1. v1.0.0最新Oct 26, 2026

評分

已滿足適用檢查項的 85%

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

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

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

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