Career Site Jobs Scraper: Greenhouse, Lever, Ashby & more
Pricing
Pay per event
Career Site Jobs Scraper: Greenhouse, Lever, Ashby & more
Extract every open job from company career pages. Auto-detects the ATS (Greenhouse, Lever, Ashby, Workable, Recruitee, SmartRecruiters, Teamtailor, Breezy HR, BambooHR, Workday) and pulls clean, structured job postings via public JSON APIs. No browser, no proxies: fast and cheap.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Forja Walker
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Career Site Jobs Scraper
Extract every open job from company career pages in seconds. Paste the career-page URLs of the companies you care about and get clean, structured job postings: title, location, department, remote flag, employment type, posting date, salary (when published), full description and the direct apply link.
The Actor auto-detects the applicant tracking system (ATS) behind each career page and reads the jobs through the ATS's public JSON feed - no browser rendering, no proxies, no CAPTCHAs. That makes it fast (hundreds of jobs per second) and very cheap to run.
Supported ATS platforms
| ATS | Example URL |
|---|---|
| Greenhouse | https://boards.greenhouse.io/stripe, https://job-boards.greenhouse.io/acme |
| Lever | https://jobs.lever.co/spotify |
| Ashby | https://jobs.ashbyhq.com/openai |
| Workable | https://apply.workable.com/acme |
| Recruitee | https://acme.recruitee.com |
| SmartRecruiters | https://careers.smartrecruiters.com/Acme |
| Teamtailor | https://acme.teamtailor.com |
| Breezy HR | https://acme.breezy.hr |
| BambooHR | https://acme.bamboohr.com/careers |
| Workday | https://acme.wd5.myworkdayjobs.com/External |
You can also paste a company's own careers page (e.g. https://company.com/careers); the Actor looks for an embedded ATS board and follows it.
Why use this instead of a generic job-board scraper?
- Fresh: jobs come straight from the company's ATS, not from an aggregator that lags days behind.
- Complete: every posting on the board, including the ones never syndicated to LinkedIn or Indeed.
- Structured: consistent schema across all ATS vendors, so you can merge 500 companies into one table.
- Cheap: pure API calls. A run over 100 companies typically finishes in under a minute.
Use cases
- Recruiting & sourcing: monitor competitors' hiring, spot which teams are growing.
- Sales & lead generation: companies hiring for a role are buying tools for that role. Trigger outreach when a target account opens a position.
- Job boards & aggregators: build a niche job board (remote-only, a specific city, a specific stack) from the primary source.
- Market research & investing: hiring velocity by company, department and location as a leading indicator.
- Job seekers: track your dream companies and get new openings before anyone else.
Input
| Field | Type | Description |
|---|---|---|
startUrls | array | Career-page URLs (see table above). |
companies | array | Advanced: ats:slug entries like greenhouse:stripe, lever:spotify, workday:nvidia.wd5. |
includeDescription | boolean | Include descriptionHtml / descriptionText (default true). |
titleKeywords | array | Keep only jobs whose title contains any of these keywords. |
locationKeywords | array | Keep only jobs whose location contains any of these keywords. |
remoteOnly | boolean | Keep only remote jobs. |
maxJobsPerCompany | integer | Cap per company (0 = unlimited). |
maxJobs | integer | Cap for the whole run (0 = unlimited). |
concurrency | integer | Companies fetched in parallel (1-10). |
Example:
{"startUrls": [{ "url": "https://boards.greenhouse.io/stripe" },{ "url": "https://jobs.lever.co/spotify" },{ "url": "https://jobs.ashbyhq.com/openai" }],"titleKeywords": ["engineer", "developer"],"remoteOnly": true}
Output
One dataset item per job:
{"ats": "greenhouse","company": "stripe","id": "6123456","title": "Backend Engineer, Payments","url": "https://boards.greenhouse.io/stripe/jobs/6123456","location": "Remote, US","department": "Engineering","team": null,"remote": true,"employmentType": "Full-time","postedAt": "2026-10-10T14:02:11+00:00","updatedAt": "2026-10-15T09:30:00+00:00","salary": null,"descriptionHtml": "<p>...</p>","descriptionText": "...","scrapedAt": "2026-10-17T07:00:00+00:00"}
A STATS record in the key-value store summarises the run (sources processed, failures, jobs found/pushed).
Pricing
Pay-per-event: you are charged a small fee per job returned (job-scraped). Set Maximum cost per run to cap spending; the Actor stops cleanly when the cap is reached. Platform usage is minimal because no browser is involved.
Tips
- Combine with Apify schedules to run daily and diff the dataset to detect new postings.
- Use
maxJobsPerCompany: 1withincludeDescription: falseto cheaply check whether a company is hiring. - Need a platform that's not listed? Open an issue on the Actor page and it will be added.
Changelog
- 1.0 - Initial release: Greenhouse, Lever, Ashby, Workable, Recruitee, SmartRecruiters, Teamtailor, Breezy HR, BambooHR, Workday.