Career Page Jobs API - Greenhouse, Lever, Ashby, Workable
Pricing
from $1.10 / 1,000 job rows
Career Page Jobs API - Greenhouse, Lever, Ashby, Workable
Job openings from company career pages on Greenhouse, Lever, Ashby, SmartRecruiters, Workable and Recruitee. Pass company names or career URLs, the ATS is detected automatically. dryRun prices a run before you pay; charged only for jobs delivered.
Pricing
from $1.10 / 1,000 job rows
Rating
0.0
(0)
Developer
Natalia Ivanova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Career Page Jobs API - Greenhouse, Lever, Ashby, Workable ATS
Get every open position straight from company career pages — the ones hosted on Greenhouse, Lever, Ashby, SmartRecruiters, Workable and Recruitee. Give the Actor company names, ATS links or careers-page URLs; it detects which applicant-tracking system each company uses and returns one clean dataset: title, location, remote flag, department, team, employment type, compensation (where the ATS publishes it), publication date, full description and the direct apply link.
It reads only the public job-board APIs the ATS vendors publish for career sites — the same data the career page itself loads. No login, no HTML scraping, no proxies, no rate-limit games. That is why it does not break when a career page changes its design, and why it is fast: hundreds of companies in a couple of minutes.
What you can do with it
- Hiring signals for sales and investors — watch which target accounts open roles, in which teams, at what pace. Run daily and diff the datasets.
- Job boards and newsletters — build a niche board ("AI companies hiring in Europe") sourced directly from employers, with canonical apply links.
- Recruiting and talent research — track competitors' open roles, salary ranges (Ashby, Lever, Greenhouse where published), locations and remote policies.
- Job search on autopilot — a watch-list of dream companies, filtered by keywords and location, delivered to Slack or email through Apify integrations.
- AI agents — expose live openings of any company to an agent through the Apify MCP server.
Supported ATS
| ATS | Detected from | Notes |
|---|---|---|
| Greenhouse | boards.greenhouse.io/<token>, job-boards.greenhouse.io/<token> | Full description, departments, offices |
| Lever | jobs.lever.co/<site> | Workplace type, salary range when published |
| Ashby | jobs.ashbyhq.com/<name> | Compensation tiers, remote flag, teams |
| SmartRecruiters | careers.smartrecruiters.com/<Company> | Experience level; description needs one extra request per job |
| Workable | apply.workable.com/<slug> | Telecommuting flag, department |
| Recruitee | <slug>.recruitee.com | Requirements included in description |
Auto-detection. For a bare company slug (gitlab, openai) the Actor probes all six APIs and uses the one that answers with jobs. For a company careers page (https://example.com/careers) it scans the page for ATS links. If nothing is found, the company is reported in the run summary with a hint — pass the ATS link or ats:slug explicitly (lever:netflix).
Input
| Field | Type | Default | Description |
|---|---|---|---|
companies | array | — | Slugs, ATS URLs, careers-page URLs or ats:slug. One per line. |
keywords | array | [] | Whole-word match in title, department, team, location. Empty = all. |
excludeKeywords | array | [] | Drop matching jobs. |
location | string | — | Location text must contain this (Remote, Berlin, United States). |
remoteOnly | boolean | false | Only remote jobs (ATS flag or "remote" in title/location). |
includeDescription | boolean | true | Full description as text and HTML. |
maxJobsPerCompany | number | 1000 | Cap per company. |
maxItems | number | 5000 | Cap in total. |
Example — engineering roles, remote, at three companies:
{"companies": ["gitlab", "https://jobs.ashbyhq.com/openai", "lever:netflix"],"keywords": ["engineer", "developer"],"remoteOnly": true,"includeDescription": false}
Output
{"id": "greenhouse:gitlab:8556658002","ats": "greenhouse","atsName": "Greenhouse","company": "gitlab","companyName": "GitLab","title": "AI Engineer","url": "https://job-boards.greenhouse.io/gitlab/jobs/8556658002","applyUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8556658002","location": "Remote, Bangalore","remote": true,"workplaceType": null,"department": "Enterprise Applications","team": "India","employmentType": null,"seniority": null,"compensation": null,"publishedAt": "2026-05-22T13:16:29Z","updatedAt": "2026-08-31T21:56:36Z","description": "GitLab is the intelligent …","descriptionHtml": "<div class=\"content-intro\">…</div>","scrapedAt": "2026-09-10T15:40:02Z"}
The OUTPUT record in the key-value store lists every company with the ATS detected, jobs found and kept, and the reason if it could not be resolved.
Use cases
Ready-made examples you can run without configuring anything:
- Career page jobs API for any company — ready-made task, run it as is
- Auto-detect the ATS behind a list of domains — ready-made task, run it as is
Career page jobs API for any company
Give company names or careers URLs and get live openings straight from the company's own ATS — no job-board reposts, no expired listings.
{ "companies": ["stripe", "notion"] }
ATS auto-detect for a list of domains
The Actor works out which applicant-tracking system each company runs before fetching, so a mixed list needs no preparation.
{ "companies": ["https://example.com/careers"] }
Scrape SmartRecruiters and Workable jobs
The smaller ATS platforms are covered by the same schema as Greenhouse, Lever and Ashby.
{ "companies": ["acme"], "includeDescription": true }
Pricing
Pay per event: a small fee per Actor start plus a fee per job returned. Companies that cannot be resolved cost nothing beyond the start fee. Current prices are in the Pricing tab.
Good to know
- Fields differ by ATS: Greenhouse has no employment type, SmartRecruiters has no remote flag on the list endpoint, compensation appears only where the employer publishes it.
remoteis the ATS flag when it exists; otherwise a heuristic on title/location ("remote", "anywhere", "work from home").- Companies sometimes run two ATS instances (one per region). Pass each link separately.
- The ATS vendors publish these APIs for public career pages; please use the data respectfully and keep the apply links intact.
Use with AI agents (MCP)
Add the Actor to the Apify MCP server and ask: "Which remote backend roles does Company X have open right now?" Typical tool input: { "companies": ["companyx"], "keywords": ["backend"], "remoteOnly": true, "includeDescription": false }.
Related Actors
Cost control
Pay per event only works if you can see the bill before you pay it:
- Set
dryRunto count every result and print what a full run would cost - nothing is charged, and only a few sample rows are stored. - You are charged only for rows actually delivered to the dataset; a run that finds nothing costs nothing beyond the start event.
maxItemsis respected exactly, and the run stops before the platform's Max total charge for the run.- Every run writes a
COSTrecord to the key-value store: chargeable events, charged events, the amount in USD and whether a limit was hit.