Career Page Jobs Scraper: Name or Domain, Workday + 10 ATS avatar

Career Page Jobs Scraper: Name or Domain, Workday + 10 ATS

Pricing

from $0.85 / 1,000 job delivereds

Go to Apify Store
Career Page Jobs Scraper: Name or Domain, Workday + 10 ATS

Career Page Jobs Scraper: Name or Domain, Workday + 10 ATS

Get every open job of a company from its name, website or careers link. 11 ATS in one run: Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee, Personio, Breezy, BambooHR, Rippling. Salary, remote, full description, daily only-new mode. Errors free.

Pricing

from $0.85 / 1,000 job delivereds

Rating

0.0

(0)

Developer

Scrapewise Data

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Career Page Jobs Scraper: company name or domain, Workday and 10 more ATS, daily only-new mode

Type a company name (Hugging Face), its website (stripe.com) or paste its careers page or job board link, and get every open job in one table. The Actor finds the board for you across 11 applicant tracking systems: Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee, Personio, Breezy HR, BambooHR and Rippling. Each row has title, department, location, remote, employment type, salary range as numbers when the company publishes it, posting date, apply link and the full description. No account, no API key, no browser.

Built for job feeds and hiring signals: schedule it daily with onlyNew and every run brings only the jobs that appeared since the last run, plus a free list of jobs that closed. Large Workday sites (10,000+ openings) are read completely: the Actor splits the list by location and category facets to get past the 2,000-result cap of the Workday search.

At a glance

  • Price per 1,000 jobs, Free plan: US$ 1.00 (US$ 0.85 on Gold and above)
  • Fee per run start: US$ 0.01
  • ATS covered: Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee, Personio, Breezy HR, BambooHR and Rippling, one output format for all eleven
  • Input: company name, website, careers page, job board link or bare token; the ATS is detected for you
  • Salary as numbers: from the board when the ATS has it (Greenhouse, Lever, Ashby, Recruitee, Rippling), otherwise read from the description (salaryText)
  • Filters: title keywords, excluded words, locations, remote only, departments, posted within N days
  • Only new jobs since the last run (onlyNew): Yes, plus closed jobs in a free CLOSED_JOBS record
  • Error rows (unknown token, empty board, no match, timeout too short): Free, with an errorCode

One real row

