Career Site Jobs API: Greenhouse, Lever, Ashby, SmartRecruiters avatar

Career Site Jobs API: Greenhouse, Lever, Ashby, SmartRecruiters

Pricing

from $2.00 / 1,000 jobs

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

Career Site Jobs API: Greenhouse, Lever, Ashby, SmartRecruiters

Job postings API for company career sites on Greenhouse, Lever, Ashby and SmartRecruiters. Get salary ranges, location, remote flag and full descriptions from 8,500+ verified companies. Filter by title, location and date. Incremental mode returns only new or changed jobs. $2 per 1,000 jobs.

Pricing

from $2.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Huss

Huss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Career Site Jobs API: Greenhouse, Lever, Ashby & SmartRecruiters

Career Site Jobs API pulls open job listings straight from company career sites hosted on Greenhouse, Lever, Ashby and SmartRecruiters. It reads the official public job-board APIs those platforms offer, so you get clean, structured data: title, department, location, remote or hybrid flag, employment type, salary range (where published), posting date, apply link and the full job description.

Give it a list of companies, or use the built-in list of 8,500+ verified companies, filter by keyword, location, remote or posting date, and export to JSON, CSV, Excel or straight into your app via API. Turn on incremental mode to get only new or changed jobs on every scheduled run.

What can Career Site Jobs API do?

  • ๐Ÿข Scrape any company on Greenhouse, Lever, Ashby or SmartRecruiters. Use a short token such as greenhouse:airbnb or paste the career-page URL.
  • ๐Ÿ“š Search across 8,500+ companies at once with the built-in, pre-verified company list.
  • ๐Ÿ’ฐ Get salary data published by the employer (min, max, currency, interval) on Greenhouse, Lever and Ashby boards that publish pay ranges.
  • ๐Ÿ”Ž Filter by title keywords, excluded keywords, location, remote only, and posted within N days.
  • ๐Ÿ” Monitor job boards with incremental mode: output only NEW and CHANGED jobs, and optionally REMOVED ones.
  • ๐Ÿงพ Plain-text or HTML descriptions, ready for search indexes, LLMs and RAG pipelines.
  • โšก Fast and reliable. It uses official JSON endpoints, not HTML scraping or browsers, so there are no proxies to pay for and nothing breaks when a site's design changes.
  • ๐Ÿค– Works great for AI agents via the Apify API, MCP server, or integrations such as Make, Zapier and n8n.

Why use Career Site Jobs API?

Jobs on company career sites are the original source: they appear there first, include the employer's own salary range and full description, and disappear when the role is filled. Job boards and aggregators repost them later, often without pay data.

Career Site Jobs APIJob-board scrapers (LinkedIn, Indeed)Job-data subscriptions
Data sourceEmployer's own ATS job boardReposted listingsMixed, often cached
FreshnessLive at run timeVariesDaily or weekly snapshots
Salary rangesYes, where the employer publishes themSometimesSometimes
Login, proxies or anti-bot issuesNone (official public APIs)Commonn/a
Only new or changed jobsBuilt in (incremental mode)RareRare
Price$2 per 1,000 jobs, pay as you goVariesMonthly contract

Greenhouse, Lever, Ashby and SmartRecruiters jobs in one API

  • Greenhouse jobs API: every open role on boards.greenhouse.io and job-boards.greenhouse.io boards, with departments, offices and pay ranges.
  • Lever jobs API: postings from jobs.lever.co and jobs.eu.lever.co, including team, commitment, workplace type and salary.
  • Ashby jobs API: postings from jobs.ashbyhq.com, with compensation tiers, remote flag and employment type.
  • SmartRecruiters jobs API: postings from jobs.smartrecruiters.com, including full descriptions and experience level.

All four come out in one normalized schema, so you don't have to write and maintain four integrations.

Who is it for?

  • Job boards and aggregators that need fresh, first-party listings from employers.
  • Recruiters and sales teams looking for companies that are hiring for specific roles (hiring signals).
  • Labor-market and salary researchers who need structured postings with pay ranges.
  • Job seekers and AI agents that track new openings at target companies.
  • HR tech and AI startups that need a reliable jobs feed for matching, enrichment or LLM training data.
  • Investors and analysts watching hiring velocity as a growth signal.

