Workday, Greenhouse & Lever Jobs API (35 sources) avatar

Workday, Greenhouse & Lever Jobs API (35 sources)

Pricing

Pay per event

Go to Apify Store
Workday, Greenhouse & Lever Jobs API (35 sources)

Workday, Greenhouse & Lever Jobs API (35 sources)

Company name in, new jobs out. Open jobs from 30 ATS and 5 job feeds (Workday, Greenhouse, Lever, Ashby, Oracle, SuccessFactors, Phenom and more) in one JSON schema, with filters and a daily new-job watch. $1.50 per 1,000 jobs, $2.00 from 2026-11-05.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Nguyen Vu Trung Hieu

Nguyen Vu Trung Hieu

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

2 days ago

Last modified

Share

Job Board Scraper: Workday, Greenhouse, Lever and 32 More Sources, One Schema

Get every open job from any company on 30 applicant tracking systems (ATS), from Workday, Greenhouse, Lever, Oracle Recruiting Cloud, SAP SuccessFactors and Phenom to Gupy, Keka and Beisen, plus 5 open job feeds, in one identical JSON shape whichever system the company uses. Paste careers URLs or company names, set filters, and get clean rows ready for a spreadsheet, a database or an AI agent. Pay per use: $1.50 per 1,000 jobs, and $2.00 per 1,000 jobs from 2026-11-05. No API key, failed boards are free.

This Actor reads only the public job-board endpoints that each ATS publishes for career pages and job portals. It checks robots.txt where the employer controls the host (Workday, Oracle, Eightfold, SuccessFactors, Phenom). It does not log in, does not use proxies, and never touches candidate data.

Why this Actor

  • 35 sources behind one schema. Workday, Oracle, SuccessFactors, Phenom, Eightfold and Cornerstone cover most large employers; Greenhouse, Lever, Ashby, Gem and Rippling cover tech startups; Personio, Recruitee, Teamtailor, softgarden and Homerun cover Europe; Gupy (Brazil), Keka (India) and Beisen (China) cover big markets the usual scrapers miss.
  • Open job feeds too. Remote OK, Himalayas, Jobicy, Arbeitnow and Sweden's JobTech ads (CC0) by search term.
  • Company names work. Give "Stripe" or "stripe.com" and the Actor finds the board on Greenhouse, Lever, Ashby, Workable or SmartRecruiters.
  • Filters that save money. Title keywords, excluded words, location, remote, department, employment type, posting date and pay are applied before you are charged, so you pay only for jobs you keep.
  • New and closed roles. Turn on onlyNew and schedule the Actor: each run returns only jobs it has not sent before, plus a free row for each role that closed, so a daily hiring-signal feed costs cents.
  • Full descriptions and pay where the company publishes them, with ISO country codes, and a workplace type wherever the job or its place says remote, hybrid or on site.

Use it for hiring-signal and sales-trigger lists, job aggregators and niche job boards, recruiting research, labor-market data, and AI agents that need to answer "what roles does this company have open".

Quick start

{
"companies": [
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite",
"Stripe",
"https://jobs.lever.co/spotify",
"personio:entityx"
],
"titleKeywords": ["engineer", "developer"],
"excludeTitleKeywords": ["intern"],
"postedWithinDays": 7,
"maxItems": 500
}

companies takes a mix of:

  • careers URLs from any supported ATS (the ATS and board are detected for you);
  • ats:slug tokens such as greenhouse:airbnb or workday:nvidia.wd5/NVIDIAExternalCareerSite; sites on the employer's own domain (SuccessFactors, Phenom) need a token, see the table below;
  • company names or domains such as Stripe or stripe.com (looked up on Greenhouse, Lever, Ashby, Workable and SmartRecruiters);
  • { "ats": "lever", "slug": "spotify" } objects.

Filters and options

InputWhat it does
keywordEvery word must appear in the title, department, team or description.
titleKeywordsKeep a job when its title has any of these phrases.
excludeTitleKeywordsDrop a job when its title has any of these phrases.
locationText in a location or city, or a country name or ISO code (Germany, DE).
remotetrue keeps only remote jobs.
departmentText in the department or team name.
employmentTypesAny of full_time, part_time, contract, intern, temporary, other. Jobs whose ATS gives no type (Greenhouse, Teamtailor) are dropped by this filter.
postedWithinDays, postedSinceKeep jobs published in the last N days, or on or after a date.
withSalaryKeep only jobs that publish pay.
maxJobsPerCompanyCap per company after filtering (default 1000).
maxItemsCap for the whole run. Use it to cap cost.
includeDescriptionWorkday, SmartRecruiters, BambooHR, Oracle, Eightfold, ADP, Paylocity, Gupy, Phenom and Polymer give the text, type or pay on a second request per job; false skips it for a faster list, and filters on those fields then keep the job.
onlyNew, monitorName, includeClosedReturn only jobs this watch has not returned before, plus free rows for roles that closed since. Keep one monitorName per search.

