ATS Jobs Gateway (Workday, Greenhouse, Lever, Ashby)

io.github.ginugokzPublished by GitHub account ginugokzv0.1.1Updated Oct 25, 2026

Job postings from Workday, Greenhouse, Lever and Ashby, with added, updated and removed jobs.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Fetches open job postings from Workday, Greenhouse, Lever and Ashby career sites as normalized JSON, with change tracking for added, updated and removed jobs.

What you can do
Scrape job postings from Workday, Greenhouse, Lever and Ashby career-site URLs, detected from the host, into one normalized schema with title, locations, dates, employment type, salary text and description HTML. Track changes between runs with delta statuses for added, updated, removed and unchanged jobs, optionally returning only deltas. Limit results per run and choose whether to include full job details. Run a full scan of large career sites so closed jobs can be reported.
When to use it
Use it to monitor hiring at one or many companies on these four applicant tracking systems, for example daily job-board feeds into automation pipelines, spreadsheets or alerts. It suits recruiting research and job-market tracking rather than general web scraping.
Requirements
Remote endpoint at mcp.apify.com, or a local Python MCP server from the repository. An Apify account and API token are required, sent as an Authorization bearer header; the hosted setup uses OAuth. The extraction runs as a paid Apify Actor, and change-tracking state is stored in a key-value store in your own Apify account.
Before you install
Usage is billed per job delivered plus a fee per run, so costs grow with targets and frequency; check the Actor's pricing tab. The Authorization header carries your Apify API token, which grants access to your Apify account. The server reads public career-site data and sends it to Apify's hosted service.

Installation

In SourceWeft

  1. Open ATS Jobs Gateway (Workday, Greenhouse, Lever, Ashby) in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ginugokz%2Fats-zero-browser-gateway/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "ats-jobs-gateway-workday-greenhouse-leve": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=ginugokz/ats-zero-browser-gateway"
    }
  }
}

README

Workday, Greenhouse, Lever & Ashby Jobs API — MCP server + Apify Actor

Get every open job from company career sites running Workday, Greenhouse, Lever or Ashby as clean, normalized JSON — with change tracking: only the jobs that were added, updated or closed since your last run. No browser, no login, no proxies.

This repository contains the MCP server and integration templates. The extraction engine runs as a hosted, maintained Actor on Apify:

→ ginugokz/ats-zero-browser-gateway on Apify


What you get

  • One schema for 4 applicant tracking systems — Workday (myworkdayjobs.com, myworkdaysite.com), Greenhouse, Lever and Ashby.
  • Change tracking (only_deltas) — receive only ADDED, UPDATED and REMOVED jobs since the previous run. Built for daily monitoring in n8n, Make, Zapier, Clay or your own pipeline.
  • Salary text extracted when the posting publishes it (compensation_raw).
  • Privacy by default — recruiter emails and phone numbers are removed from descriptions.
  • Fast — around 40 detailed Workday jobs in about 10 seconds, with no headless browser.

Supported career sites

ATSURL formatExample input
Workdayhttps://{company}.wd{n}.myworkdayjobs.com/{locale}/{site} or https://wd{n}.myworkdaysite.com/recruiting/{company}/{site}https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite
Greenhousehttps://boards.greenhouse.io/{board} or https://job-boards.greenhouse.io/{board}https://boards.greenhouse.io/stripe
Leverhttps://jobs.lever.co/{company}https://jobs.lever.co/spotify
Ashbyhttps://jobs.ashbyhq.com/{company}https://jobs.ashbyhq.com/ramp

Pass full career-site URLs: the ATS is detected from the host. To find one, open the company's careers page, click any job and copy the address up to the board or site name.

Quick start

1. No code

Open the Actor on Apify, paste one or more career-site URLs and click Start. Export the results as JSON, CSV or Excel, or schedule the Actor to run daily.

2. HTTP API (any language)

bash
curl -X POST "https://api.apify.com/v2/acts/ginugokz~ats-zero-browser-gateway/run-sync-get-dataset-items" \  -H "Authorization: Bearer $APIFY_TOKEN" \  -H "Content-Type: application/json" \  -d '{        "targets": ["https://boards.greenhouse.io/stripe", "https://jobs.ashbyhq.com/ramp"],        "only_deltas": true,        "max_jobs": 100      }'

