Greenhouse Lever Ashby Jobs API
Pricing
from $5.00 / 1,000 jobs
Greenhouse Lever Ashby Jobs API
Scrape job postings from 5 public ATS APIs: Greenhouse, Lever, Ashby, Workable and SmartRecruiters. Returns title, location, URL, postedAt and description. Pay per job.
Pricing
from $5.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Technical Dost Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Company Jobs Scraper (Greenhouse, Lever, Ashby, Workable, SmartRecruiters)
Turn company names into a clean feed of current job openings. This Apify Actor reads public, official Greenhouse, Lever, Ashby, Workable, and SmartRecruiters job-board APIs, detects the ATS used by each company, and saves every opening in one normalized format.
No API key, paid proxy, or paid data source is required. A missing board or failed company is logged and skipped without stopping the rest of the run.
Use cases
- Track hiring signals across target accounts.
- Build recruiting, sourcing, and job-alert workflows.
- Create lead lists from companies actively hiring specific teams.
- Replace five ATS integrations with one stable output schema.
Input
| Field | Type | Default | Description |
|---|---|---|---|
companies | string array | sample list | Required company slugs or board tokens. |
ats | string | "auto" | auto, greenhouse, lever, ashby, workable, or smartrecruiters. Auto tries each source until one returns jobs. |
maxJobsPerCompany | integer | 100 | Maximum jobs saved per company, from 1 to 500. |
Example:
{"companies": ["stripe", "figma", "notion", "clear-labs", "visa"],"ats": "auto","maxJobsPerCompany": 100}
Use the ATS board token, which can differ from the company's normal website slug. Examples that currently resolve: stripe (Greenhouse), notion (Ashby), palantir (Lever), clear-labs (Workable), visa (SmartRecruiters).
Output
Each dataset item contains:
company— input company slug or board tokenats— detected provider:greenhouse,lever,ashby,workable, orsmartrecruitersjobId— provider job identifiertitle— job titlelocation— source-provided locationdepartment— department when availableteam— team when availableemploymentType— employment type or commitment when availableurl— public job URLpostedAt— ISO 8601 source timestamp, ornullsalary— source-provided compensation summary, ornulldescriptionText— plain-text description truncated to 800 characters
Example output:
{"company": "stripe","ats": "greenhouse","jobId": "8023928","title": "Account Executive, Bridge","location": "London","department": "Revenue","team": "","employmentType": "","url": "https://stripe.com/jobs/listing/account-executive-bridge/8023928","postedAt": "2026-07-17T08:30:00.000Z","salary": null,"descriptionText": "Partner with customers to grow their business on Stripe..."}
The run log ends with a SUMMARY showing the detected ATS and saved job count for every requested company.
Run locally
Use Node.js 20 or newer. Save input to storage/key_value_stores/default/INPUT.json, then run:
npm installnode src/main.js
Results are written to storage/datasets/default/.
Free public sources
- Greenhouse Job Board API:
https://boards-api.greenhouse.io/v1/boards/<slug>/jobs?content=true - Lever Postings API:
https://api.lever.co/v0/postings/<slug>?mode=json - Ashby Job Board API:
https://api.ashbyhq.com/posting-api/job-board/<slug>?includeCompensation=true - Workable Widget API:
https://apply.workable.com/api/v1/widget/accounts/<slug>?details=true - SmartRecruiters Postings API:
https://api.smartrecruiters.com/v1/companies/<slug>/postings
The Actor uses request timeouts, two retries with backoff, and a five-company concurrency cap. Review each provider's and company's current terms before redistributing data.