Watch new and closed roles

  1. Set your companies and filters, turn on Only new jobs, and give the watch a name such as sales-leads-de.
  2. Save the input as an Apify task and add a daily schedule.
  3. Each run returns only jobs that the watch has not sent before, and a free closed row for each role it sent earlier that is now gone from the board. You pay only for the new jobs.

The first run returns every current match and no closed rows. The watch remembers job ids and open roles in a named key-value store in your own Apify account (job-board-monitor). Jobs that a spending limit cut from a run come back on the next run. A board read that stops early reports no closed roles, so a role is never marked closed only because it was past the cut (Workday lists at most 2,000 jobs). Turn off includeClosed to get new jobs only.

A closed row looks like this:

{ "type": "closed", "id": "4012345", "ats": "greenhouse", "companySlug": "stripe", "companyName": "Stripe", "title": "Account Executive", "sourceUrl": "https://job-boards.greenhouse.io/stripe/jobs/4012345", "closedAt": "2026-10-23T02:00:00.000Z" }

What you get

One record per job, with the same fields for every ATS:

FieldMeaning
id, ats, companySlug, companyNameStable identity. Jobs are deduplicated by ats + id.
title, department, teamAs published. null where the ATS has no such field.
locations[]name as published, plus city, region and country (ISO 3166-1 alpha-2 code such as US).
remotetrue when remote, false when hybrid or on-site, null when unknown.
workplaceTyperemote, hybrid, onsite or null.
employmentTypefull_time, part_time, contract, intern, temporary, other or null.
compensationmin, max, currency, interval, summary when the company publishes pay, else null.
descriptionHtml, descriptionTextFull description as HTML and as plain text.
applyUrl, sourceUrlWhere candidates apply, and the public posting page.
postedAt, updatedAtISO 8601 where the ATS gives them: a date only (2026-10-15) on Workday and BambooHR, a full time elsewhere.

A board that cannot be read produces an error record (type: "error", with code, message, retryable, status) instead of failing the run. Error records are never charged.

Example output (Workday)

{
"type": "job",
"id": "Senior-Verification-Engineer--PCIE_JR2026568-1",
"ats": "workday",
"companySlug": "nvidia.wd5/NVIDIAExternalCareerSite",
"companyName": "Nvidia",
"title": "Senior Verification Engineer, PCIE",
"department": null,
"team": null,
"locations": [{ "name": "India, Bengaluru", "city": "Bengaluru", "region": null, "country": "IN" }],
"remote": null,
"workplaceType": null,
"employmentType": "full_time",
"compensation": null,
"descriptionText": "NVIDIA is seeking an elite Senior Verification Engineer to verify the design and implement...",
"applyUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/India-Bengaluru/Senior-Verification-Engineer--PCIE_JR2026568-1/apply",
"postedAt": "2026-10-15",
"updatedAt": null,
"sourceUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/India-Bengaluru/Senior-Verification-Engineer--PCIE_JR2026568-1"
}

Supported sources

