Career Site Jobs API — Greenhouse, Lever, Ashby, Workday
Pricing
from $1.00 / 1,000 jobs
Career Site Jobs API — Greenhouse, Lever, Ashby, Workday
Every open job from company career sites on Greenhouse, Lever, Ashby, Workday, SmartRecruiters and Recruitee, in one clean schema with salaries where published. Paste careers URLs, websites or company names. Track new and closed jobs between runs for hiring signals.
Pricing
from $1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Steady APIs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
Career Site Jobs API — Greenhouse, Lever, Ashby, Workday, SmartRecruiters & Recruitee
Get every open job from company career sites in one clean, consistent format — and, if you want, only the jobs that are new or closed since your last run.
Paste careers page URLs, company websites, or just company names. The Actor finds the job board, reads the company's own public job feed, and returns structured jobs with titles, locations, workplace type, dates, salary (when published), apply links and descriptions.
$1 per 1,000 jobs. You only pay for jobs returned — a scheduled monitor that finds nothing new costs nothing for results.
Why use it
- 6 applicant tracking systems, one schema. Greenhouse, Lever, Ashby, Workday, SmartRecruiters and Recruitee all come out with the same fields, so you can merge them without cleanup.
- Hiring signals, not just listings. Turn on New + closed jobs and schedule the Actor daily. You get the roles a company just opened and the ones it just filled or pulled.
- One bad company never breaks your run. Each company is fetched independently. Typos and dead boards are reported in
RUN_SUMMARY; everything else still arrives. The same board pasted twice (say as a URL and as a name) is fetched and billed once. - Salaries where companies publish them — including Greenhouse pay ranges (common for US roles under pay-transparency laws), Ashby, Lever, SmartRecruiters and Recruitee compensation fields.
- Fast and cheap to run. It reads official public job feeds — no browser, no proxies. Hundreds of jobs take seconds.
- No double billing in monitoring mode. If your max charge limit or per-company limit stops a run early, the jobs not yet delivered arrive on the next runs, and jobs already delivered are never charged again.
What you can do with it
- Sales teams: watch target accounts for roles that signal budget ("Head of Data", "Salesforce Admin", new office locations).
- Job boards & newsletters: pull fresh roles from hundreds of companies on a schedule.
- Recruiters & investors: track hiring velocity, team growth and closed roles at portfolio or competitor companies.
- Job seekers: get only new remote engineering roles at the companies you care about.
Input examples
Just paste career pages:
{"companies": ["https://job-boards.greenhouse.io/airbnb","https://jobs.lever.co/spotify","https://jobs.ashbyhq.com/linear","https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite","https://careers.smartrecruiters.com/BoschGroup","https://bunq.recruitee.com"]}
Websites and names work too — "linear.app", "Ramp". For names we check Greenhouse, Lever, Ashby, SmartRecruiters and Recruitee (Workday needs the careers URL) and pick the board with the most open jobs; other matches are listed in RUN_SUMMARY so you can confirm.
Daily monitor for new remote engineering roles:
{"companies": ["greenhouse:airbnb", "lever:spotify", "ashby:ramp"],"keywords": ["engineer", "developer"],"workplaceTypes": ["remote"],"trackChanges": "newAndClosed","monitorName": "remote-eng"}
Then add a schedule in Apify (e.g. every morning). Each run returns only what changed. With Max jobs per company set, a monitor delivers up to that many new jobs per company per run and keeps the rest for the following runs.
Output
A real record from a test run on 29 Oct 2026 (description shortened):
{"jobId": "smartrecruiters:BoschGroup:744000158566919","ats": "smartrecruiters","company": "Bosch Group","title": "Internship @ Technical Functions Department","department": null,"team": "Quality Assurance","location": "Tienen, Belgium","locations": ["Tienen, Belgium"],"country": "BE","workplaceType": "onsite","employmentType": "Intern","postedAt": "2026-10-29T16:27:56.866Z","salary": { "min": 0, "max": 800, "currency": "EUR", "period": "monthly" },"requisitionId": "REF277017T","url": "https://jobs.smartrecruiters.com/BoschGroup/744000158566919-internship-technical-functions-department","descriptionText": "Company Description\nRobert Bosch Produktie N.V., located in Tienen, Belgium, is within the…","board": "https://careers.smartrecruiters.com/BoschGroup","status": null,"firstSeenAt": null,"closedAt": null}
status is new, closed, or null when tracking is off. Salary appears only when the company publishes it. For Greenhouse ranges the pay period isn't stated by the API, so period is left empty and the range is also given as text. Export as JSON, CSV, Excel or via API.
Filters
Keywords (any, in titles — optionally descriptions), excluded words, locations ("Germany", "London", "US", "remote"), departments, workplace type, and posted within N days. Keywords are matched by the Actor itself on the full job list. Only when you set Max jobs per company are Workday and SmartRecruiters asked to search on their side (faster on huge boards, but their search matches whole words only).
How terms match:
- Terms match the start of a word:
engineeralso finds "Engineering Manager". - Short terms (3 characters or fewer, like
US,UK,AI,ops) must be a whole word, soUSwon't match "Austin" or "Australia". Typedevopsormlopsto find those titles. - Excluded terms must be whole words:
interndrops "Intern – Summer 2027" but keeps "International Sales"; addinternshipto drop those too.
Pricing
$1.00 per 1,000 jobs returned ($0.001 per job). No charge for companies that fail or for unchanged jobs in monitoring mode. Set Max charge on any run to cap spend; the Actor stops cleanly at your limit.
Good to know
- Workday search results stop at 2,000 postings per board, so closed-job detection is switched off for boards that large (new jobs still work). Workday lists show relative dates ("Posted 3 days ago"); delivered jobs get exact dates when descriptions or Exact Workday posting dates are on. The Posted within filter uses the approximate date unless Exact Workday posting dates is on, and "Posted 30+ days ago" has no date until details are fetched.
- SmartRecruiters reports the date a job was last published, which can be newer than when it first opened.
- Closed-job detection runs only when a board was read completely, so you never get false "closed" alerts from a partial fetch.
- Workable, Personio and Teamtailor are on the roadmap.
Is this legal?
The Actor reads job postings that companies publish on public job-board feeds for distribution. It does not log in, bypass protections, or collect personal data about candidates or employees. You are responsible for how you use the data; check the terms of the sites you monitor and your local laws.
Support
Open an issue on the Actor page with the input that failed, and the run ID if you have it.