Career Page Jobs Scraper - Greenhouse, Lever, Ashby, Workday
Pricing
Pay per event
Career Page Jobs Scraper - Greenhouse, Lever, Ashby, Workday
Get every open job from company career pages on Greenhouse, Lever, Ashby, Workday, Workable, Recruitee, BambooHR, Personio and Teamtailor. Enter company websites or names; the hiring system is detected automatically. Salary, location, remote type, dates and new-job monitoring.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Upendra Kumar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Career Page Jobs Scraper: Greenhouse, Lever, Ashby, Workday & more
Get every open job directly from company career pages. Give it a list of companies (websites, names, or job-board links) and it automatically detects which hiring system each company uses, then returns all their jobs in one clean, consistent format.
Supported hiring systems (ATS): Greenhouse · Lever · Ashby · Workday · Workable · Recruitee · BambooHR · Personio · Teamtailor
Highlights:
- ✅ Just paste company websites:
stripe.com,notion.so,linear.app. No need to know which ATS they use. - ✅ 9 hiring systems, one output format: title, department, team, locations, remote/hybrid/onsite, employment type, salary range where published, posted date, job and apply links, and the full description (optional).
- ✅ Straight from the source: jobs come from each company's official job board, so they're fresher and more complete than job-board reposts.
- ✅ Monitoring mode: schedule it daily and get only new jobs ("hiring signals").
- ✅ Filters: title keywords, locations, departments, remote only, posted within N days.
- ✅ Fast and reliable: uses the hiring systems' public job APIs and feeds. No browser, no login, no personal data.
Who uses it
- 💼 Sales & growth teams: spot companies hiring for roles that signal a need for your product (for example, "hiring 3 data engineers").
- 🧑💼 Recruiters & staffing agencies: track openings at target accounts the moment they're posted.
- 🔎 Job boards & aggregators: fill niche job boards (remote, AI, climate, startups) with fresh, structured jobs.
- 📊 Market & talent research: hiring trends by company, department, location and salary.
- 🤖 AI agents: one dependable tool for "list open ML engineering roles at these 50 companies".
How to use
- Add Companies, one per line, in any of these forms:
- a website:
stripe.com - a name:
Hugging Face - a job board / careers URL:
https://jobs.lever.co/palantir,https://jobs.ashbyhq.com/openai,https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
- a website:
- Optionally add filters: keywords, locations, departments, remote only, posted within.
- Click Start. Download the jobs as JSON, CSV or Excel, or use the API.
How detection works: URLs of supported systems are recognized instantly. For websites, the Actor scans the homepage and careers pages for job-board links. If none are found, it can try the company name as the job board name on each system. It validates every match against the live job board, checks the company name where the system reports one, and skips empty, abandoned boards. Each job records how its board was found in detectedBy (url, careers-page or name-guess).
Workday tip: large employers on Workday often load their job links with JavaScript. If a Workday company isn't detected from its website, paste its *.myworkdayjobs.com link (shown after clicking "Search jobs" on their careers page).
Input example
{"companies": ["stripe.com", "notion.so", "Spotify", "https://jobs.lever.co/palantir"],"keywords": ["engineer", "data"],"locations": ["London", "remote"],"postedWithinDays": 14,"maxJobsPerCompany": 1000,"includeDescription": false}
| Field | What it does | Default |
|---|---|---|
companies | Websites, names or job-board URLs | required |
keywords | Keep jobs whose title contains any of these | all |
locations | Keep jobs whose location contains any of these; remote matches remote jobs | all |
departments | Keep jobs in matching departments or teams | all |
remoteOnly | Only fully remote jobs | false |
postedWithinDays | Only jobs posted in the last N days (0 = any) | 0 |
maxJobsPerCompany | Cap per company, before filters | 1000 |
includeDescription | Add the full description as plain text | false |
platforms | Limit detection to some hiring systems | all 9 |
guessFromCompanyName | Allow validated name guesses | true |
onlyNewSinceLastRun / monitorName | Monitoring mode | false |
Output example
{"id": "ashby:openai:240d459b-696d-43eb-8497-fab3e56ecd9b","ats": "ashby","company": "openai","title": "Research Engineer","department": "Research","team": "Research","locations": ["San Francisco"],"workplaceType": null,"employmentType": "full_time","salaryMin": 250000,"salaryMax": 445000,"salaryCurrency": "USD","salaryPeriod": "year","salaryText": "$250K - $445K","postedAt": "2025-04-05T00:03:20+00:00","url": "https://jobs.ashbyhq.com/openai/240d459b-696d-43eb-8497-fab3e56ecd9b","applyUrl": "https://jobs.ashbyhq.com/openai/240d459b-696d-43eb-8497-fab3e56ecd9b/application","detectedBy": "name-guess","scrapedAt": "2026-10-26T10:00:00+00:00"}
All output fields:
- Identity:
id,ats,input,detectedBy,company,companySlug,jobId - Role:
title,department,team,employmentType(full_time / part_time / contract / internship / temporary / other),employmentTypeRaw - Location:
locations,location,country,workplaceType(remote / hybrid / onsite),isRemote - Salary:
salaryMin,salaryMax,salaryCurrency,salaryPeriod,salaryText - Dates:
postedAt,postedDateApproximate,updatedAt,scrapedAt - Links and text:
url,applyUrl,description
Each run also saves a detection report (the COMPANIES record in the key-value store), with one row per company: hiring system, how it was found, jobs found and saved, and any error. It's handy for checking a long list.
Good to know:
- Fields a company doesn't publish are
null. Salary appears only where the company publishes it, which is most common on Ashby, Lever and Recruitee. - Workday shows relative dates ("Posted 3 Days Ago"), so those
postedAtvalues are approximate (postedDateApproximate: true).
Pricing
$1.50 per 1,000 jobs, plus a tiny per-run start fee. No monthly rental.
- 500 jobs ≈ $0.75
- A daily monitor of 100 companies that returns ~40 new jobs a day ≈ $1.80/month
Set a maximum cost per run in the run options, and the Actor stops cleanly when it's reached.
FAQ
Is this legal? The Actor only reads public job postings (company and job information) through the job-board APIs and feeds that these hiring systems publish for job distribution. It checks each site's robots.txt before fetching, uses polite request rates, and collects no personal data. Use the data responsibly and in line with applicable terms and laws.
Why isn't SmartRecruiters (or my company's ATS) supported? SmartRecruiters' robots.txt disallows automated access, so it's excluded. Other systems may be added; open an issue with the career page link.
Why was a company not found? It may use an unsupported system, or load its job links with JavaScript (common with Workday). Paste the job board URL instead; the detection report tells you what happened.
Can it run on a schedule? Yes. Turn on Only new jobs since last run, give the monitor a name, and add a Schedule in Apify Console. Connect Slack, Google Sheets, email or a webhook to receive new jobs automatically.