How to scrape company career sites

  1. Click Try for free.
  2. In Companies, add one company per line, for example greenhouse:airbnb, lever:palantir, ashby:ramp or https://jobs.smartrecruiters.com/BoschGroup. Or enable Use built-in company list.
  3. Optionally add Title keywords (for example data engineer) and Locations (for example Remote, London).
  4. Click Start and download your jobs as JSON, CSV, Excel, XML or HTML.

How do I find a company's board token?

Open the company's careers page and click a job. The token is the first part of the path on the ATS domain:

ATSCareer page URLInput
Greenhousehttps://job-boards.greenhouse.io/airbnbgreenhouse:airbnb
Leverhttps://jobs.lever.co/palantirlever:palantir
Lever (EU)https://jobs.eu.lever.co/<token>lever-eu:<token>
Ashbyhttps://jobs.ashbyhq.com/rampashby:ramp
SmartRecruitershttps://jobs.smartrecruiters.com/BoschGroupsmartrecruiters:BoschGroup

You can paste any of these URLs directly. The Actor detects the platform automatically.

Input example

{
"companies": ["greenhouse:airbnb", "lever:palantir", "ashby:ramp", "smartrecruiters:BoschGroup"],
"keywords": ["engineer", "data"],
"excludeKeywords": ["intern"],
"locations": ["United States", "Remote"],
"postedWithinDays": 30,
"descriptionFormat": "text",
"incrementalMode": false
}

See the Input tab for every option with descriptions.

Output example

Each job is one dataset item:

{
"jobId": "ashby:ramp:3f4509ad-1858-478b-a7fb-bcd792d9575a",
"ats": "ashby",
"companyToken": "ramp",
"companyName": "ramp",
"sourceJobId": "3f4509ad-1858-478b-a7fb-bcd792d9575a",
"title": "Product Manager | Procurement",
"department": "Product",
"team": "Product Management",
"location": "New York, NY (HQ)",
"locations": ["New York, NY (HQ)", "San Francisco, CA"],
"country": "USA",
"remote": true,
"workplaceType": "hybrid",
"employmentType": "FullTime",
"experienceLevel": null,
"postedAt": "2026-10-05T16:09:02.202+00:00",
"updatedAt": null,
"jobUrl": "https://jobs.ashbyhq.com/ramp/3f4509ad-1858-478b-a7fb-bcd792d9575a",
"applyUrl": "https://jobs.ashbyhq.com/ramp/3f4509ad-1858-478b-a7fb-bcd792d9575a/application",
"salaryMin": 230000,
"salaryMax": 325000,
"salaryCurrency": "USD",
"salaryInterval": "1 YEAR",
"salaryText": "$230K โ€“ $325K โ€ข Offers Equity",
"descriptionHtml": null,
"descriptionText": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dolla...",
"changeType": null,
"firstSeenAt": null,
"scrapedAt": "2026-10-07T20:19:46.429Z"
}

The Overview and Jobs with salary views in the Output tab show the most useful columns. A RUN_SUMMARY record in the run's key-value store lists how many companies succeeded or failed, with error details.

Incremental mode: get only new or changed jobs

Enable Incremental mode and schedule the Actor (for example daily). The Actor remembers each job's fingerprint (title, location, department, team, employment type, salary and description) in a named key-value store:

  • The first run returns all matching jobs with changeType: "NEW".
  • Later runs return only jobs that are NEW or CHANGED, plus REMOVED jobs if Output removed jobs is on.
  • If nothing changed, the run succeeds with zero results, and you pay nothing for results.

Use a different State store name for each monitoring task, such as one per filter set, so tasks don't overwrite each other's memory.

How much does it cost to scrape career sites?

This Actor uses pay-per-event pricing. You pay mainly for the jobs you get:

EventPrice
Job saved to the dataset$2.00 per 1,000 jobs ($0.002 per job)
Company job board scanned$0.10 per 1,000 companies ($0.0001 per company)
Actor start$0.00005 per run

There's no extra charge for proxies or compute. Filters are applied before charging, so jobs you filter out are free, and failed company boards aren't charged at all. The small per-company charge covers loading each board, so scanning the full seed list of 8,500+ companies costs under $1 before any matched jobs.

Examples:

  • 4 companies, all jobs (about 750 jobs): about $1.50
  • 1,000 companies filtered to remote data engineering roles (about 140 jobs): about $0.37
  • 1,000 companies with incremental mode, 500 new jobs since yesterday: about $1.10

