Greenhouse, Lever & Ashby Jobs Scraper - Workable & More avatar

Greenhouse, Lever & Ashby Jobs Scraper - Workable & More

Pricing

from $2.00 / 1,000 board scrapeds

Go to Apify Store
Greenhouse, Lever & Ashby Jobs Scraper - Workable & More

Greenhouse, Lever & Ashby Jobs Scraper - Workable & More

Get every open role from company career pages in clean JSON. Scrapes Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee through their official public job-board APIs. Full descriptions, salary parsing, remote and seniority detection, cross-board dedupe.

Pricing

from $2.00 / 1,000 board scrapeds

Rating

1.0

(1)

Developer

mohamed alaya

mohamed alaya

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

a month ago

Last modified

Security

Limited permissions

Share

ATS Jobs Scraper - Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee & Workday

Get every open role from a company's careers page as clean, structured JSON. Type a company name (Notion), a domain (ramp.com) or paste a careers URL and the Actor finds the right job board by itself. It reads the official public job-board APIs behind the careers pages, so there is no browser, no anti-bot to fight and nothing that breaks when a page is redesigned.

Typical users: recruiters and sourcers building talent lists, sales teams hunting for companies that are hiring, job-board founders, market researchers, salary analysts and anyone who wants a daily "new jobs at my target companies" feed.

What you get for every role

GroupFields
Identityid, jobKey, title, company, companySlug, source (greenhouse / lever / ashby / workable / smartrecruiters / recruitee / workday), requisitionId
Organisationdepartment, team
Locationlocation (as published), locations[], parsed city, region, country, countryCode
Work setupworkplaceType (remote / hybrid / onsite), isRemote, employmentType (full_time, part_time, contract, internship, ...)
Levelseniority (intern, junior, mid, senior, staff, lead, manager, director, executive) read from the title
Paysalary object {min, max, currency, period, raw} plus flat salaryMin, salaryMax, salaryCurrency, salaryPeriod for CSV / Excel
DatespostedAt (ISO), updatedAt
Linksurl, applyUrl
Textdescription (clean text) and optionally descriptionHtml

Salary comes from the structured pay fields the ATS publishes (Ashby, Lever, Greenhouse pay transparency, Recruitee) and, failing that, is parsed out of the description text ("$120,000 - $160,000 per year", "EUR 60.000 - 80.000", "CAD $130K - $170K"). Roles that publish no pay simply have salary: null.

Input

Only companies matters for a first run. Everything else is an optional filter.

{
"companies": ["Notion", "https://boards.greenhouse.io/gitlab", "lever:spotify", "ramp.com"],
"keywords": ["data engineer", "analytics"],
"workplaceTypes": ["remote"],
"countries": ["United States", "Canada"],
"postedWithinDays": 14,
"minSalary": 120000,
"maxItems": 500
}
InputWhat it does
companiesNames, domains, careers URLs or ats:slug shorthand. Mixed lists are fine.
keywords / excludeKeywordsKeep / drop roles by words. keywordScope chooses title+department only (precise) or full text including the description.
locationFilter, countriesSubstring match on location (separate options with |), or country names / ISO codes.
departmentFilter, workplaceTypes, employmentTypes, seniority, remoteOnlyStructured filters on the parsed fields.
postedWithinDays, minSalaryFreshness and pay filters. minSalary annualises hourly and monthly pay.
onlyNewSinceLastRunReturn only roles not delivered by an earlier run. Schedule daily for a fresh-jobs feed. First run returns everything.
webhookUrlPOST a summary plus up to 100 roles to Slack, Discord, Zapier, Make or n8n.
dedupe, maxJobsPerBoard, maxItems, concurrencyOutput control. maxItems defaults to 50 so a first test run is cheap; set 0 for no cap.

Company names and domains

Give a name or domain and the Actor first looks for an ATS link on the company's own careers page, then probes Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee with the usual slugs, verifies the company name where the ATS exposes one, and finally checks a built-in list of large Workday employers (nvidia, salesforce, adobe, cisco, intel, pfizer, mastercard, ...). The summary (SUMMARY record) shows how each entry was resolved. If a company uses its own in-house careers site there is no public board to read; the error row then says so and tells you to paste a URL.

Sample output row

{
"type": "job",
"id": "8858174002",
"jobKey": "greenhouse:gitlab:8858174002",
"title": "Regional Sales Director, National Security Group",
"company": "GitLab",
"source": "greenhouse",
"department": "PubSec - FED",
"location": "Remote, United States",
"city": null,
"country": "United States",
"countryCode": "US",
"workplaceType": "remote",
"isRemote": true,
"seniority": "director",
"salary": { "min": 148000, "max": 248400, "currency": "USD", "period": "year", "raw": "United States Salary Range" },
"salaryMin": 148000,
"salaryMax": 248400,
"salaryCurrency": "USD",
"postedAt": "2026-10-03T01:56:25.000Z",
"url": "https://job-boards.greenhouse.io/gitlab/jobs/8858174002",
"applyUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8858174002",
"description": "GitLab is the intelligent orchestration platform for DevSecOps..."
}

Use cases

  • Recruiting and sourcing: pull every "senior backend" role in Germany posted this month, with salary where published.
  • Sales prospecting: find companies actually hiring for the function you sell to (security, data, RevOps) and who the hiring manager's team is.
  • Job board / newsletter: schedule daily with onlyNewSinceLastRun and a webhook to publish fresh roles.
  • Market and salary research: export salaryMin / salaryMax by title, city and seniority across hundreds of employers.
  • Competitor intelligence: watch what a rival is hiring for. For ongoing alerts see the Hiring Signal Monitor Actor.

Pricing

Pay per event: a small charge for each board read successfully and for each role delivered. You are not charged for boards that fail, for error rows, or for roles removed by your filters. Set maxItems to cap spend on any run.

FAQ

Is this allowed? It reads the same public JSON endpoints each company's own careers page calls. No login, no private data.

A company is missing or returns nothing. Some employers run an in-house careers site or an ATS that has no public API. Paste the exact careers URL; if it is not Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee or Workday there is nothing to read.

Why is workplaceType sometimes null? The company did not publish it and the title and location do not say. Rows still carry the raw location.

Can I scrape a Workday board here? Yes, paste the *.myworkdayjobs.com URL or a tenant name. The dedicated Workday Jobs Scraper adds Workday-specific search and paging controls.

How fresh is the data? Live at run time. Dates are the posting dates published by the ATS.

One board failed, did I lose the run? No. Failures are per board and appear as type: "error" rows and in the SUMMARY record; every other board is still delivered.

How do I get only brand-new roles? Turn on onlyNewSinceLastRun, keep the same stateStoreName, and schedule the Actor.