Job Postings Aggregator – Multi-ATS Jobs Feed avatar

Job Postings Aggregator – Multi-ATS Jobs Feed

Pricing

Pay per event

Go to Apify Store
Job Postings Aggregator – Multi-ATS Jobs Feed

Job Postings Aggregator – Multi-ATS Jobs Feed

One feed of new job postings across Greenhouse, Lever, Ashby, SmartRecruiters and Recruitee. Filter by title, location or remote; dedup means scheduled runs only return new roles. For recruiters, job boards and hiring-signal feeds.

Pricing

Pay per event

Rating

0.0

(0)

Developer

K O

K O

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

One clean feed of new job postings across five major ATS platforms — Greenhouse, Lever, Ashby, SmartRecruiters and Recruitee — 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 five 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

FieldDescription
sourcesList of "<ats>:<company>" entries. Supported ats: greenhouse, lever, ashby, smartrecruiters, recruitee. The company is the slug from that ATS's careers URL. E.g. greenhouse:stripe, lever:ro, ashby:Ramp.
titleIncludesKeep only jobs whose title contains one of these keywords (case-insensitive). Empty = all.
locationIncludesKeep only jobs whose location contains one of these keywords. Empty = all.
remoteOnlyKeep only remote-flagged roles (or locations mentioning remote).
onlyNewSinceLastRunRecommended for schedules — skips jobs already returned by a previous run.
maxItemsStop 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

ATSSlug is the part of the careers URL
Greenhousejob-boards.greenhouse.io/<slug>
Leverjobs.lever.co/<slug>
Ashbyjobs.ashbyhq.com/<slug>
SmartRecruitersjobs.smartrecruiters.com/<slug>
Recruitee<slug>.recruitee.com

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