Track Hiring Changes on Greenhouse Boards
Pricing
from $10.00 / 1,000 board checks
Track Hiring Changes on Greenhouse Boards
Detect public Greenhouse job board changes between observations, with baseline-aware summaries of new, missing, and updated job posts.
Pricing
from $10.00 / 1,000 board checks
Rating
0.0
(0)
Developer
yohei kotani
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Hiring Activity Monitor
Detect changes in a company's public Greenhouse job board between observations.
This Actor is intentionally a hiring-activity monitor, not a generic job scraper. Each successful check compares the current public board with the previous snapshot for the same monitor and returns new, missing, and changed job posts.
Supported source
MVP support is limited to the public Greenhouse Job Board API. No proxy, browser automation, AI API, or external database is used.
Input
{"targets": [{"board": "greenhouse","monitorId": "greenhouse-main","label": "Greenhouse Software"}]}
targetscontains 1 to 25 targets.boardaccepts a Greenhouse board token, aboards.greenhouse.ioURL, or ajob-boards.greenhouse.ioURL.monitorIdis optional and defaults todefault. Use a different value to keep separate observations for the same board.- A
boardplusmonitorIdpair must be unique within one run.
Output
The default dataset receives one record for each processed target.
baseline_created— the first successful observation. Existing jobs are recorded as the baseline, not reported as newly added.success— a comparison with the previous successful observation.error— an input, Greenhouse retrieval, validation, or storage-preflight error. It does not advance the monitor state.
Successful records include an observationId, a summary, the current
normalized jobs, and changes.added, changes.removed, and
changes.updated. Consumers can use observationId to deduplicate outcomes
when retrying runs.
removed means that a job was present in the preceding observation but is
absent from the current Greenhouse response. It does not prove when, or why,
the role closed.
To keep a dataset item within the platform limit, details may be shortened and
detailsTruncated set to true. Summary counts always remain complete.
State and isolation
The Actor stores the full normalized snapshot in a named Apify Key-value Store
owned by the Apify account running the Actor. State is keyed by the normalized
board token and monitorId; internal store IDs and state keys are not emitted
in the dataset.
This relies on Apify account storage boundaries. Run the Actor through an authenticated Apify account when continuity is required. Stateless or account-less payment flows are not supported for stateful monitoring.
Do not run the same board and monitorId concurrently. The MVP deliberately
uses at-least-once processing rather than distributed locking or exactly-once
semantics. If state persistence fails after a successful charge, a later retry
can emit the same observationId again.
Pricing
| Event | Price | When charged |
|---|---|---|
board-check | $0.01 | One successfully checked board, including a baseline or unchanged board |
apify-actor-start | $0.00005 | Automatically when the Actor starts |
The default-dataset-item event is disabled. Greenhouse, input, validation, and
state-size errors do not charge board-check and do not update state. The
automatic Actor-start event still applies to every run.
Set a run maximum cost high enough for the requested checks: at least
$0.00005 + ($0.01 × number of boards). The configured minimum is $0.011,
which permits one board check. When the board-check cost limit is reached, the
Actor stops before processing later targets.
Operational limits
- Greenhouse response cap: 10 MiB.
- Persisted state safe cap: 8 MiB.
- Dataset item safe cap: 8 MiB.
- Greenhouse prospect posts (
internal_job_id: null) are excluded from comparisons and reported only as a count. - Transient Greenhouse failures such as timeout, HTTP 429, and HTTP 5xx are retried up to two times. Invalid responses and HTTP 4xx errors other than 429 are not retried.
API and MCP use
Run this Actor through the standard authenticated Apify API or an authenticated
Apify MCP integration. Preserve the same Apify account and monitorId across
runs to retain the baseline. The dataset's JSON records are designed for
machine consumption; no AI model is required.
Development
Requires Node.js 22.18 or later.
npm testnpm start
Before a Store release, verify the daily test, pricing configuration, and runtime cost on the intended Apify account. This repository's Actor is kept private until publication is explicitly approved.