Career Page Jobs API - Greenhouse, Lever, Ashby, Workable avatar

Career Page Jobs API - Greenhouse, Lever, Ashby, Workable

Pricing

from $1.10 / 1,000 job rows

Go to Apify Store
Career Page Jobs API - Greenhouse, Lever, Ashby, Workable

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

Natalia Ivanova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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

ATSDetected fromNotes
Greenhouseboards.greenhouse.io/<token>, job-boards.greenhouse.io/<token>Full description, departments, offices
Leverjobs.lever.co/<site>Workplace type, salary range when published
Ashbyjobs.ashbyhq.com/<name>Compensation tiers, remote flag, teams
SmartRecruiterscareers.smartrecruiters.com/<Company>Experience level; description needs one extra request per job
Workableapply.workable.com/<slug>Telecommuting flag, department
Recruitee<slug>.recruitee.comRequirements 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

FieldTypeDefaultDescription
companiesarray—Slugs, ATS URLs, careers-page URLs or ats:slug. One per line.
keywordsarray[]Whole-word match in title, department, team, location. Empty = all.
excludeKeywordsarray[]Drop matching jobs.
locationstring—Location text must contain this (Remote, Berlin, United States).
remoteOnlybooleanfalseOnly remote jobs (ATS flag or "remote" in title/location).
includeDescriptionbooleantrueFull description as text and HTML.
maxJobsPerCompanynumber1000Cap per company.
maxItemsnumber5000Cap 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

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.
  • remote is 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 }.

Cost control

Pay per event only works if you can see the bill before you pay it:

  • Set dryRun to 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.
  • maxItems is respected exactly, and the run stops before the platform's Max total charge for the run.
  • Every run writes a COST record to the key-value store: chargeable events, charged events, the amount in USD and whether a limit was hit.