From a test run on 2026-10-09 (https://jobs.ashbyhq.com/ramp), description shortened:

{
"type": "job",
"ats": "ashby",
"company": "ramp",
"jobId": "530d1596-c1bf-41aa-9915-548a692ed66e",
"title": "Manager, Sales Development, Public Sector",
"url": "https://jobs.ashbyhq.com/ramp/530d1596-c1bf-41aa-9915-548a692ed66e",
"applyUrl": "https://jobs.ashbyhq.com/ramp/530d1596-c1bf-41aa-9915-548a692ed66e/application",
"department": "Sales",
"team": "SDR",
"employmentType": "full_time",
"location": "New York, NY (HQ)",
"locations": ["New York, NY (HQ)", "San Francisco, CA", "Remote (US)"],
"country": "USA",
"isRemote": true,
"workplaceType": "hybrid",
"salaryMin": 166000,
"salaryMax": 254000,
"salaryCurrency": "USD",
"salaryInterval": "year",
"salaryText": "$166K - $254K",
"salarySource": "structured",
"postedAt": "2026-10-09T19:14:11Z",
"descriptionText": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams...",
"scrapedAt": "2026-10-09T22:07:12Z"
}

A Workday job from the same test (NVIDIA) came with

"salaryText": "... The hourly rate for our interns is 20 USD - 71 USD."
, "salaryMin": 20, "salaryMax": 71, "salaryInterval": "hour", "salarySource": "description", "requisitionId": "JR2026839" and "country": "United States of America".

What you can do with it

  • Job boards and newsletters: a daily feed of new jobs from hundreds of companies, already normalized.
  • Recruiters and sales teams: hiring signals (who opened engineering or sales roles this week, where, at what pay).
  • Job seekers: a daily alert for remote engineering jobs at the companies you follow.
  • Salary research: pay ranges by title, location and company, as numbers ready for a spreadsheet.
  • Market and investment research: headcount plans by department, new offices, hiring freezes (closed jobs).
  • AI agents and RAG: clean job descriptions in plain text, one format for eleven ATS; an agent can pass a company name and get its jobs.

Input

FieldWhat it does
companiesOne per line: company name, website, careers page, job board link or board token. Mix ATS freely
atsATS for names and bare tokens: auto (default, tries the 10 list ATS at once), or force one
keywordsKeep jobs whose title contains one of these words or phrases
excludeKeywordsDrop jobs whose title contains one of these words
locationsKeep jobs in one of these places (city, state, country, US, remote)
remoteOnlyKeep remote jobs only
departmentsKeep jobs whose department or team matches; on Workday, the site's own job categories
postedWithinDaysKeep jobs posted in the last N days
maxItemsJobs per company, newest first, default 25. 0 = every open job
includeDescriptionFull description in text and HTML (default on). Off = lighter rows, faster Workday
onlyNewDeliver only jobs that appeared since the last run with the same companies and filters
stateNameSeparate memory for a Task (only with onlyNew)
maxConcurrencyParallel requests per Workday site, 1 to 8 (default 6)

Accepted company formats:

ATSExamples
Greenhousefigma, https://job-boards.greenhouse.io/figma, https://boards.greenhouse.io/airbnb, greenhouse:databricks
Leverzoox, https://jobs.lever.co/zoox, lever:spotify
Ashbyramp, https://jobs.ashbyhq.com/ramp, ashby:openai
Workdayhttps://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite (copy the job list address; /en-US/ is fine)
SmartRecruitershttps://jobs.smartrecruiters.com/BoschGroup, smartrecruiters:Visa
Workablehttps://apply.workable.com/huggingface/, workable:huggingface
Recruiteehttps://bunq.recruitee.com, recruitee:bunq
Personiohttps://ottonova.jobs.personio.de (also .jobs.personio.com)
Breezy HRhttps://telespazio-be.breezy.hr
BambooHRhttps://prezi.bamboohr.com/careers
Ripplinghttps://ats.rippling.com/rippling/jobs
Company nameHugging Face, Bosch Group, bunq: tried on the 10 list ATS at once (Workday needs its link)
Website or careers pagestripe.com, https://www.duolingo.com/careers: the Actor opens the page (and /careers, /jobs for a bare domain) and finds the board link

Example: remote engineering jobs posted this week at five companies, every morning:

{
"companies": ["stripe", "https://jobs.lever.co/zoox", "https://jobs.ashbyhq.com/openai", "ramp",
"https://salesforce.wd12.myworkdayjobs.com/External_Career_Site"],
"keywords": ["engineer", "developer"],
"remoteOnly": true,
"postedWithinDays": 7,
"maxItems": 0,
"onlyNew": true
}

How only-new works

The Actor keeps one memory per board and filter set in a key-value store in your own account, ats-jobs-scraper-state.

  • First run: delivers up to maxItems per company (newest first) and remembers the whole board as seen. Set maxItems to 0 on the first run if you also want every job that is open today.
  • Later runs: deliver only jobs that were not on the board before. A run with nothing new delivers nothing and only the run start is charged.
  • Closed jobs: jobs that left the board since the last run are listed in the run's CLOSED_JOBS key-value record (board and job id), free.
  • On Workday the job list is read first (cheap) and the job page is opened only for new jobs.
  • Two Tasks with the same companies and filters share their memory; give each its own stateName to keep them apart. Delete the store to start over.

Output

Every job row: ats, company (board token or Workday tenant), companyName (when the ATS gives it), jobId, title, url, applyUrl, department, team, employmentType (full_time, part_time, contract, internship, temporary, or the board's own text), location, locations (all of them), country, isRemote, workplaceType (remote, hybrid, onsite), salaryMin, salaryMax, salaryCurrency, salaryInterval (year, month, week, day, hour), salaryText, salarySource (structured or description), salaryRanges (every range when a board lists several, for example by country), postedAt (UTC), postedText (Workday's "Posted 3 Days Ago"), updatedAt (Greenhouse), requisitionId, descriptionText, descriptionHtml, isNew and firstSeenAt (with onlyNew), input, scrapedAt.

What each ATS gives:

FieldGreenhouseLeverAshbyWorkday
Salary min/maxYes, when the company publishes itYes, when publishedYes, when publishedFrom the description text
RemoteLocation and workplace typeWorkplace typeRemote flagLocation and remote type
Department / teamDepartmentDepartment and teamDepartment and teamJob category (with departments)
Posting dateExactExactExactExact from the job page, approximate from the list
FieldSmartRecruitersWorkableRecruiteePersonioBreezy HRBambooHRRippling
SalaryFrom the descriptionFrom the descriptionYes, when publishedFrom the descriptionYes, as textFrom the descriptionYes, when published
RemoteRemote and hybrid flagsRemote flagRemote and hybrid flagsFrom the locationRemote flagRemote flagFrom the location
Posting dateExactDayExactExactExactDay (with description on)Exact (with description on)

SmartRecruiters, Breezy HR, BambooHR and Rippling give the description only on the job page, so the Actor opens the page only for the jobs it delivers (none with includeDescription off).

Error codes (never charged)

errorCodeMeaning
INVALID_INPUTA line that is not a name, link or token, a Workday link without the site name, or a bad option
NOT_FOUNDNo board with this token (the row says where to look), a wrong Workday site name, or no board on the page
EMPTY_BOARDThe board exists but has no open jobs, or the company moved to another ATS
NO_RESULTSThe board has jobs, none matches your filters (Workday lists its job categories)
BLOCKEDThe site did not answer after several attempts; run again
TIMEOUT_TOO_SHORTThe run timeout was too short to start; raise it
UNEXPECTEDSomething we did not expect on one board; the other boards go on

Pricing

EventFreeBronzeSilverGold and above
Job delivered, per 1,000US$ 1.00US$ 0.95US$ 0.90US$ 0.85
Run startUS$ 0.01US$ 0.0095US$ 0.009US$ 0.0085

A daily onlyNew run over 50 companies that finds 40 new jobs costs about US$ 0.05. Error rows, duplicates, filtered-out jobs and jobs already delivered are free. The description is included at no extra cost.

Limitations

  • Only public job boards: no login, no internal job boards, no candidate data.
  • Workday sites show at most 20 jobs per page and 2,000 per search. Larger sites are read in slices by the site's own job categories, so every job is reached. With the description on, a site of a few thousand jobs takes a few minutes; turn includeDescription off or use filters to go faster.
  • Workday has no department field; departments uses each site's own job categories.
  • Salary is what the company publishes. On Workday it is read from the description, so a few formats may be missed; salaryText always shows the sentence it came from.
  • Companies change ATS; a token that worked last month may return EMPTY_BOARD or NOT_FOUND.

FAQ

Do I need the board token? No. Type the company name or its website and the Actor looks for the board. If a name is ambiguous, paste the job board link instead (for example jobs.lever.co/<token> or <company>.recruitee.com).

Which companies use Workday? Thousands of large employers, for example NVIDIA, Salesforce, Walmart, Adobe, Intel and Target. If the careers page address contains myworkdayjobs.com or myworkdaysite.com, paste it as is.

My Workday link does not work. Open the company job list in the browser and copy the address from the bar. It must include the site name after the domain, for example .../NVIDIAExternalCareerSite. It is case sensitive.

Can I use it from n8n, Make, Zapier or an AI agent? Yes, through the Apify app or the Apify MCP server. Error rows are free, so an agent can try tokens cheaply.

What if a run is cut by its timeout? The Actor stops shortly before the limit and ends successfully with what it delivered, and the status message says how to get the rest.

Changelog

  • 0.2.0 (2026-10-19): 7 more ATS (SmartRecruiters, Workable, Recruitee, Personio, Breezy HR, BambooHR, Rippling); company name and bare domain as input (Hugging Face, stripe.com); the job page is opened only for delivered jobs on the ATS that need it.
  • 0.1.7 (2026-10-16): price cut to US$ 1.00 per 1,000 jobs (from US$ 5.00); Workday-first description.
  • 0.1 (2026-10-10): first version. Greenhouse, Lever, Ashby and Workday in one run; career URL or token with auto-detection; title, location, remote, department and date filters; structured salary and Workday salaryText; onlyNew with closed jobs; free error rows.