SourceCareers URL or tokenDescriptionPay
Workdaynvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSiteyesin the text only
Greenhouseboards.greenhouse.io/airbnbyeswhen pay ranges are published
Leverjobs.lever.co/spotifyyeswhen a salary range is published
Ashbyjobs.ashbyhq.com/notionyeswhen published
SmartRecruitersjobs.smartrecruiters.com/Canvayesno
Workableapply.workable.com/huggingfaceyesno
BambooHRbibliu.bamboohr.com/careersyeswhen published
Personioentityx.jobs.personio.comyesno
Recruiteeaddepto.recruitee.comyeswhen published
Breezy HRbitwave.breezy.hrnowhen published
Teamtailorpaysend.teamtailor.comyesno
Pinpointactica.pinpointhq.comyeswhen published
Ripplingats.rippling.com/aalyria-careers/jobsnono
Gemjobs.gem.com/11x-aiyesno
Manatalwww.careers-page.com/manatalyesno
Polymerjobs.polymer.co/sellscaleyeswhen published
Homerunopenred.homerun.coyeswhen published
Trakstar Hireaerosonic.hire.trakstar.comyesno
softgardenabpinduction.career.softgarden.deyesno
Paylocityrecruiting.paylocity.com/Recruiting/Jobs/All/{id}yesno
Oracle Recruiting Cloudeify.fa.us6.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001yesno
Eightfoldtoken eightfold:albemarle/albemarle.com (site / email domain)yesno
JobScorecareers.jobscore.com/careers/unifiedyesno
ADP Workforce Nowworkforcenow.adp.com/...recruitment.html?cid={cid}yeswhen published
Gupy4mk.gupy.ioyesno
Kekaabcoffee.keka.com/careersyeswhen published
Beisenmediatek.zhiye.comyeswhen published
SAP SuccessFactorstoken successfactors:apply.iav.com (the careers host)yesno
Phenomtoken phenom:careers.southwestair.com/us/en (host / country / language)yesno
Cornerstone OnDemandamericares.csod.com/ux/ats/careersite/1/home?c=americaresyes, when the site writes oneno
Remote OK (feed)remoteok:python (a tag)yeswhen published
Himalayas (feed)himalayas:python (a search)yeswhen published
Jobicy (feed)jobicy:python (a tag)yeswhen published
Arbeitnow (feed)arbeitnow:allyesno
JobTech, Sweden (feed)jobtech:python (a search)yesno

What is new in 0.3

  • 24 new sources: Pinpoint, Rippling, Gem, Manatal, Polymer, Homerun, Trakstar Hire, softgarden, Paylocity, Oracle Recruiting Cloud, Eightfold, JobScore, ADP Workforce Now, Gupy, Keka, Beisen, SAP SuccessFactors, Phenom and Cornerstone OnDemand, plus the Remote OK, Himalayas, Jobicy, Arbeitnow and JobTech feeds.
  • Every new source was read live against real boards before release.
  • Feed jobs link to the feed's own post page, as each feed's terms ask.

Use it from an AI agent (MCP)

The same tool is a hosted MCP server and HTTP API at api.openkrill.app (tool name list_jobs, overview at tools.openkrill.app). On Apify you can also call this Actor from any MCP client through the Apify MCP server. The input is a plain list of strings with no credentials, so an agent can fill it in from a company name or a careers link.

Pricing

Pay per event, one job-returned event per job in the dataset:

Apify planUntil 2026-11-05From 2026-11-05
Free and Starter$1.50 per 1,000 jobs$2.00 per 1,000 jobs
Scale (Silver)$1.25 per 1,000 jobs$1.70 per 1,000 jobs
Business (Gold) and above$1.00 per 1,000 jobs$1.40 per 1,000 jobs

Failed boards and error records are free. Filters run before charging, so jobs you filter out cost nothing. Set maxItems and the run's maximum cost to cap spend.

FAQ

Do I need an API key or an account with the ATS? No. Only public job-board endpoints are used.

How do I find a company's board? Give its name or domain, or paste its careers page URL. For Workday, open the company's jobs page and copy the URL that contains myworkdayjobs.com.

How are company names resolved? The name or domain is turned into likely board names ("Mistral AI" gives mistralai and mistral) and each is checked on Greenhouse, Lever, Ashby, Workable and SmartRecruiters. A list of known boards is checked first. The guess can miss or hit a different company with the same board name: check companyName on the first run, or pass the careers URL to be sure.

Why did a company name return "board_not_found"? No board with a matching name was found on those five ATS. For a company on another ATS, or on a custom careers domain, paste the careers URL.

Is salary included? Yes, where the company publishes pay in a field: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, BambooHR, Personio, Recruitee, Breezy HR, Teamtailor, Pinpoint, Polymer, Homerun, ADP, Keka, Beisen, JobTech and the job feeds. Workday puts pay inside the description text.

How many jobs can it read from one Workday board? Up to 2,000, which is the most the Workday careers site lists. Filters and maxJobsPerCompany stop the read early.

Limits

  • Only the supported sources, and only their public boards.
  • Workday boards are read 20 jobs per page, at most 2,000 jobs per board; descriptions take one request per kept job.
  • Breezy HR and Rippling publish no description in their public lists.
  • Large SuccessFactors feeds run to several megabytes; a board read can take a minute.
  • employmentTypes drops jobs from ATS that never state a type.
  • Every run reads the boards live; there is no cache in the Actor.

Privacy

Output contains only company-published job data. No candidate, recruiter or other personal data is collected or returned.

See docs/notes.md for endpoint details and known failure modes.