Career Site and ATS Jobs API
Pricing
from $0.25 / 1,000 jobs
Career Site and ATS Jobs API
Open jobs from the career sites of more than 47,000 companies on 14 applicant tracking systems such as Workday, Greenhouse and Lever, in a daily index of more than 1,700,000 jobs. Use it as a job postings API or a daily jobs feed and filter by title, country, skills, salary or visa sponsorship.
Pricing
from $0.25 / 1,000 jobs
Rating
0.0
(0)
Developer
deriverge s.r.o.
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
3 hours ago
Last modified
Categories
Share
Career Site and ATS Jobs API searches our daily index of company career sites, as a job postings API or a daily jobs feed. It reads the career sites of more than 47,000 companies on 14 applicant tracking systems and held more than 1,700,000 open jobs on 19 October 2026. Type a job title and click Start; each row is one job with its company, locations, seniority, skills and, when the ad states it, pay as numbers. By default every match is re-read on the company's board first. A new posting reaches the index within three days. It costs $0.50 per 1,000 jobs on the Free plan ($0.25 on Business), and the $5 of monthly credit in Apify's Free plan covers about 10,000 jobs.
What data does it return?
| Field | Description |
|---|---|
title, company | Job title as posted and the company name, for example AbsenceSoft, LLC. |
ats, companySlug, careerSiteUrl | System the board runs on (rippling), the company's identifier there (absencesoft) and the address of its job board. |
locations, countries | Locations as the company wrote them and two-letter country codes read from them: Remote (United States) gives US. |
seniority | intern, entry, mid, senior, lead, director or executive, read from the title. A title without a level counts as mid. |
jobCategory | One of 21 categories read from the title, or from the department when the title says nothing, for example software. |
workArrangement, remote | remote, hybrid or onsite, decided from the workplace field, the location and clear sentences in the ad; remote is the system's own flag. |
employmentType, employmentTypes | The type in the system's words (Full-time) and normalized to full-time, part-time, contract, temporary, internship, apprenticeship or volunteer. |
salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod | Pay as the system publishes it (179,391 - 224,238 USD per year) and as numbers. A pay range written in the description is read as well. |
salaryYearlyMin, salaryYearlyMax | The same pay per year: hourly × 2,080, daily × 260, weekly × 52, monthly × 12. |
skills | Tools, programming languages, platforms and certifications the ad names, in order of appearance, such as .NET, C# and AWS. |
experienceYearsMin, experienceYearsMax, educationLevel | Years of experience the ad asks for (7 and 12 for "7-12 years") and the lowest degree it mentions (bachelor). |
visaSponsorship, language | true or false when the ad says whether the company sponsors visas, null when it says nothing; the ad's language as a two-letter code (en). |
postedAt, firstSeenAt | Publication date where the system gives one, and the day our index first saw the job. |
url, applyUrl | Job page and application link. Personio, Teamtailor, Rippling, Oracle and iCIMS keep the form on the job page, so there the two are the same. |
description, descriptionIncluded | The ad as plain text, and true when this run read the job live. |
companyWebsite | The company's own website where the system publishes it, for example on Ashby and iCIMS boards. |
key, jobId, indexDate | Key in the form ats:company:jobId that stays the same across runs, the job's ID in its system, and when the index was built. |
How to search career site jobs
- Type one or more titles into Keywords in the job title, for example
data engineer. A job matches when its title contains any of them. - Add Countries as English names or two-letter codes, or Locations for any text of the location such as a city. Narrow further with seniority, job category, work arrangement, employment type or Posted in the last days, and drop what you never want with Exclude keywords, Exclude companies or Exclude locations.
- For what the ad itself says, use Skills (all of them must appear), Maximum years of experience, Only jobs with a salary, Minimum yearly salary with its currency, Only jobs that offer visa sponsorship or Keywords in the description. These are checked on the live job.
- Set Maximum jobs (1,000 when left empty) and click Start. The newest jobs come first.
- The Output tab shows the rows as a table, ready to download as CSV, Excel or JSON. API callers send the same settings as JSON:
{"keywords": ["data engineer", "analytics engineer"],"countries": ["Germany", "Netherlands"],"seniority": ["mid", "senior"],"workArrangement": ["remote", "hybrid"],"skills": ["Python"],"postedWithinDays": 14,"maxItems": 200}
Example output
One row from a run on 28 September 2026 that searched for software engineers in the United States. Of the description, only the first sentence is kept below.
{"key": "rippling:absencesoft:47fb679f-1fb2-452e-a473-9313cb36ccb9","ats": "rippling","company": "AbsenceSoft, LLC","companySlug": "absencesoft","careerSiteUrl": "https://ats.rippling.com/absencesoft/jobs","companyWebsite": null,"jobId": "47fb679f-1fb2-452e-a473-9313cb36ccb9","title": "Software Engineer IV/Tech Lead","seniority": "lead","jobCategory": "software","locations": ["Remote (United States)"],"countries": ["US"],"remote": true,"workArrangement": "remote","department": "Technology","team": null,"employmentType": "Full-time","employmentTypes": ["full-time"],"workplaceType": "remote","salaryText": "179,391 - 224,238 USD per year","salaryMin": 179391,"salaryMax": 224238,"salaryCurrency": "USD","salaryPeriod": "year","salaryYearlyMin": 179391,"salaryYearlyMax": 224238,"visaSponsorship": null,"skills": [".NET","C#","AWS","CI/CD","HIPAA","Python","Node.js","JavaScript","MongoDB","PostgreSQL","SQL"],"experienceYearsMin": 7,"experienceYearsMax": 12,"educationLevel": "bachelor","postedAt": "2026-09-18T14:06:47.434Z","firstSeenAt": "2026-09-28T00:00:00.000Z","updatedAt": null,"url": "https://ats.rippling.com/absencesoft/jobs/47fb679f-1fb2-452e-a473-9313cb36ccb9","applyUrl": "https://ats.rippling.com/absencesoft/jobs/47fb679f-1fb2-452e-a473-9313cb36ccb9","description": "Software Engineer IV / Tech Lead\n\nThe Software Engineer IV / Tech Lead is a hands-on technical leader who owns the core infrastructure that powers AbsenceSoft's enterprise leave management platform. …","language": "en","descriptionIncluded": true,"indexDate": "2026-09-28T18:48:01.096Z","scrapedAt": "2026-09-28T19:37:18.898Z"}
How much does it cost to search career site jobs?
| Free plan | Starter | Scale | Business | |
|---|---|---|---|---|
| 1,000 jobs | $0.50 | $0.40 | $0.325 | $0.25 |
You pay only for the events in the table. There is no start fee, and compute time and proxies are included.
A search that returns 5,000 jobs costs $2.50 on the Free plan and $1.25 on Business, and the price per job is the same with or without descriptions. Jobs closed since the index was built, jobs dropped by a filter checked on the live job and jobs skipped by the new-only mode are not charged.
Limits
- One run returns at most 150,000 jobs. Split larger exports by system or country.
- The index keeps up to 1,000 jobs per Workday site, 1,600 per Oracle site, 4,000 per SmartRecruiters company and 100 per Teamtailor company. On iCIMS it reads 30 result pages, which is 600 jobs on a portal that lists 20 per page and 1,500 on one that lists 50. Jobs past these caps cannot be found here; Career Site Jobs Scraper, linked below, reads up to 4,000 jobs from a single Workday or Oracle site.
- Filters on pay, visa, skills, years of experience, language or words in the description need the live job, and with descriptions on so do country, work arrangement, employment type and posting date. When any of these is set, the actor reads career sites for at most 10 minutes and returns what passed by then; the log says when that happens.
- A board that does not answer during the run gives its jobs from the index, without a description, apply link or live pay.
- Each Personio career site has its own
robots.txt. Sites whoserobots.txtdisallows the job feed are left out of the index and are not read live. - iCIMS, BambooHR and Rippling show no posting date in their job lists. Their jobs are ordered by the day the index first saw them, and jobs first seen on the day their company joined the index come after all dated ones.
- A location such as
Remotenames no country, socountriesstays empty and a country filter leaves the job out. - Seniority is read from the title only, in English, German, French, Spanish and other languages, so a senior role titled without a level shows as
mid.
How many jobs are in the index?
Open jobs per system in the build of 19 October 2026, rounded down:
| System | Open jobs |
|---|---|
| Workday | more than 540,000 |
| SmartRecruiters | more than 280,000 |
| Oracle Recruiting Cloud | more than 220,000 |
| Greenhouse | more than 190,000 |
| iCIMS | more than 160,000 |
| Workable | more than 70,000 |
| Ashby | more than 60,000 |
| Lever | more than 55,000 |
| BambooHR | more than 40,000 |
| Breezy HR | more than 30,000 |
| Personio | more than 20,000 |
| Teamtailor | more than 17,000 |
| Rippling | more than 14,000 |
| Recruitee | more than 14,000 |
Most career sites on our list were found through their addresses in the public Common Crawl web archive. Boards on ten of the systems are read every day. Workday, Workable, Personio and iCIMS boards are read in rotation, each within one to three days, and until a board's turn comes the index keeps the jobs it had there.
Daily jobs feed and alerts
To feed a job board or a database, set Added to the index in the last days to 1 and schedule the run daily after 06:00 UTC, when the new index is ready. Each run then returns the jobs the index first saw today or yesterday, with your filters applied. Turn on Return only jobs new since the last run as well, so a job added yesterday is not sent twice:
{"keywords": ["engineer", "developer"],"countries": ["United States"],"addedWithinDays": 1,"newOnly": true,"watchName": "us-engineering-feed","maxItems": 20000}
For an alert feed, give the run a Watch name such as data-engineers-berlin, turn on Return only jobs new since the last run and schedule it daily; a saved task gets its own watch even without a name. Each run then skips every job that an earlier run with that name returned, filtered out or found closed. The watch remembers a job for 120 days, so a job still open after that comes back once. Jobs left over because of Maximum jobs are not marked, so the next run returns them.
FAQ
Is it legal to search jobs from company career sites?
Companies post these ads on their career sites for anyone to read, and the index keeps only what those public boards show about each job. No candidate data is collected, and contact fields some systems attach to a job, such as Oracle's recruiter name and email, are left out. You decide how the jobs are used, and republishing full descriptions is the part to check most carefully.
How fresh are the jobs?
The index is rebuilt once a day. With Include full description on, which is the default, the actor also reads each matching company's board while it runs, so jobs closed since the build are dropped and the description and apply link are current. With it off, rows come straight from the index and a search finishes in seconds.
How is pay read?
From the pay field of the system when the company fills it in, as on Greenhouse, Lever, Ashby, Recruitee, Breezy HR, Rippling, BambooHR and iCIMS. Otherwise the actor looks for a range in the description, such as "The annual base salary for this position ranges from $130,000 - $160,000". salaryText holds only the pay field's text as published, so pay that appears only in the description leaves it empty.
Can I limit the search to some companies or systems?
Yes. Companies keeps jobs whose company name or board identifier contains your text, for example stripe, ATS platforms picks systems, and Departments matches the department name. A company that is not in the index can be read by its career site link with one of the scrapers below.
Related scrapers
- Career Site Jobs Scraper
- Greenhouse Jobs Scraper
- Workday Jobs Scraper by Company Name
- Lever Jobs Scraper
- Ashby Jobs Scraper
Support
This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.