Careers Page Jobs Scraper - Greenhouse, Lever, Workday & More avatar

Careers Page Jobs Scraper - Greenhouse, Lever, Workday & More

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Careers Page Jobs Scraper - Greenhouse, Lever, Workday & More

Careers Page Jobs Scraper - Greenhouse, Lever, Workday & More

Turn any company careers page into structured job data. Auto-detects Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Personio, Recruitee, BambooHR and Workable boards and returns title, location, remote flag, salary, description and apply link in one schema. Pay per job.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

HerbCode LLC

HerbCode LLC

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Careers Page Jobs Scraper (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Personio, Recruitee, BambooHR, Workable)

Turn any company careers page into clean, structured job data. Paste the careers URL (or the ATS job-board URL) and get every open position with title, location, remote flag, department, employment type, posting date, salary (when published) and the full description - all in one unified schema, whichever ATS the company uses.

Works with the nine most common applicant tracking systems used on tech and enterprise careers pages:

ATSExample source you can paste
Greenhousehttps://boards.greenhouse.io/stripe or greenhouse:stripe
Leverhttps://jobs.lever.co/spotify
Ashbyhttps://jobs.ashbyhq.com/ramp
Workdayhttps://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
SmartRecruitershttps://jobs.smartrecruiters.com/SmartRecruiters
Personiohttps://demo.jobs.personio.de
Recruiteehttps://company.recruitee.com
BambooHRhttps://company.bamboohr.com/careers
Workablehttps://apply.workable.com/company
Any company careers pagehttps://www.example.com/careers - the page is scanned for an embedded ATS board and the right API is used automatically

No proxies, no browser, no login: every provider is read through the public job-board endpoint the ATS vendor publishes for careers-site embedding, so runs are fast (hundreds of jobs in seconds) and reliable.

What you can do with it

  • Job alerts - schedule a daily run over the companies you care about, filter by keyword/location/remote, push new rows to Slack, email or a Google Sheet via Apify integrations.
  • Recruiting and sales intelligence - track which companies are hiring for which roles (headcount signals, tech-stack signals from descriptions, expansion into new locations).
  • Job boards and aggregators - keep a niche board fresh with direct links to the original posting and apply page.
  • Market research - salary ranges, remote policies and role mix across hundreds of employers in one dataset.
  • AI agents - the plain-text description field is ready for LLM summarization or matching against a CV.

Input

FieldTypeDefaultNotes
sourcesarray of stringsrequiredATS board URLs, provider:slug shorthands, or company careers pages. One per company.
keywordsarray[]Keep jobs whose title contains any of these (case-insensitive).
excludeKeywordsarray[]Drop jobs whose title contains any of these.
locationsarray[]Keep jobs whose location contains any of these strings.
remoteOnlybooleanfalseKeep only remote jobs.
postedAfterdate-Drop jobs published before this date (jobs without a date are kept).
includeDescriptionbooleantrueInclude the job description. Turn off for faster Workday / SmartRecruiters / BambooHR runs.
descriptionFormattext / html / bothtextPlain text is best for spreadsheets and LLMs.
parseSalaryFromTextbooleantrueParse $120,000 - $150,000-style ranges out of descriptions when the ATS gives no structured pay.
maxJobsPerSourceinteger0 (all)Cap per company.
maxJobsinteger0 (all)Cap for the whole run - hard cost ceiling.
searchTextstring-Server-side search for Workday boards only.
sourceConcurrencyinteger3Companies fetched in parallel.

Example input:

{
"sources": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/spotify",
"https://jobs.ashbyhq.com/ramp",
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
],
"keywords": ["engineer", "developer"],
"remoteOnly": true,
"postedAfter": "2026-09-01",
"maxJobsPerSource": 200
}

Output

One dataset item per job. Every provider is mapped to the same fields; a field is null when the ATS does not expose it.

{
"id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"provider": "ashby",
"company": "ramp",
"companySlug": "ramp",
"title": "Security Engineer, Cloud",
"department": "Engineering",
"team": "Backend",
"location": "New York, NY (HQ)",
"locations": ["New York, NY (HQ)", "Remote (Canada)", "Remote (US)", "Miami, FL"],
"remote": true,
"workplaceType": "hybrid",
"employmentType": "FullTime",
"postedAt": "2026-04-07T17:12:35.753Z",
"updatedAt": null,
"salary": { "min": 211400, "max": 290600, "currency": "USD", "interval": "year", "raw": "$211.4K - $290.6K" },
"descriptionText": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams...",
"descriptionHtml": null,
"url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
"sourceUrl": "https://jobs.ashbyhq.com/ramp",
"scrapedAt": "2026-09-21T16:43:08.071Z"
}

A RUN_SUMMARY record in the key-value store lists how many sources succeeded, how many jobs were fetched/filtered/emitted and any per-source errors, so a failing board never silently disappears.

Export as JSON, CSV, Excel, XML or RSS from the Dataset tab, or read it through the API / MCP.

Pricing

Pay per event, no subscription:

EventPriceWhat it means
Actor start$0.005Once per run.
job-result$0.0015 (= $1.50 per 1,000 jobs)One per job saved to the dataset. Jobs removed by your filters are free.

Example: watching 25 companies with ~1,500 open jobs costs about $2.26 per full refresh. Use keywords, locations, remoteOnly, postedAfter and maxJobs to pay only for the rows you want. Free-plan users can run it within their free platform credit.

Limits and notes

  • Only published, public postings are returned - exactly what the company shows on its careers site. Nothing behind a login is accessed.
  • Posting dates: Greenhouse, Lever, Ashby, SmartRecruiters, Personio, Recruitee, BambooHR and Workable expose exact timestamps; Workday exposes the posted date on the detail page (fetched when includeDescription is on) and otherwise a relative "Posted 3 Days Ago" string that is converted to a date.
  • Structured salary is available from Lever, Ashby and Recruitee when the employer publishes it; for other providers the description is parsed with parseSalaryFromText.
  • Workday boards can list thousands of jobs; each job needs one detail request for the description. Use searchText, maxJobsPerSource or includeDescription: false to keep runs short.
  • Auto-detection of a company careers page works when the page links or embeds one of the supported ATS boards. If it does not, pass the board URL directly.
  • Teamtailor, iCIMS, Taleo, SuccessFactors and Jobvite are not supported yet - open an issue to request one.

FAQ

Is this legal? The Actor reads job-board endpoints that ATS vendors publish specifically for displaying jobs on third-party sites (e.g. Greenhouse Job Board API, Lever Postings API, Ashby Job Posting API). Only public job postings are collected; no personal data and no login-protected content.

How fresh is the data? Each run reads live from the ATS, so the dataset reflects the board at the moment of the run. Schedule the Actor to keep a feed current.

Can I deduplicate across runs? Use the id + provider + companySlug fields as a stable key, or the dataset deduplication options in Apify integrations.