Track Hiring Changes on Greenhouse Boards avatar

Track Hiring Changes on Greenhouse Boards

Pricing

from $10.00 / 1,000 board checks

Go to Apify Store
Track Hiring Changes on Greenhouse Boards

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

yohei kotani

Maintained by Community

Actor 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"
}
]
}
  • targets contains 1 to 25 targets.
  • board accepts a Greenhouse board token, a boards.greenhouse.io URL, or a job-boards.greenhouse.io URL.
  • monitorId is optional and defaults to default. Use a different value to keep separate observations for the same board.
  • A board plus monitorId pair 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

EventPriceWhen charged
board-check$0.01One successfully checked board, including a baseline or unchanged board
apify-actor-start$0.00005Automatically 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 test
npm 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.