ATS Careers Scraper: Greenhouse, Lever, Ashby avatar

ATS Careers Scraper: Greenhouse, Lever, Ashby

Pricing

from $5.00 / 1,000 results

Go to Apify Store
ATS Careers Scraper: Greenhouse, Lever, Ashby

ATS Careers Scraper: Greenhouse, Lever, Ashby

Pull every open role, with location, department, employment type and description, from any public Greenhouse, Lever, Ashby, Workable or SmartRecruiters careers page. Filter by keyword, location or department. Priced per result.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

M Usama

M Usama

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Security

Limited permissions

Share

What does ATS Careers Scraper: Greenhouse, Lever, Ashby, Workable & SmartRecruiters do?

Give it a company's public career page URL and it returns every open role posted there: title, company, location, department, employment type, remote flag, posted date, apply link and a plain text description. It reads the same public JSON APIs that power Greenhouse, Lever, Ashby, Workable and SmartRecruiters career pages, so results are current as of the run. Filters for keyword, location and department keep runs small, and you only pay for the results you keep.

Data source

The Actor calls the public JSON API behind each career page (for example boards-api.greenhouse.io for Greenhouse, api.lever.co for Lever) rather than parsing HTML, so data is live and as current as the company's own careers page.

Why use it?

  • Lead generation and recruiting: pull open roles across many companies to spot who is hiring and for what.
  • Market and hiring research: track headcount growth, new departments or new office locations by role postings.
  • Sales signals: new engineering or GTM roles often precede a buying window.
  • Job board or newsletter content: republish current openings without maintaining scrapers for five different ATS platforms yourself.

How to use it

  1. Open the Actor and paste one or more company career page URLs (Greenhouse, Lever, Ashby, Workable or SmartRecruiters), then set optional filters.
  2. Click Start. Download results as JSON, CSV or Excel, or read them through the API.
  3. Add a Schedule and an Integration (Slack, Google Sheets, webhook) to get new postings automatically.

Input

FieldDescription
startUrlsPublic company career page URLs. The ATS is detected automatically from the URL.
keywordsComma separated keywords to match in the job title or description. Leave empty to keep every role.
locationOnly keep roles whose location text contains this, for example Remote or New York.
departmentOnly keep roles whose department or team contains this, for example Engineering.
maxResultsHard stop for the run. You are billed per result, so this caps the cost.
proxyConfigurationApify proxy is recommended for larger runs.

Example input:

{
"startUrls": [
{ "url": "https://job-boards.greenhouse.io/gitlab" },
{ "url": "https://jobs.lever.co/angellist" },
{ "url": "https://jobs.ashbyhq.com/linear" },
{ "url": "https://apply.workable.com/zyte" },
{ "url": "https://jobs.smartrecruiters.com/Equinox" }
],
"keywords": "",
"location": "",
"department": "",
"maxResults": 60
}

Output

Every record has the same shape regardless of the source ATS:

{
"id": "greenhouse:gitlab:8556658002",
"title": "AI Engineer",
"company": "GitLab",
"location": "Remote, Bangalore",
"department": "Enterprise Applications",
"employmentType": null,
"remote": true,
"postedAt": "2026-09-14T20:01:39.000Z",
"url": "https://job-boards.greenhouse.io/gitlab/jobs/8556658002",
"description": "GitLab is the intelligent orchestration platform for DevSecOps...",
"source": "greenhouse",
"sourceUrl": "https://job-boards.greenhouse.io/gitlab",
"scrapedAt": "2026-09-29T09:26:09.167Z"
}
FieldMeaning
idStable key (source:company:nativeId), safe for deduplication between runs
titleJob title
companyCompany name as published by the ATS
locationLocation text as published, or null if not given
departmentDepartment or team, when the ATS publishes one
employmentTypeFull time, part time, contract, etc, when the ATS publishes one
remotetrue, false or null when the source does not say
postedAtISO date the role was posted, when available
urlPublic apply or posting page
descriptionPlain text job description, HTML stripped
sourceWhich ATS the role came from: greenhouse, lever, ashby, workable or smartrecruiters
sourceUrlThe career page URL you supplied that produced this record
scrapedAtWhen this Actor run fetched the record

Pricing

Pay per event: a small fee when a run starts, then a fixed price per result returned. You only pay for records that pass your filters. Set maxResults to cap any run.

Limitations

  • Workday career pages are not supported. Workday's public job API intermittently rejects automated requests with a generic error even without any login wall, so results from it would not be reliable.
  • Only fields the source ATS actually publishes are filled in; some boards omit department or employment type.
  • SmartRecruiters results are read from the first 100 postings per company page; very large boards beyond that are not paginated further in a single run.

FAQ

Is this legal? The Actor reads listings the company publishes for any visitor without a login and stores only the job posting information published for that purpose. You are responsible for how you use the data.

Something is missing or broken? Open an issue in the Issues tab; response time is usually under a day.