Career-Site Jobs API: Greenhouse, Lever, Ashby & more avatar

Career-Site Jobs API: Greenhouse, Lever, Ashby & more

Pricing

from $1.50 / 1,000 job postings

Go to Apify Store
Career-Site Jobs API: Greenhouse, Lever, Ashby & more

Career-Site Jobs API: Greenhouse, Lever, Ashby & more

Get every open job from company career sites as one clean dataset. Enter company domains or job board URLs; the job board (Greenhouse, Lever, Ashby, Workable or Recruitee) is detected automatically. Only-new mode returns just the jobs that are new or changed since your last run.

Pricing

from $1.50 / 1,000 job postings

Rating

0.0

(0)

Developer

TOO EASY

TOO EASY

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get every open job from company career sites as one clean dataset. Give it company domains (stripe.com) or job board links, and it finds each company's job board, collects every open position, and returns them in one consistent format: title, seniority, department, location, remote/hybrid/on-site, employment type, salary range (where published), posting date and description.

Turn on Only new or changed jobs and schedule it daily: you get, and pay for, only the jobs that appeared or changed since your last run.

What can the Career-Site Jobs API do?

  • 🔎 Detects the job board from a domain. Enter stripe.com or a careers page URL; the Actor finds the company's Greenhouse, Lever, Ashby, Workable or Recruitee board for you. Board URLs work too.
  • 🧹 One format across job boards. Every job has the same fields whatever system the company uses, including inferred seniority (intern → executive), workplace type and salary where the company publishes it.
  • 🆕 Only new or changed jobs. Delta mode remembers what you've already received, so daily runs return only fresh postings. Ideal for job alerts, lead lists and hiring-signal monitoring.
  • 🎯 Filters. Title keywords, location keywords, remote only, and a cap per company.
  • ✅ Public data, collected politely. Uses the job boards' own public APIs that companies publish for their careers pages. robots.txt is checked for every host and crawl delays are respected. No LinkedIn or Indeed scraping, no logins.
  • ⚙️ Everything Apify offers: run from the API, schedule runs, export to CSV/Excel/JSON, or connect to Google Sheets, Zapier, Make, Slack and webhooks.

What data does it return?

FieldExample
companyAirbnb
titleSenior Software Engineer, Payments
senioritysenior
department, teamEngineering, Payments
location, locationsSan Francisco, CA; [San Francisco, CA, Remote - US]
workplaceType, remotehybrid, false
employmentTypeFull-time
salaryMin, salaryMax, salaryCurrency, salaryInterval180000, 240000, USD, year
publishedAt, updatedAt2026-09-28T14:03:11.000Z
url, applyUrlLink to the posting and to the application form
descriptionText, descriptionHtmlFull description (can be switched off)
ats, boardToken, jobIdgreenhouse, airbnb, 8184174
changeType, firstSeenAtnew, 2026-10-06T08:00:00.000Z (only-new mode)

Fields a job board doesn't provide are null (for example, Greenhouse doesn't publish salary ranges through its job board API).

How to use it

  1. Add companies to Companies: domains like stripe.com, or job board links like https://boards.greenhouse.io/airbnb, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/openai.
  2. Optionally add filters (title or location keywords, remote only) and a maximum per company.
  3. Click Start. Results appear in the Jobs table; the Run summary shows which job board was found for each company.
  4. For ongoing monitoring, turn on Only new or changed jobs and create a daily Schedule.

Input example

{
"companies": ["stripe.com", "https://jobs.lever.co/palantir", "https://jobs.ashbyhq.com/openai"],
"titleKeywords": ["engineer", "data"],
"remoteOnly": false,
"onlyNew": true,
"includeDescription": true
}

Output example

{
"company": "Stripe",
"input": "stripe.com",
"ats": "greenhouse",
"boardToken": "stripe",
"jobId": "7310829",
"title": "Backend Engineer, Billing",
"seniority": null,
"department": "Engineering",
"team": null,
"location": "Dublin, Ireland",
"locations": ["Dublin, Ireland"],
"remote": null,
"workplaceType": null,
"employmentType": null,
"url": "https://stripe.com/jobs/search?gh_jid=7310829",
"applyUrl": "https://stripe.com/jobs/search?gh_jid=7310829",
"publishedAt": "2026-09-30T13:20:00.000Z",
"updatedAt": "2026-10-02T09:12:44.000Z",
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryInterval": null,
"descriptionText": "…",
"descriptionHtml": "…",
"changeType": "new",
"firstSeenAt": "2026-10-06T08:00:00.000Z",
"scrapedAt": "2026-10-06T08:00:00.000Z"
}

(Illustrative values.)

How much does it cost?

You pay only for results (pay per event); no monthly rental and no charge for compute.

Apify planPer 1,000 jobsPer company detected from a domain
Free$3.00$0.005
Bronze (Starter)$2.50$0.005
Silver (Scale)$2.00$0.005
Gold (Business)$1.50$0.005
  • Job: each job saved to your dataset. In only-new mode, only new or changed jobs count.
  • Company detected: charged only when the Actor finds the job board from a domain or careers page. Job board URLs you enter directly are free of this charge. Companies with no supported job board are never charged.
  • Apify adds a tiny per-run start fee.

The Pricing tab always shows the current prices. You can set a maximum cost per run: the Actor stops cleanly when it's reached and says so in the status message.

Examples (Free plan prices):

  • The prefilled test run (3 companies, 20 jobs each) costs about $0.19.
  • 50 companies with about 60 open jobs each: about 3,000 jobs = $9.00 on the first run ($4.50 on Business).
  • The same 50 companies checked daily with only-new mode: typically a few dozen new or changed jobs per day = a few cents per day.

FAQ

Which job boards are supported? Greenhouse, Lever (including Lever's EU instance), Ashby, Workable and Recruitee. If a company uses another system, the run summary marks it as "not_found" and you aren't charged for it.

How is the job board found from a domain? The Actor looks for job board links on the company's careers, jobs and home pages. If there are none, it checks for a job board named after the company and, for Greenhouse, Workable and Recruitee, confirms the board's company name matches (Ashby and Lever boards named after the company are accepted for names of 4+ characters). Each result in the run summary shows how the board was found (url, page or guess). For guaranteed matches, enter the job board URL.

How does "only new or changed jobs" work? The Actor remembers every job it delivered, per company and per delta state name, in a key-value store in your account. A job counts as changed when its title, location, department, team, employment type, workplace type, salary or description changes. Jobs that disappear are forgotten, so if they're reposted they count as new. Use different state names for different schedules.

Is this legal? The Actor reads public job postings through the job boards' public APIs, which companies use to show jobs on their own careers pages. Lever's API documentation, for example, states that published postings "may be scraped by third parties". robots.txt is respected for every host. You're responsible for using the data in line with the laws that apply to you. Job postings contain no personal data beyond what companies publish.

Why is a field empty? Each job board publishes different information. Salary ranges, for example, come from Ashby, Lever and Recruitee only when the company publishes them; Greenhouse and Workable job board APIs don't include salaries.

Can I use it from my code or AI agent? Yes: through the Apify API, the JavaScript and Python clients, or Apify's MCP server. The output is described by the Actor's dataset schema.

Support

Questions, bugs or a job board you'd like supported: use the Issues tab or email support+jobs@iiclabs.com. We usually reply the same day.

Whether the Actor worked well for you or not, a rating on the Reviews tab of its Store page helps us improve it and helps other people find it.