Career Site Jobs: Greenhouse, Lever, Ashby & more
Pricing
from $2.00 / 1,000 job saveds
Career Site Jobs: Greenhouse, Lever, Ashby & more
Get every open job from company career sites powered by Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee through their official public job-board APIs. Normalized output, filters, salary where published, and 'only new jobs' monitoring. No proxies, no login.
Pricing
from $2.00 / 1,000 job saveds
Rating
0.0
(0)
Developer
Liora Blyth
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Career Site Jobs Scraper — Workday, Greenhouse, Lever, Ashby, Personio & more, with Salaries
Get every open job from any company's career site (now including Workday and Personio) in one clean, normalized dataset, straight from the official public job-board APIs that these applicant-tracking systems (ATS) publish for embedding job listings. No browser, no proxies, no login, and no CAPTCHA, so runs are fast, cheap and reliable.
Quick start
- Paste career-site URLs (or
greenhouse:stripe-style slugs) into Companies. - Optionally add title keywords, locations or
remoteOnly. - Click Start. Download the jobs as JSON, CSV, Excel, or pull them via the Apify API.
- Schedule the run daily with
onlyNewJobs: trueto get only fresh postings (e.g. into Slack, Google Sheets or a webhook via Apify integrations).
What you can do with it
- Track hiring at competitors or target accounts (sales signals, market research).
- Build niche job boards or newsletters (e.g. "remote AI engineering jobs").
- Get alerts for new jobs only on scheduled runs (built-in state, no duplicates).
- Feed job descriptions into LLMs or RAG pipelines (plain text or HTML).
Supported ATS
| ATS | Example input |
|---|---|
| Greenhouse | https://boards.greenhouse.io/stripe or greenhouse:stripe |
| Lever | https://jobs.lever.co/palantir or lever:palantir |
| Ashby | https://jobs.ashbyhq.com/openai or ashby:openai |
| Workable | https://apply.workable.com/huggingface or workable:huggingface |
| SmartRecruiters | https://jobs.smartrecruiters.com/BoschGroup or smartrecruiters:BoschGroup |
| Recruitee | https://bunq.recruitee.com or recruitee:bunq |
| Personio | https://acme.jobs.personio.de or personio:acme |
| Workday | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite (full career-site URL) |
Workday career sites are read through the same public JSON endpoint the career site itself uses, only when the site's robots.txt allows it, and at a polite pace. Title keywords are sent to Workday's own search, so large Workday sites stay fast.
Preset lists: add "presetLists": ["ai-companies"] or ["big-tech-startups"] to include ready-made,
verified boards (OpenAI, Anthropic, Databricks, Cohere, Scale AI, Perplexity, ElevenLabs / Stripe, Airbnb, Figma,
Discord, Dropbox, Reddit, Notion, Ramp, Linear, Palantir).
A bare slug (e.g. notion) is auto-detected by trying each ATS in turn.
Input
{"companies": ["https://boards.greenhouse.io/stripe", "lever:palantir", "ashby:openai", "notion"],"titleKeywords": ["engineer", "data"],"excludeTitleKeywords": ["intern"],"locations": ["remote", "london"],"remoteOnly": false,"postedWithinDays": 30,"includeDescription": true,"descriptionFormat": "text","onlyNewJobs": false,"maxJobsPerCompany": 0}
| Field | Meaning |
|---|---|
companies (required) | Career-site URLs, ats:slug, or bare slugs |
titleKeywords / excludeTitleKeywords | Case-insensitive title filters |
locations, departments | Substring filters on location or department/team |
remoteOnly | Keep only jobs flagged remote |
postedWithinDays | Keep jobs published in the last N days (when the ATS exposes a date) |
includeDescription, descriptionFormat | text, html or both |
onlyNewJobs, stateKey | Output only jobs not seen in earlier runs with the same stateKey |
maxJobsPerCompany | 0 = unlimited |
maxConcurrency | Companies fetched in parallel (1–10) |
presetLists | Ready-made company lists added to companies |
descriptionKeywords | Match words in the title or the full description (e.g. Python, Kubernetes) |
workplaceTypes | remote, hybrid, onsite |
employmentTypes | Substring match on the ATS employment type (Full, Part, Contract, Intern) |
seniorityLevels | intern, junior, mid, senior, lead/manager, principal/staff, director+ (from the title) |
minSalary, onlyWithSalary | Salary filters using the ATS salary field, Greenhouse pay ranges or a salary range found in the description (hourly/monthly converted to yearly; currency not converted) |
onlyVisaSponsorship | Keep jobs whose description says visa sponsorship is offered |
includeApplicationQuestions | Greenhouse application questions (labels and types only) and pay-transparency ranges |
maxItems | Total cap across all companies |
Output (one item per job)
{"ats": "ashby", "companySlug": "openai", "company": "openai","jobId": "240d459b-…", "title": "Research Engineer","department": "Research", "team": "Research","location": "San Francisco", "isRemote": false, "workplaceType": null,"employmentType": "FullTime", "publishedAt": "2025-04-05T00:03:20+00:00","url": "https://jobs.ashbyhq.com/openai/240d459b-…","applyUrl": "https://jobs.ashbyhq.com/openai/240d459b-…/application","compensation": {"summary": "$250K – $445K • Offers Equity"},"salary": {"min": 250000, "max": 445000, "currency": "USD", "interval": "year", "source": "ats summary"},"seniority": "mid", "visaSponsorship": null,"descriptionText": "…", "isNew": null, "scrapedAt": "2026-10-21T09:34:09+00:00"}
See sample_output.json for 18 real items. A RUN_SUMMARY record in the default key-value store lists
companies processed, failed inputs, and job counts.
Pricing (pay per event)
| Event | Price |
|---|---|
Job in the dataset (job) | $0.002 ($2 per 1,000 jobs) |
| Actor start | $0.00005 (Apify default) |
- Failed companies and filtered-out jobs are free.
- Examples: 500 jobs ≈ $1.00; a daily new-jobs monitor that finds 20 new jobs/day ≈ $1.20/month.
- Set Maximum cost per run to cap your spend. The Actor stops cleanly when the cap is reached.
Performance
Measured locally on 2026-10-21: 7 companies, 1,898 matching jobs (with full descriptions) in about 1 min 47 s. 18 jobs from 6 companies in about 30 s (large SmartRecruiters boards take longer because of paging).
Privacy and legal notes
- Uses only the public, unauthenticated job-board endpoints the ATS vendors document for publishing jobs.
- No personal data is collected as fields. Recruiter or contact e-mails and phone numbers found in descriptions are
masked (
[email removed],[phone removed]). Recruitee'smailbox_emailfield is dropped. Descriptions are the employer's own published text and may still mention a contact person's name. - You are responsible for how you use the data (e.g. GDPR if you combine it with other data).
FAQ
A company isn't found. Check the career-site URL; many companies use custom domains that embed one of these
ATSs. Look for greenhouse.io, lever.co, ashbyhq.com etc. in the apply link, and pass that slug.
Workday? Supported: pass the full myworkdayjobs.com career-site URL. Workday sites are skipped when their robots.txt disallows the endpoint.
iCIMS / Taleo / SuccessFactors? Not supported yet. Open an issue if you need them.
Do I need proxies or an account? No. All endpoints are public and the Actor runs on plain datacenter IPs.
How fresh is the data? Live: every run reads the ATS at run time.
Can I get only new jobs? Yes. onlyNewJobs: true with a fixed stateKey stores seen job ids in a named key-value store, so each scheduled run outputs only postings it has not seen before.