ATS Job Change Alerts (Greenhouse + Lever) avatar

ATS Job Change Alerts (Greenhouse + Lever)

Pricing

from $0.05 / 1,000 job listing / changes

Go to Apify Store
ATS Job Change Alerts (Greenhouse + Lever)

ATS Job Change Alerts (Greenhouse + Lever)

Watch Greenhouse/Lever public career APIs for new/updated/removed jobs; tags remote, visaSponsorship, isAiRole. No job body or recruiter contacts.

Pricing

from $0.05 / 1,000 job listing / changes

Rating

0.0

(0)

Developer

Hanxiao Yang

Hanxiao Yang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Security

Limited permissions

Share

ATS Job Change Alerts — Greenhouse & Lever Job Monitor

Keywords: job change alerts, Greenhouse jobs API, Lever jobs scraper, new job postings monitor, remote jobs visa sponsorship, AI jobs tracker, hiring signals.

Watch company career boards via their official public job-board APIs and get only new / updated / removed jobs, auto-tagged:

  • remote (true / false / null=unknown) from workplace type & location
  • visaSponsorship (yes / no / unknown) from sentence-level rules on the posting text (text itself is not output)
  • isAiRole (title/department rules; excludes sales/recruiting titles)

Input

fielddefault
boards[]e.g. ["greenhouse:stripe","lever:spotify"] (slug from the board URL)
useSeedBoardstrue if boards empty18 verified boards (Stripe, Anthropic, Databricks, GitLab, Palantir…)
remoteOnly, aiRolesOnlyfalse
visaSponsorship–e.g. ["yes"]
keywords, locations–substring match on title/department, locations
onlyChangestruefalse = also emit unchanged
stateStoreNameats-jobs-stateuse one per saved search
delaySeconds1.0Lever crawl-delay

First run emits every matching job as new; later runs emit only diffs. Removal is only reported for boards that were fetched successfully this run. A job that stops matching your filters is reported as removed.

Example input

{
"boards": ["greenhouse:stripe", "lever:spotify"],
"remoteOnly": true,
"onlyChanges": true,
"stateStoreName": "my-remote-watch"
}

Sample output

{
"jobKey": "greenhouse:airbnb:8031901",
"company": "Airbnb",
"title": "Data Scientist - Algorithms, Community Support",
"locations": ["United States"],
"remote": true,
"visaSponsorship": "unknown",
"isAiRole": true,
"changeType": "new",
"url": "https://careers.airbnb.com/positions/8031901?gh_jid=8031901"
}

Live run (2026-10-11, local Apify mode)

19 boards (18 seed + 1 bogus) → 5,075 jobs in 36 s, 1 error (bogus board, logged); 2nd run: 0 changes. Tags: remote true 886 / false 1,186 / unknown 3,004; visa yes 642 / no 428 / unknown 4,005; AI roles 478.

Limits

Rule tagging is heuristic (precision not measured on live data beyond fixtures). Ashby not supported (see COMPLIANCE.md).

Use cases & scheduling

  • Daily job alerts — schedule daily; after the first run you only get new, updated and removed jobs.
  • Remote + visa sponsorship jobs — remoteOnly: true, visaSponsorship: "yes".
  • AI/ML role tracking — aiRolesOnly: true across Greenhouse and Lever boards.
  • Hiring signals for sales / investors — watch competitors' or target accounts' boards for new teams and locations.
  • Recruiting research — export a full snapshot with onlyChanges: false.

Tip: create an Apify Schedule for the Actor or one of the tasks below to turn it into a recurring monitor, and add a webhook/integration to get results in Slack, email or Google Sheets.

Ready-made example tasks

One-click, pre-filled inputs you can run or copy:

FAQ

Which job boards are supported?
Greenhouse and Lever public job-board APIs. Use the slug from the board URL, e.g. greenhouse:stripe, lever:spotify. Ashby/Workday are not supported.

Why did the first run return every job?
The first run establishes a baseline per stateStoreName; later runs return only diffs. Use one state store per saved search.

How accurate are remote/visa tags?
They are rule-based on workplace type, location and posting sentences; unknown is common. Verify on the posting.

Is the posting text included?
No — only metadata and tags plus the link to the original posting.