Ats Job Change Monitor avatar

Ats Job Change Monitor

Pricing

from $3.00 / 1,000 job observations

Go to Apify Store
Ats Job Change Monitor

Ats Job Change Monitor

Track Greenhouse and Lever job boards for new, updated, and removed job postings. Monitor employer hiring changes, extract clean job listings, and automate career page alerts with stateful baselines. Built for recruiters, market intelligence, and job aggregators. Fast, reliable, no login required.

Pricing

from $3.00 / 1,000 job observations

Rating

5.0

(1)

Developer

Emmanuel Uchenna

Emmanuel Uchenna

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What does this Actor do?

Collect public employer job postings from Greenhouse and Lever, or compare them with a saved baseline to find new, updated, and removed board listings. Select the employers you want to monitor instead of starting with a broad keyword search across unrelated companies. The Actor uses public job board GET endpoints and does not collect applicant data, submit applications, or log into an account.

Use snapshots for a current research sample. Use changes mode for a recurring hiring-market watch, an employer job-feed integration, or an internal review queue. A job disappearing from a public board is reported as removed-from-board; that observation does not prove that a vacancy was filled.

Get started

{
"boards": [{"provider":"greenhouse","boardToken":"stripe","companyLabel":"Stripe"}],
"mode":"snapshot",
"maxItems":25,
"titleKeywords":["engineer"],
"includeDescriptions":false
}

Find the board token in the employer's public careers URL. For Greenhouse, use its board token; for Lever, use the site slug. Provide a token rather than a complete URL. companyLabel is your label for the board, not an independently verified company attribute. This release uses the global Lever API; region-specific Lever endpoints are outside the current scope.

Track changes across runs

Set mode to changes and supply stateStoreName, for example my-employer-monitor. Reuse that name for the same workflow. The first run emits matching jobs as new unless you select baselineOnly: true. A baseline-only run saves state without creating job-result events, while startup and platform usage can still apply.

Later runs emit new, updated, removed-from-board, or no-longer-matches records. Source failures, malformed responses, and incomplete pagination preserve the previous baseline and do not produce removal observations. A successful empty board can produce removals, because its complete response establishes that the previously observed postings are absent from that board.

Keep one active run per state store. Dataset and state writes are separate operations, so an interrupted run can cause a repeated observation. Deduplicate downstream by the stable id, observation time, and change type. A limited run updates state only for emitted changes; pending changes can be emitted in a later run.

Input and limits

Choose 1-10 boards and at most 1000 saved result records per run. Each source board is bounded to 5000 postings and 10 MB of JSON responses. Requests use timeouts and a complete-board fetch has a 90-second bound. A source that exceeds those limits fails safely instead of replacing the baseline with a truncated result set.

titleKeywords and locationKeywords are case-insensitive substring filters. They do not classify seniority, validate geographic eligibility, or establish that a role is still accepting applications. Description output is optional and limited to 30000 characters per job. Large Greenhouse boards may require descriptions to remain disabled to fit the source-response cap.

Output

Each dataset row includes id, source_job_id, provider, board_token, company_label, title, location, department, employment_type, job_url, apply_url, source timestamps when available, observed_at, change_type, and changed_fields. Missing source fields remain null. In Greenhouse metadata mode, an updated source timestamp can identify an update without identifying which unrequested description text changed.

Use RUN-SUMMARY for per-board coverage, saved counts, and pending changes. Use ERRORS for non-billable board failures. Preserve source job links in your destination so an analyst can verify an observation before acting on it.

Pricing

The release proposes one job-result event per saved snapshot or change observation at $0.003 per event ($3 per 1000 observations). Unchanged records and failed board requests do not create this event. The proposed automatic startup event is $0.00005 per allocated GB, with platform usage separate during the canary phase. Inspect the actual Pricing tab before starting a paid run.

The proposal in .actor/pricing.json is not active simply because source code was deployed. Configure and verify the pricing contract in Apify Console before public release. Do not add a second default-dataset-item fee for the same result.

Scheduling and support

Save a tested input as a task, then choose a schedule that matches the employers' update frequency and your budget. A daily or weekly observation is a point-in-time sample, not a complete history of every intermediate change. Read the dataset through the Apify API or an authorized downstream integration after the run succeeds.

For support, include the run ID, provider, public board token, and a sanitized input in an issue. Do not include API tokens or private applicant information. Source contracts: Greenhouse Job Board API and Lever Postings API.