Set Maximum cost per run in the run options to cap spending; the Actor stops cleanly when it is reached. The prefilled example input is capped at 200 jobs (about $0.40), so your first run is cheap.

Tips

  • Set Job description format to None for the fastest runs when you only need titles, locations and links.
  • SmartRecruiters needs one extra request per job to load the description, so large SmartRecruiters boards take longer when descriptions are on.
  • Use Max jobs to preview results cheaply before a big run.
  • Seed-list scans of thousands of companies finish faster with 4 GB of memory. Pricing is per event, so memory doesn't change what you pay.

Use it with AI agents (MCP) and the API

Add this Actor as a tool in Claude, ChatGPT, Cursor, VS Code or any other MCP client through the Apify MCP server:

https://mcp.apify.com?tools=magenta_waterwheel/career-site-jobs-api

Then just ask, for example: "Find remote data engineering jobs posted in the last 7 days at Airbnb, Ramp and Palantir." The agent fills in the input, runs the Actor and reads the results. The Actor runs with limited permissions, so it can only access its own run storage.

To get results in a single HTTP request, call the synchronous endpoint with your Apify API token:

curl -X POST "https://api.apify.com/v2/acts/magenta_waterwheel~career-site-jobs-api/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies":["greenhouse:airbnb","ashby:ramp"],"keywords":["engineer"],"maxJobs":50}'

You can also use the official Python and JavaScript clients, or the ready-made code on the API tab.

Integrations and scheduling

  • โฐ Schedule runs hourly, daily or weekly in Apify Console, with no server to maintain.
  • ๐Ÿ”— Send results anywhere: Google Sheets, Slack, Google Drive, Airbyte, webhooks, or no-code tools such as Make, Zapier and n8n.
  • ๐Ÿ“ค Export the dataset as JSON, CSV, Excel, XML, RSS or HTML.
  • ๐Ÿ“ˆ Monitoring: get notified if a run fails, and see every run's log and cost in Console.

FAQ

Is there a free trial?

Yes. Apify's Free plan includes $5 of usage credit every month, enough for about 2,500 jobs with this Actor. No credit card is needed to start.

How do I get only new jobs every day?

Turn on Incremental mode and create a daily schedule in Apify Console. Each run returns only jobs that are new or changed since the previous run, and you pay only for those.

This Actor reads public job postings that employers publish through the official public job-board APIs of Greenhouse, Lever, Ashby and SmartRecruiters, which exist so job postings can be shown on other sites. It does not log in, bypass protections or collect personal data. You are responsible for how you use the data; check the terms that apply to your use case.

Why did my run fail with "no jobs"?

The Actor fails on purpose instead of returning an empty dataset, so you never pay for a silent empty run. The status message tells you why: all boards failed (usually a wrong token, see RUN_SUMMARY), the boards have no open jobs, or your filters matched nothing.

What happens if one company fails?

Each company is retried on network or server errors (see Max retries per company). A board that doesn't exist (HTTP 404) is reported in RUN_SUMMARY and skipped. Other companies continue normally.

Which companies are in the built-in list?

The list contains companies whose public boards on Greenhouse, Lever, Ashby or SmartRecruiters had at least one open job when the list was built. It was compiled from public web-crawl data (Common Crawl) and verified against each platform's API. The list is refreshed with new Actor versions.

Does it support Workday, iCIMS or other ATS platforms?

Not yet. Greenhouse, Lever, Ashby and SmartRecruiters are supported today. Tell us in the Issues tab which platform you need next.

Can I use it with AI agents or via API?

Yes. Call it via the Apify API, the Apify MCP server, or the JavaScript and Python clients, and read results from the dataset. The output fields are stable and documented in the Output tab.

How do I report a problem?

Open an issue in the Issues tab with the run link and the company that failed. We aim to reply within one business day, and we're happy to add companies or ATS platforms on request.

More tools from the same developer

ActorWhat it doesPrice
Website Screenshot & PDF APIFull-page PNG/JPEG screenshots and web page to PDF in bulk$2.50 / 1,000 screenshots
App Store Reviews ScraperApple App Store reviews and app details in any country$0.25 / 1,000 reviews
Document & PDF to MarkdownPDF, Word, PowerPoint, Excel and HTML to LLM-ready Markdown, with OCR$3 / 1,000 pages