Greenhouse Hiring Change Feed
Pricing
$5.00 / 1,000 board observations
Greenhouse Hiring Change Feed
Monitor up to ten public Greenhouse job boards per run for new, changed, removed and reappearing postings. Title/location filters, retained history and confirmed removals. Export jobs and change evidence as JSON or CSV. Independent service; no applicant data.
Pricing
$5.00 / 1,000 board observations
Rating
0.0
(0)
Developer
Copperline Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Monitor a company watchlist for new, changed, removed and reappearing public job postings. Get relevant results using job-title and location filters, without rebuilding a comparison pipeline yourself.
Useful for recruiter watchlists, employer research, job-market dashboards and AI-agent data feeds. This is a monitoring service, independent of Greenhouse and the monitored companies. A new posting is not proof of an actual hire or approved budget; removal is not proof that a role was filled.
Why use this monitor?
- One run checks up to ten company boards. A bad board does not stop valid boards.
- Automatic per-user baselines compare later runs without manual snapshot inputs.
- By default, a removed-post alert needs two consecutive complete observations. Caps, API failures and unexpectedly empty responses cannot trigger mass-removal alerts.
- Unknown location values cannot invent a location change.
- Title/location filters affect output, preserving the full baseline. Moving out of a filter is labeled
left_filter, not a closed job. - First/last-seen timestamps refer to this monitor's observations, not invented publication dates.
- Reappearing job identifiers retain observation history for up to 30 days after removal.
- Source hashes, timestamps and explicit field differences make reports inspectable.
- Separate summary, change-feed and matching-job dataset views support JSON, CSV and Excel exports through Apify.
Quick start
Use your public employer watchlist:
{"boards": ["figma", "airbnb"],"keywords": ["engineer", "designer"],"locations": ["Canada", "Remote"],"monitorKey": "my-watchlist","maxJobs": 1000,"retainBaseline": true,"removalConfirmations": 2}
The first complete run establishes baselines and returns matching current jobs. It produces no historical change events without a prior observation. Schedule sequential daily runs of an Apify task to receive later changes. Use the default dataset Summary view for counts, Change feed for events, and Matching jobs for current listings.
Inputs
| Input | Meaning |
|---|---|
mode | collect (default) or compare supplied snapshots |
board | Single Greenhouse token or approved public US board/job URL |
boards | Up to ten entries; overrides board when nonempty; duplicates fetched once |
keywords | Up to twenty case-insensitive title substrings; any term may match |
locations | Up to twenty location substrings; any may match; title filter must also match |
maxJobs | Per-board cap, 1–5000, default 1000; cap makes observation incomplete |
retainBaseline | Default true; complete observations are retained in your account |
monitorKey | Separate workflows; 1–50 letters, numbers, underscores or hyphens |
removalConfirmations | 1–3 complete absence checks; default 2; retained collection history only |
includeSnapshot | Default false for compact reports; full observations are also in run storage |
previousSnapshot | Optional supplied baseline, overriding retained comparison input; single-board only |
currentSnapshot | Compare mode only: board, timestamp, completeness and job facts |
Changing filters does not reset the full-board baseline or falsely declare existing jobs newly posted. If retention is disabled, supplied snapshot comparisons do not have multiple historical confirmation checks. Run each monitor key sequentially; overlapping runs are not supported.
Results
One report per successfully observed board, containing:
status,mode,board,observed_at,complete,job_countdescribe the source observation.matched_count,matching_jobscontain relevant current public facts: job identifier, title, location (or unknown), public URL, source update timestamp when supplied, and monitor first/last-seen timestamps when available.change_count,counts,changescontain additions, changed fields, filtered entry/exit, confirmed removals and reappearances. Changes include job identifiers, observation timestamps and before/after values where applicable.warningsexplains incomplete observations, unknown fields and pending removal confirmation.comparisonincludes baseline/current hashes and timestamps.evidenceincludes API URL, HTTP status, response bytes, SHA-256 and API total.baseline_sourceidentifies none, supplied or retained.baseline_eligibleidentifies a complete delivered snapshot eligible for saving. Final save outcomes are inRUN_STATEunderbaseline_saved.snapshotis included only when requested; otherwise it is an empty object.limitationsrecords interpretation limits.
Run storage contains SNAPSHOTS (current observations by board), ERRORS and RUN_STATE. Actor-created named storage in the running user's account contains BASELINE and HISTORY, separated by board and monitor key. Data is not shared across customers. Delivery happens before advancing the baseline so an undelivered result cannot silently consume the next comparison.
Source, security and limits
Only the documented public Greenhouse Job Board API GET endpoint is used. Greenhouse states these GET data are public and need no authentication. No application submissions, applicant records, private APIs, recruiter contacts, descriptions or salaries are collected.
The API host is fixed; redirects and arbitrary request hosts are rejected. DNS addresses are validated and pinned; TLS certificates are verified. One GET per board, with a one-second pause between boards. HTTP timeout 15 seconds. Maximum ten boards, 5000 jobs per board, 2 MB input and 2 MB per API response. API totals must match for a complete observation. Duplicate or malformed identifiers are rejected. US-hosted Greenhouse boards only; other ATSs and EU Greenhouse endpoints are not supported in this release.
Incomplete/capped observations never replace a complete baseline or advance removal counters. Unexpectedly empty responses after nonempty boards suppress all removals for review. History is bounded to 10,000 records per monitor, with removed-post history kept at most 30 days. First-seen means first observed by this monitor, not actual publication date.
Pricing and support
Introductory price: US$0.005 per delivered board report (half a US cent), including the initial baseline, matching jobs and change events. No per-job or extra per-change fee; no report is produced for a failed board. A delivered capped/partial report still counts as one report and clearly states its limitations. Ten delivered boards cost US$0.05. There is no run-start fee. Platform usage is included in this price for customers. Check Apify's Pricing tab for the current active rate.
No external subscription, paid model or proxy purchase is required by the code. The Apify SDK enforces the buyer's run spending limit and collection stops before another board when a report cannot be charged within it. Platform charges, taxes and creator payouts follow Apify's terms.
Report reproducible issues through Apify's issue interface without private data or credentials. No call or meeting is part of this service. No customer, earnings or superiority claims are made without evidence.