Job Postings API · Live, All ATS · Greenhouse, Lever, Ashby +3
Pricing
from $1.20 / 1,000 job results
Job Postings API · Live, All ATS · Greenhouse, Lever, Ashby +3
Live job postings from any company as clean JSON — fetched directly from the ATS, zero lag.
Pricing
from $1.20 / 1,000 job results
Rating
0.0
(0)
Developer
Samuel Elsner
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Job Postings API — Greenhouse, Lever, Ashby, Workable & more
Get every job posting from any company as clean, unified JSON — live from the ATS, just paste the company's domain. The actor auto-detects which ATS (applicant tracking system) each company uses, pulls all open postings directly from the official public job-board API at run time — no stale database, zero lag — and returns them in one consistent schema. Turn on monitor mode and schedule it daily to receive only new postings — a live hiring-signal feed.
Why this actor
- ⚡ Live, not a database — every run fetches straight from the ATS API the moment you call it. Job databases refresh on a lag of hours; a posting that went up five minutes ago is already in your results here.
- 🔎 Auto-detect — input
stripe.com, a careers URL, a board slug, or a company name. No need to know whether they use Greenhouse or Lever. - 🧩 One schema for 6 ATS providers — Greenhouse, Lever, Ashby, Workable, Recruitee, SmartRecruiters. Every job has the same fields; no per-provider parsing on your side.
- 📡 Monitor mode — each scheduled run returns only postings never seen before. Perfect for sales triggers ("company X is hiring SDRs → they're scaling sales"), recruiting intel, and job boards.
- 🛡️ No scraping brittleness — data comes from the vendors' official, public, documented job-board APIs. No headless browsers, no anti-bot cat-and-mouse, no broken runs after a site redesign.
- 🎯 Filters — remote-only, title contains/excludes, location, department.
See it in action
Three domains in, 1,457 live jobs out — in 4 seconds:

Just paste domains — auto-detect does the rest:

One clean, unified schema across all ATS providers:

Use cases
| Who | How |
|---|---|
| Sales / lead gen | Hiring is buying intent. Monitor your target accounts daily; route new postings that match your trigger words to your CRM. |
| Recruiters & sourcing | Track competitor hiring, spot which teams are growing, feed your talent CRM. |
| Job boards & aggregators | Pull structured postings (title, location, remote, salary when published, apply URL) for hundreds of companies without maintaining scrapers. |
| Market research | Headcount-growth signals by company, department, and geography over time. |
| AI agents | Call this actor via Apify's MCP server to give any agent live jobs data. |
Input
{"companies": ["stripe.com", "figma.com", "openai.com", "https://jobs.lever.co/plaid"],"monitorMode": true,"remoteOnly": false,"titleIncludes": ["engineer", "developer"]}
companies accepts domains, careers-page URLs, board slugs, company names, or
explicit {"provider": "greenhouse", "slug": "stripe"} objects.
Output (unified schema — every field always present)
{"id": "5364702004","key": "greenhouse:figma:5364702004","provider": "greenhouse","company": { "slug": "figma", "name": null, "domain": "figma.com" },"title": "Account Executive, Emerging Enterprise","url": "https://boards.greenhouse.io/figma/jobs/5364702004","applyUrl": "https://boards.greenhouse.io/figma/jobs/5364702004","location": { "raw": "Berlin, Germany", "city": "Berlin", "country": "Germany", "remote": false },"department": "Sales","team": null,"employmentType": null,"salary": { "min": null, "max": null, "currency": null, "interval": null, "raw": null },"postedAt": "2024-11-01T10:05:10.000Z","updatedAt": "2026-06-20T12:00:00.000Z","descriptionText": "Figma is looking for…"}
Salary is populated when the company publishes it (Lever structured ranges,
Ashby compensation summaries). SmartRecruiters descriptions require one extra
API call per posting — the actor does this automatically when
includeDescription is on; turn it off for faster, cheaper runs.
Monitor mode
With monitorMode: true the actor remembers every job it has delivered (in its
key-value store) and emits only new postings on each run. Schedule it daily
against your account list and connect the dataset to Zapier/Make/webhooks —
that's a hiring-signal pipeline in two clicks. First run delivers the full
current board (your baseline); subsequent runs deliver only the delta.
Supported providers
| Provider | Detection | Source |
|---|---|---|
| Greenhouse | ✅ auto | official public boards API |
| Lever | ✅ auto | official public postings API |
| Ashby | ✅ auto | official public posting API |
| Workable | ✅ auto | official public widget API |
| Recruitee | ✅ auto | official public offers API |
| SmartRecruiters | ✅ auto | official public postings API |
More providers (Teamtailor, Personio, BambooHR) are on the roadmap — tell us which one you need in the Issues tab.
Pricing & fairness notes
Pay-per-event: a small per-run start fee plus a per-job-result fee. Use
titleIncludes/remoteOnly filters and includeDescription: false to keep
result counts (and your cost) down. If a company can't be resolved to any ATS,
you are not charged for it.
FAQ
Is this legal? The actor reads the same public, unauthenticated job-board APIs each ATS vendor provides precisely so postings can be embedded and read. No logins, no personal data, no rate-limit evasion.
A company isn't detected. Some companies use an ATS we don't support yet, a
custom careers site, or a non-standard board slug. Pass an explicit careers URL
(e.g. https://boards.greenhouse.io/theirslug) — or open an issue and we'll
add detection.
How fresh is the data? Live — every run hits the ATS APIs directly.