ATS Jobs Monitor · Greenhouse, Lever & Ashby avatar

ATS Jobs Monitor · Greenhouse, Lever & Ashby

Pricing

from $1.50 / 1,000 job records

Go to Apify Store
ATS Jobs Monitor · Greenhouse, Lever & Ashby

ATS Jobs Monitor · Greenhouse, Lever & Ashby

Monitor job postings across Greenhouse, Lever & Ashby in one unified schema. Track any companies, filter by title, location & remote, and get only what changed — new, updated & removed jobs on every run. Built on official public job APIs: fast, reliable, no proxies needed.

Pricing

from $1.50 / 1,000 job records

Rating

0.0

(0)

Developer

ScrapeFlux

ScrapeFlux

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

ATS Jobs Monitor — Greenhouse, Lever & Ashby

Monitor job postings across the three most popular startup ATS platforms — Greenhouse, Lever, and Ashby — in one unified, normalized schema. Track any number of company boards, filter by title/location/remote, and (the killer feature) run in monitor mode to get only what changed since the last run: new postings, updated postings, and removed postings.

Built on the platforms' public job-board APIs — no browser, no proxies, fast and reliable.

Use cases

  • Recruiting & sourcing: watch competitors' hiring across all three ATSs from one schedule
  • Hiring signals for sales/VC: a company opening 10 engineering roles is a buying/growth signal — get change_type: "new" rows the day it happens
  • Job aggregators & alerts: clean, deduplicated, cross-ATS feed with salary data where published
  • Labor-market research: normalized departments, locations, remote flags, and salary ranges

Input

FieldTypeRequiredDescription
greenhouseBoardsArray*Greenhouse board tokens (boards.greenhouse.io/<slug>)
leverCompaniesArray*Lever company slugs (jobs.lever.co/<slug>)
ashbyBoardsArray*Ashby board names (jobs.ashbyhq.com/<slug>)
titleIncludesArrayNoKeep jobs whose title contains any keyword (case-insensitive)
locationIncludesArrayNoKeep jobs whose location matches any keyword
remoteOnlyBooleanNoKeep only remote jobs
postedAfterStringNoKeep jobs posted on/after this ISO date
includeDescriptionBooleanNoInclude full descriptions (HTML + text), default false
monitorModeBooleanNoOutput only deltas vs. the previous run (default false)
snapshotKeyStringNoState namespace for monitor mode (default "default")
maxResultsIntegerNoCap on output rows

* At least one of the three board lists is required.

Output

One record per job posting (or per changed job posting in monitor mode), in a unified snake_case schema across all three sources:

{
"source": "greenhouse",
"company_slug": "stripe",
"company_name": "Stripe",
"job_id": "7954688",
"title": "Account Executive, AI Sales",
"department": "Sales",
"team": null,
"location": "San Francisco, CA",
"all_locations": ["San Francisco, CA"],
"location_type": null,
"remote": false,
"employment_type": null,
"posted_at": "2026-06-02T12:58:57.000Z",
"updated_at": "2026-06-26T21:05:44.000Z",
"salary_text": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"description_text": null,
"description_html": null,
"url": "https://stripe.com/jobs/search?gh_jid=7954688",
"apply_url": "https://stripe.com/jobs/search?gh_jid=7954688",
"change_type": "new",
"scraped_at": "2026-07-13T10:00:00.000Z"
}

change_type is "new", "updated", or "removed" in monitor mode, null otherwise. Salary fields are populated when the source publishes them (Lever salaryRange, Ashby compensation tiers, Greenhouse pay ranges).

Monitor mode

Set monitorMode: true and run the actor on a schedule (e.g. daily). The first run outputs every matching job as "new" and saves a snapshot; subsequent runs output only differences and update the snapshot. State is kept per snapshotKey, so separate watchlists don't interfere. A board that fails to fetch is skipped without generating false "removed" records.

Pricing

Pay Per Event — you are charged per job record written to the dataset. In monitor mode you only pay for actual changes, which makes scheduled monitoring extremely cheap.