Career Site Jobs API | Greenhouse, Lever, Ashby avatar

Career Site Jobs API | Greenhouse, Lever, Ashby

Pricing

from $4.00 / 1,000 jobs

Go to Apify Store
Career Site Jobs API | Greenhouse, Lever, Ashby

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

Atesen Software

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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:board pair 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 APIsSingle-ATS scrapers
Price$5 per 1,000 jobs (down to $4 on higher plans), no extra start feeabout $12 per 1,000 jobs plus $10 per 1,000 runsabout $2 per 1,000 jobs, one ATS each
You choose the companies✅ Any company on a supported ATS, detected from its websiteSearch over their pre-built databaseBoard URL only
FreshnessLive, read directly from the ATS at run timeDepends on the provider's crawl scheduleLive
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 freeDate 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

  1. Add companies, one per line: stripe.com, https://jobs.lever.co/palantir, ashby:notion, Hugging Face…
  2. Optionally filter by title keywords, location, country, workplace type, employment type, department or posting date.
  3. 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

FieldDescription
title, company, department, teamAs published by the company
location, locations, city, regionAll locations of the job
country, countriesISO 3166 alpha-2 codes, from the ATS or parsed from the location
workplaceTyperemote, hybrid, onsite or null when unknown
employmentType, employmentTypeRawNormalised (full_time, part_time, contract, temporary, internship, other) and the original value
seniorityWhen the ATS has it (Workable, SmartRecruiters, Recruitee, Personio)
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText, salarySourceFrom the ATS (ats) or found in the description (description)
postedAt, updatedAtISO timestamps
url, applyUrl, jobId, requisitionIdLinks and IDs
descriptionText / descriptionHtmlDepends on descriptionFormat
ats, board, inputWhere the job came from
isNew, firstSeenAtMonitoring 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:board pair. 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 company and detectedBy in 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.

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.