ATS Jobs API: Greenhouse, Lever & Ashby job boards avatar

ATS Jobs API: Greenhouse, Lever & Ashby job boards

Pricing

from $3.00 / 1,000 job listing returneds

Go to Apify Store
ATS Jobs API: Greenhouse, Lever & Ashby job boards

ATS Jobs API: Greenhouse, Lever & Ashby job boards

Normalized job listings from the official public job board APIs of Greenhouse, Lever and Ashby. No scraping, no proxies.

Pricing

from $3.00 / 1,000 job listing returneds

Rating

0.0

(0)

Developer

asaf meizner

asaf meizner

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Security

Limited permissions

Share

Get public job listings from company boards in one normalized format, straight from the official public job board APIs of Greenhouse, Lever and Ashby. It uses public API endpoints without HTML scraping, proxies or login. Availability depends on each vendor and company board.

What you get

One dataset item per job: ats, company, companySlug, id, title, location, remote, department, employmentType, postedAt, updatedAt, url, applyUrl, description (plain text) and, for Ashby boards that publish it, compensation.

Input

FieldMeaning
companiesBoard slugs or URLs: greenhouse:stripe, lever:palantir, ashby:ramp, https://jobs.lever.co/palantir. A bare slug (stripe) is tried on all three systems.
keywordsKeep jobs whose title contains any of these words.
locationContainsKeep jobs whose location text contains this string.
remoteOnlyKeep only remote jobs.
includeDescriptionInclude the full description (default true).
maxJobsPerCompanyCap per company (0 = unlimited).

Defaults: no keyword or location filter, remoteOnly: false, includeDescription: true, and maxJobsPerCompany: 0 (unlimited). companies is required; the example boards shown in the input form are suggestions, not automatic company discovery.

Small first-run example (at most five returned jobs, $0.015 in job-listing events):

{
"companies": ["greenhouse:stripe"],
"includeDescription": false,
"maxJobsPerCompany": 5
}

Example output

One item from a verified cloud run (fields vary by vendor):

{
"ats": "greenhouse",
"company": "Stripe",
"companySlug": "stripe",
"id": "8172508",
"title": "Abuse Investigator",
"location": "Dublin",
"remote": false,
"department": "8611 Security Analytics",
"employmentType": null,
"url": "https://stripe.com/jobs/search?gh_jid=8172508",
"applyUrl": "https://stripe.com/jobs/search?gh_jid=8172508"
}

This example uses includeDescription: false. Dates and optional fields depend on the source. Export dataset results as JSON, CSV or Excel using Apify.

Use cases

  • Monitor hiring at target companies (schedule the actor, compare runs).
  • Build a niche job board or newsletter.
  • Feed hiring signals into sales / market research.

Start small and interpret results

For a first run, use one explicit board such as greenhouse:stripe and set maxJobsPerCompany to 5. A bare slug is tried on all three systems; matching boards can belong to different companies. Explicit vendor prefixes avoid that ambiguity.

Keyword matching is case-insensitive and searches job titles only. A job needs to match any one keyword. locationContains searches the location text, and all enabled filters must pass. The cap is applied after filtering, separately to each matching board; it does not select the newest jobs.

remote follows the vendor's remote flag where supported, or a mention of “remote” in the location. It does not establish worldwide eligibility, time-zone coverage or permission to work from your country. Check the original job before applying.

Scheduled monitoring and repeat charges

Each run takes a fresh snapshot. It does not remember earlier results or return only new vacancies. For comparisons, identify a job with the combination of ats, companySlug and id, then compare your saved snapshots. Jobs returned again trigger the job-listing event again.

At $0.003 per returned job, 100 returned jobs cost $0.30 in job-listing events. Returning those same 100 jobs every day for 30 days costs $9 in those events, plus any other charges shown in the Store pricing panel. Start with a small cap before enabling a schedule.

Empty or incomplete results

Zero results can mean no matching jobs, an incorrect slug, an empty board or a source request that kept failing. Review the run log for skipped entries and missing-board warnings. A successful run can contain results from some boards while another board failed; an empty snapshot alone is not proof that a company stopped hiring.

Greenhouse's postedAt falls back to the source update time when a first-publication date is unavailable. Missing dates and other optional fields should be treated as unknown.

Pricing (pay per event)

The job-listing event is $0.003 per job returned. Filtered-out jobs and missing boards do not trigger that event. Apify may also charge actor-start and dataset-item events shown in the Store pricing panel; review the current pricing there before running.

Notes and limits

  • Only public postings are read, via the endpoints the ATS vendors publish for job boards. Requests are paced (0.5 s) and retried on 429/5xx.
  • A company must use one of the three systems and its board must be public. The slug is the part of the board URL after the host.
  • Postings can contain recruiter names written by the employer; the actor does not look up personal data.