ATS Jobs Scraper & Change Monitor avatar

ATS Jobs Scraper & Change Monitor

Pricing

Pay per event + usage

Go to Apify Store
ATS Jobs Scraper & Change Monitor

ATS Jobs Scraper & Change Monitor

Get every open job from any company's career page — Greenhouse, Lever, Ashby, SmartRecruiters — normalized into one schema. Monitor mode returns only what changed: new, removed and edited postings. Official job-board APIs, no proxies. Watch 100 companies daily for ~$8/month.

Pricing

Pay per event + usage

Rating

0.0

(0)

Developer

Захар Бараненко

Захар Бараненко

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

ATS Jobs Scraper & Change Monitor — Greenhouse, Lever, Ashby, SmartRecruiters

Give it a list of companies — get every open job from their career pages, normalized into one clean schema. Switch on monitor mode and each scheduled run returns only what changed: new postings, removed postings, edited postings (title, location, salary). No proxies, no scraping tricks — the Actor reads the same public job-board APIs the career pages themselves use.

What you get

Each job record:

FieldExample
company / atsstripe / greenhouse
titleBackend Engineer, Payments
department / teamEngineering / Payments
locationNew York · Remote
remotetrue
employment_typeFull-time
salary_min / salary_max / salary_currency140000 / 180000 / USD (where the board exposes it)
urldirect apply link
published_at / updated_atISO dates

In monitor mode, change records add "change": "new" | "removed" | "changed".

Supported ATS (auto-detected)

  • Greenhouseboards.greenhouse.io/...
  • Leverjobs.lever.co/...
  • Ashbyjobs.ashbyhq.com/...
  • SmartRecruiterscareers.smartrecruiters.com/...

Pass a bare slug (stripe), a career-page URL, or an explicit greenhouse:stripe. The Actor probes all four ATS for bare slugs and caches the answer, so later runs are fast.

Two modes

Pull — returns all current jobs every run. Good for one-off datasets and lead lists.

Monitor (default) — the first run saves a baseline; every later run compares and returns only the diff. Put the Actor on a daily schedule and pipe the dataset into Slack, n8n, Make or a webhook: you get pinged the day a company opens (or quietly closes) a role. You pay cents for the change records instead of re-downloading a 500-job board every day.

Who uses this

  • Recruiting agencies — a company opening 5 sales roles is a placement opportunity. Be first.
  • B2B sales / GTM teams — job postings are buying signals: a new Head of Data means data-tooling budget. Watch your target accounts' hiring instead of paying $99+/mo for a signals platform.
  • Job seekers (power users) — watch your 30 dream companies and apply on day one, not when the posting hits aggregators.
  • Analysts & founders — track competitors' headcount moves by department.
  • AI agents — callable via Apify MCP: “what is company X hiring for right now?”

Pricing

Pay per event, no subscription:

EventPriceWhen
Company checked$0.002each company successfully fetched
Job result$0.002each job row (pull mode, first baseline, or optional snapshot)
Change found$0.008each new / removed / changed posting in monitor mode

Typical spend: watching 100 companies daily with ~10 changes a day ≈ $8–9/month. Companies that fail (no supported board found) are never charged.

Example: Slack alert on a competitor's new job (n8n)

  1. Schedule this Actor daily with your watchlist, mode = monitor.
  2. n8n → Apify node: “Get dataset items” from the last run, filter record_type = change, change = new.
  3. Slack node: post {{company}} just opened: {{title}} ({{location}}) — {{url}}.

The same three steps work in Make, Zapier or a plain webhook.

Input example

{
"companies": ["stripe", "linear", "https://jobs.lever.co/spotify"],
"mode": "monitor"
}

FAQ

Where does the data come from? From the public job-board APIs of each ATS — the same JSON the company's own careers page loads. No login, no proxies, no personal data: only public job postings.

A company isn't found? Its careers site runs on an ATS we don't support yet (e.g. Workday) or uses a custom board. You are not charged for it. Tell us in the Issues tab — the next ATS integrations are prioritized by requests.

How do I reset the monitor baseline? Delete the ats-jobs-monitor-state key-value store in your Apify console (Storage → Key-value stores) — the next run rebuilds it.