Get your API token at console.apify.com/settings/integrations.

3. Python

python
import os, requests
resp = requests.post(    "https://api.apify.com/v2/acts/ginugokz~ats-zero-browser-gateway/run-sync-get-dataset-items",    headers={"Authorization": f"Bearer {os.environ['APIFY_TOKEN']}"},    json={"targets": ["https://jobs.lever.co/spotify"], "only_deltas": True},    timeout=320,)for job in resp.json():    print(job["delta_status"], job["title"], job["url"])

4. MCP — Claude Desktop, Cursor and other MCP clients

Hosted (nothing to install): add the Apify MCP server with this Actor as a tool:

https://mcp.apify.com/?tools=ginugokz/ats-zero-browser-gateway

Local (this repository):

bash
pip install "mcp>=1.2"
json
{  "mcpServers": {    "ats-jobs": {      "command": "python",      "args": ["/absolute/path/to/mcp_server.py"],      "env": { "APIFY_TOKEN": "<your Apify API token>" }    }  }}

Tool exposed: scrape_ats_jobs(urls, only_deltas=False, max_jobs=40, include_details=True). The server starts without a token; the token is only needed when the tool is called.

5. n8n

Import templates/n8n_ats_delta_monitor.json: it runs every 12 hours, calls the Actor with only_deltas and full_scan, and routes new, closed and edited jobs to three outputs (connect them to Slack, email or Sheets). Authentication: create a Header Auth credential with Name Authorization and Value Bearer <your Apify API token>, then select it in the HTTP Request node.

Output

One item per job. Real item from a run on 16 October 2026; locations (13 entries) and description_html are shortened here:

json
{  "source_system": "workday_cxs",  "company_tenant": "nvidia",  "site_id": "NVIDIAExternalCareerSite",  "requisition_id": "JR1999579",  "title": "Senior HPC Architect, Automation and At-Scale Deployment",  "url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-HPC-Architect_JR1999579",  "locations": ["US, CA, Santa Clara", "US, TX, Remote", "US, CO, Remote"],  "posted_date": "2026-10-15",  "employment_type": "Full time",  "remote_type": null,  "compensation_raw": "184,000 USD - 287,500 USD",  "description_html": "<p>NVIDIA has continuously reinvented itself over two decades. …</p>",  "delta_status": "ADDED",  "summary_hash": "ec90f0b7cd647ca6",  "detail_hash": "2f3177f5f974d75c",  "scraped_at": "2026-10-16T04:50:18.026337+00:00"}

source_system is workday_cxs, greenhouse, lever or ashby. compensation_raw is filled only when the posting publishes a salary.

How change tracking works

delta_statusMeaning
ADDEDNew job since the previous run
UPDATEDTitle, description or compensation changed
REMOVEDJob no longer listed (reported only after a complete, consistent read; a sudden drop to zero jobs waits for a second run)
EXISTINGUnchanged — skipped when only_deltas is true

The tracking state is stored in a named key-value store in your own Apify account. To track closed jobs on large career sites, set full_scan: true (summary mode, up to 5,000 jobs per site); a partial read never reports REMOVED.

Pricing

Pay-per-event on Apify: you pay per job delivered plus a small fee per run. Current prices are on the Actor's Pricing tab. Apify's free plan includes monthly usage credit for testing.

FAQ

Is this legal? The Actor reads the same public job-board endpoints that companies' own career pages use to show their openings. No login is used. It returns job postings, not personal profiles, and strips recruiter emails and phone numbers.

Why isn't the extraction engine in this repository? It runs as a managed service on Apify so that fixes for changing ATS endpoints reach every user immediately. This repository is the client side: MCP server, API examples and workflow templates.

Can I monitor hundreds of companies? Yes — pass them all in targets in one run and schedule it daily with only_deltas: true.

License

MIT — applies to the code in this repository (MCP client and templates).

Source: README.md at commit 12b7908

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v0.1.1LatestOct 25, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts