Career Site Jobs API | Greenhouse, Lever, Ashby
Pricing
from $4.00 / 1,000 jobs
Career Site Jobs API | Greenhouse, Lever, Ashby
Paste company websites or board URLs and get open jobs from Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee and Personio in one format. Salary, remote flag and new-jobs-only monitoring included. $5 per 1,000 jobs.
Pricing
from $4.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Atesen Software
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Paste a list of companies: websites like stripe.com, careers pages, job board URLs or just names. For each one you get every open job, straight from the company's applicant tracking system (ATS), in one normalised format. No browser, no proxy, no login, so it is fast and cheap.
- 🔎 Auto-detects the ATS from the company website or careers page (links, embedded job boards), or from a board URL, an
ats:boardpair or a company name. - 🧹 Normalised fields for every ATS: title, department/team, location, city, region, ISO country code, workplace type (remote/hybrid/onsite), employment type (full_time, part_time, contract, temporary, internship), seniority, salary min/max/currency/period (from the ATS or parsed from the description), posted date, job URL, apply URL, plain-text and/or HTML description.
- ♻️ Dedupe: the same board given twice is fetched once, and the same job posted several times (same title and location) is merged.
- 🔔 Monitoring mode: returns only jobs that are new since the last run, plus free rows for jobs that were closed. Schedule it daily and pay only for new jobs.
- ✅ Never fails on a bad input: each problem gets a free status row (
unknown_ats,unsupported_ats,board_not_found,unreachable,invalid_input,duplicate,no_jobs,no_matching_jobs,no_new_jobs).
Why this actor
| Career Site Jobs API (this actor) | Career-site job database APIs | Single-ATS scrapers | |
|---|---|---|---|
| Price | $5 per 1,000 jobs (down to $4 on higher plans), no extra start fee | about $12 per 1,000 jobs plus $10 per 1,000 runs | about $2 per 1,000 jobs, one ATS each |
| You choose the companies | ✅ Any company on a supported ATS, detected from its website | Search over their pre-built database | Board URL only |
| Freshness | Live, read directly from the ATS at run time | Depends on the provider's crawl schedule | Live |
| Normalised fields across ATS | ✅ Country code, workplace type, employment type, salary | ✅ | Each ATS's own format |
| New jobs only / closed jobs | ✅ Built-in state, closed-job rows are free | Date filters | ❌ |
| Dedupe | ✅ Boards and duplicate postings | — | ❌ |
| Problem rows instead of failed runs | ✅ Free | — | — |
Supported ATS: Greenhouse, Lever (US and EU), Ashby, Workable, SmartRecruiters, Recruitee, Personio. Workday, Taleo, iCIMS, SuccessFactors, Teamtailor and others are recognised and reported as unsupported_ats (not charged).
How to use it
- Add companies, one per line:
stripe.com,https://jobs.lever.co/palantir,ashby:notion,Hugging Face… - Optionally filter by title keywords, location, country, workplace type, employment type, department or posting date.
- Click Start, then download the jobs as Excel, CSV or JSON, or use the API.
Example input
{"companies": ["stripe.com", "https://jobs.lever.co/palantir", "ashby:notion", "huggingface.co", "https://jobs.smartrecruiters.com/BoschGroup"],"keywords": ["engineer", "data"],"countries": ["US", "GB", "DE"],"workplaceTypes": ["remote", "hybrid"],"postedWithinDays": 30,"descriptionFormat": "text"}
Monitor companies for new jobs (daily schedule)
{"companies": ["stripe.com", "notion.so", "airbnb.com"],"incrementalMode": true,"stateKey": "my-target-companies","reportClosedJobs": true}
The first run returns all jobs and remembers them. Later runs return only new jobs (isNew: true) and a free closed_job row for each job that disappeared. Use a different stateKey for each watch list.
Example output (one job)
{"type": "job","title": "Software Engineer, Developer Platform","company": "Notion","department": "Engineering","team": "Engineering","location": "San Francisco, California / New York, New York","locations": ["San Francisco, California", "New York, New York"],"city": "San Francisco","region": "California","country": "US","countries": ["US"],"workplaceType": "hybrid","employmentType": "full_time","employmentTypeRaw": "FullTime","seniority": null,"salaryMin": 179000,"salaryMax": 200000,"salaryCurrency": "USD","salaryPeriod": "year","salaryText": "$179,000 – $200,000 per year","salarySource": "description","postedAt": "2026-10-19T17:28:06.956Z","updatedAt": null,"url": "https://jobs.ashbyhq.com/notion/8c0bf773-e536-45c9-9a6c-8ee478148cc8","applyUrl": "https://jobs.ashbyhq.com/notion/8c0bf773-e536-45c9-9a6c-8ee478148cc8/application","jobId": "8c0bf773-e536-45c9-9a6c-8ee478148cc8","requisitionId": null,"ats": "ashby","board": "notion","descriptionText": "Who We Are\n\nNotion is the collaborative AI workspace…","isNew": null,"firstSeenAt": "2026-10-20T01:25:53.705Z","input": "ashby:notion","scrapedAt": "2026-10-20T01:25:53.705Z"}
Each company also gets one free board row: status, company, ats, board, detectedBy (website, board_url, explicit, name_match), jobsOnBoard, jobsMatchingFilters, jobsReturned and, in monitoring mode, closedJobs. Open the Job boards & problems view to see them.
Field reference
| Field | Description |
|---|---|
title, company, department, team | As published by the company |
location, locations, city, region | All locations of the job |
country, countries | ISO 3166 alpha-2 codes, from the ATS or parsed from the location |
workplaceType | remote, hybrid, onsite or null when unknown |
employmentType, employmentTypeRaw | Normalised (full_time, part_time, contract, temporary, internship, other) and the original value |
seniority | When the ATS has it (Workable, SmartRecruiters, Recruitee, Personio) |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText, salarySource | From the ATS (ats) or found in the description (description) |
postedAt, updatedAt | ISO timestamps |
url, applyUrl, jobId, requisitionId | Links and IDs |
descriptionText / descriptionHtml | Depends on descriptionFormat |
ats, board, input | Where the job came from |
isNew, firstSeenAt | Monitoring mode |
Pricing
Pay per event:
- Job: $0.005 ($5 per 1,000 jobs) on the Free and Bronze plans, $0.0045 on Silver, $0.004 on Gold and higher.
- Free: board rows, closed-job rows, every problem row, and jobs removed by your filters (filters run before anything is charged).
- A tiny actor start fee set by Apify ($0.00005).
Monitoring mode charges only for new jobs, so a daily check of 50 companies usually costs a few cents.
Tips
- If a company website is not detected (for example the careers page is built only in JavaScript), paste the job board URL or an
ats:boardpair. You find the board name in the URL of any job ad:jobs.lever.co/<board>/…,boards.greenhouse.io/<board>/jobs/…,jobs.ashbyhq.com/<board>/…,apply.workable.com/<board>/…,jobs.smartrecruiters.com/<board>/…,<board>.recruitee.com,<board>.jobs.personio.de. - Company-name matching is only accepted when the board has jobs and, where the ATS publishes a company name, that name matches. Check
companyanddetectedByin the board rows. - SmartRecruiters needs one request per job for the description. Use filters or
descriptionFormat: "none"for very large companies (Bosch has 5,000+ jobs). - 256 MB is enough; use 512 MB for very large boards.
Is it legal?
This actor reads public job postings from the official public job-board APIs that the ATS vendors provide so that companies' jobs can be shown on websites and job sites. It collects no personal data. Respect the companies' terms when republishing their job ads.