Career Page Jobs API
Pricing
from $3.00 / 1,000 jobs
Career Page Jobs API
Every open job from company career sites on nine applicant-tracking systems (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Personio, Recruitee, Workable, BambooHR), one schema, new-job flag. Half a cent per company, a third of a cent per job.
Pricing
from $3.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Asgard Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Career Page Jobs API – Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Personio, Recruitee, Workable, BambooHR
Give it a list of companies, as career-page links or short keys. Get every open job from each company's own career site in one identical format: title, department, location split into city, region and country, remote or hybrid, employment type, salary when published, posting date, apply link, full description.
Run it again with only new on and you get only the jobs it has not seen before. Schedule it daily and you have a hiring monitor for any watchlist of companies.
It reads the public job feeds of nine applicant-tracking systems. No proxies, no logins, no browser, no LinkedIn.
Career page job data per posting
- title, department, team, employmentType, url, applyUrl, postedAt, updatedAt
- location – raw text plus city, region, country, remote flag, workplaceType (onsite / hybrid / remote);
alllists every location when a job names several - salary – min, max, currency, period (year / month / hour) and the raw text; structured when the system publishes it (Lever, Ashby), otherwise read from the description
- descriptionHtml / descriptionText when
includeDescriptionis on - isNew, firstSeenAt – whether this run saw the job for the first time, and when it was first seen
- provider, company, jobId, id –
idis stable across runs (greenhouse:stripe:7201641)
Use cases
- Job boards and aggregators.
- Recruiters watching target companies.
- Sales teams using hiring as a buying signal.
- Market researchers.
Input
| Field | Default | Meaning |
|---|---|---|
companies | – | Career-site URLs or short keys: greenhouse:stripe, ashby:openai, lever:palantir, workday:nvidia.wd5/NVIDIAExternalCareerSite, https://bunq.recruitee.com. The same company written several ways counts once. |
includeDescription | true | Full description. Workday, SmartRecruiters, Workable and BambooHR need one extra request per job; those run five at a time. |
onlyNew | false | Output only jobs not seen in earlier runs. The seen list lives in a key-value store per company. |
keywords, excludeKeywords | – | Match on title, department and description. Jobs hidden by a filter are not marked seen, so widening the filter later surfaces them as new. |
locations | – | Substring match on city, region, country, e.g. "Berlin", "United States". |
remoteOnly | false | Remote jobs only. |
postedWithinDays | – | Skip older jobs when the system publishes a date. |
maxJobsPerCompany | 0 | 0 = all. With onlyNew, each run returns the next N unseen jobs. |
timeoutSecs | 600 | Time budget per company. |
concurrency | 4 | Companies read in parallel. |
stateStoreName | ats-jobs-state | Where the seen list lives. Use a different name for a separate watchlist. |
Output example
{ "id": "greenhouse:stripe:7201641", "provider": "greenhouse", "company": "stripe", "jobId": "7201641","title": "Backend Engineer", "department": "Engineering", "team": null,"location": { "raw": "Dublin, Ireland", "city": "Dublin", "region": null, "country": "Ireland", "remote": false, "workplaceType": "onsite", "all": [] },"employmentType": "Full-time", "url": "https://...", "applyUrl": "https://...","postedAt": "2026-08-30T10:00:00.000Z", "updatedAt": null,"salary": { "min": 150000, "max": 225000, "currency": "USD", "period": "year", "raw": "$150,000 - $225,000" },"descriptionHtml": "...", "descriptionText": "...", "extra": {},"firstSeenAt": "2026-09-05T00:00:00.000Z", "isNew": true }
How to use
- Paste your career-site links or
provider:keyentries, one per line into the input form. The example input is ready to run as is. - Click Start. Rows appear in the Output tab as they are found.
- Download the table as CSV, JSON or Excel, or read it through the API.
- For monitoring, create a Schedule and switch on
onlyNew: later runs return only what changed, and only that is charged.
Pricing
Pay per event: company-scan $0.005 per company that was read, job $0.003 per job in the output. A 50-company watchlist with 2,000 jobs is about $6.25 for the first full pull; a daily onlyNew run that finds 50 new jobs is about $0.40. Companies that fail (wrong key, dead domain, feed switched off) are free.
Good to know
- Supported systems: Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Personio, Recruitee, Workable, BambooHR. Not yet: Teamtailor, Jobvite, iCIMS, Taleo, SuccessFactors.
- Salary is only as good as the posting. Structured ranges from Lever and Ashby are exact; ranges read from descriptions carry the matched text in
rawso you can check them. - Location is parsed from free text.
rawis always kept; a country is only filled when it is recognised. - Errors are in plain words:
not found(wrong key),ENOTFOUND (domain not found),timeout (company budget 600 s). - Stopping at your spend limit is clean: the seen list is saved and the summary written, so the next run continues without re-charging.
Use from code or an AI agent
Every run can be started and read through the Apify API, the JavaScript and Python clients, or an AI agent with tool access. Open the API tab on this page for ready-made snippets. Pricing is per event, so an agent pays only for what it receives.
FAQ
Which career-page systems are covered? Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Personio, Recruitee, Workable and BambooHR. Teamtailor, iCIMS and Taleo are not covered yet.
What if a company is not found?
It is reported with a plain reason such as not found or blocked (403) and is not charged.
Can I get only new jobs each run?
Yes. Switch on onlyNew; job ids are remembered per company in your account and later runs return only postings not seen before.
Is salary parsed? When the career page states it. Structured salary from Ashby, otherwise parsed from the description with amount, currency and period.
Does it read LinkedIn? No. It reads the companies' own career pages, which is where the complete and current list lives.