Career Site Jobs API – Greenhouse, Lever, Ashby & More ATS
Pricing
from $7.00 / 1,000 job records
Career Site Jobs API – Greenhouse, Lever, Ashby & More ATS
Unified Career Site Job Listings API across Greenhouse, Lever, Ashby, SmartRecruiters & Recruitee — one feed, many ATS platforms. Filter by title, location or remote; dedup returns only new roles on scheduled runs. Pay-per-job. For recruiters & job boards.
Pricing
from $7.00 / 1,000 job records
Rating
0.0
(0)
Developer
K O
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
18 days ago
Last modified
Categories
Share
Job Postings Aggregator – Multi-ATS Jobs Feed
One clean feed of new job postings across six major ATS platforms — Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee and Workable — from a single company list. Filter by title, location, or remote, and let built-in deduplication mean a scheduled run only returns newly-posted roles. Every job comes back in the same normalized shape no matter which ATS it came from.
Who uses it
Recruiters and sourcers tracking a list of target companies, niche and aggregator job boards, sales teams watching accounts for hiring signals, and labor-market/HR-tech products that need one consistent jobs schema instead of five different APIs.
Why this is worth charging for
Each ATS has its own API, its own field names, its own quirks (Lever hands you epoch milliseconds, Recruitee a non-standard timestamp, SmartRecruiters pages by offset and nests every value behind {label}). Wiring up all six and diffing runs to find what's new is real work. This actor gives you one input, one output schema, one dedup layer — and only charges for jobs that pass your filters.
Input
| Field | Description |
|---|---|
sources | List of "<ats>:<company>" entries. Supported ats: greenhouse, lever, ashby, smartrecruiters, recruitee, workable. The company is the slug from that ATS's careers URL. E.g. greenhouse:stripe, lever:ro, ashby:Ramp, workable:walter-careers. |
titleIncludes | Keep only jobs whose title contains one of these keywords (case-insensitive). Empty = all. |
locationIncludes | Keep only jobs whose location contains one of these keywords. Empty = all. |
remoteOnly | Keep only remote-flagged roles (or locations mentioning remote). |
onlyNewSinceLastRun | Recommended for schedules — skips jobs already returned by a previous run. |
maxItems | Stop after this many normalized records. |
Filters are applied before billing, so you're never charged for jobs you filtered out.
Output
Each dataset item is one normalized job, identical shape across every ATS:
{"jobId": "03e2d4e1","ats": "ashby","company": "Ramp","title": "Solutions Consultant","location": "Remote (US)","department": "Sales","employmentType": "FullTime","remote": true,"postedAt": "2026-07-07T20:47:09.753+00:00","url": "https://jobs.ashbyhq.com/Ramp/03e2d4e1","applyUrl": "https://jobs.ashbyhq.com/Ramp/03e2d4e1/application","source": "Jobs Aggregator"}
Pricing (Pay-Per-Event)
query— charged once per run for the poll across your sources.job-record— charged per normalized job pushed (after filtering). This is the primary event.apify-actor-start(Apify-managed) — covers baseline compute per run.
A daily monitor of a target-account list with a title filter returns just the handful of relevant new roles for pennies.
Finding company slugs
| ATS | Slug is the part of the careers URL |
|---|---|
| Greenhouse | job-boards.greenhouse.io/<slug> |
| Lever | jobs.lever.co/<slug> |
| Ashby | jobs.ashbyhq.com/<slug> |
| SmartRecruiters | jobs.smartrecruiters.com/<slug> |
| Recruitee | <slug>.recruitee.com |
| Workable | apply.workable.com/<slug> |
Source & reliability
All five sources are public ATS job-board APIs. No API keys, no proxies. Run npm test for the offline self-test covering the source parser and every ATS's field mapping.
SEO keywords: jobs aggregator, multi ATS scraper, Greenhouse Lever Ashby scraper, job postings API, new jobs feed, hiring signals, recruiting data, job board aggregator, ATS jobs feed