Greenhouse & Ashby Job Change Monitor avatar

Greenhouse & Ashby Job Change Monitor

Pricing

from $0.35 / completed job board report

Go to Apify Store
Greenhouse & Ashby Job Change Monitor

Greenhouse & Ashby Job Change Monitor

Monitor up to 5 public Greenhouse and Ashby job boards. Export new, removed and edited jobs in CSV, JSON and an HTML report. Reuse a saved baseline for recurring checks; failed fetches preserve it. Salary and workplace fields appear only when supplied.

Pricing

from $0.35 / completed job board report

Rating

0.0

(0)

Developer

yipee Gameplay

yipee Gameplay

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Track what changed on your target companies' Greenhouse and Ashby job boards: new roles, removed postings, and edits to titles, locations and selected job fields. For Ashby, compare published salary and remote/hybrid/onsite fields when the source supplies them.

Save a baseline once, then run recurring checks to build a hiring-change feed for recruiting research, target-company monitoring or job-market analysis. Reports include exact before/after values, board health and CSV/JSON exports.

One report covers up to 5 named boards. Base price: $0.50 per completed report + $0.00005 per start; platform usage included. Jobs and findings are not individually billed. First-baseline and no-change reports also incur the report fee. The live Pricing tab shows your current price and tier discounts.

You can inspect the synthetic output below before running. Run the same sample with the displayed Actor price; it needs no live board or baseline store.

Preview the example output

The synthetic demo produces the following changes. Reading this preview does not start a run:

ChangeExample
NewDeveloper Advocate appears
RemovedOperations Analyst is absent from the complete current board
ChangedData Engineer changes from Hybrid to Remote and its published salary range changes from $100,000–$130,000 to $115,000–$145,000

The default dataset contains one report summary, not one charged item per job. Open Readable change report for board health and expandable before/after details. JSON, CSV and snapshot downloads appear alongside it.

Monitor real boards

  1. Choose Live named boards.
  2. Enter one to five board objects. Greenhouse's board token appears in its hosted careers URL; Ashby's board name appears after jobs.ashbyhq.com/. Slugs are case-sensitive. Do not paste a whole URL.
  3. For automatic comparison, create a named key-value store in your Apify account and select it under Persistent baseline store. Its ID is supplied by the picker. First run establishes a baseline; subsequent runs report differences.
  4. Save a task and add an Apify schedule. Run a single schedule at a time against each baseline store. Choose a frequency that matches how quickly you need changes; this Actor does not send messages or create schedules itself.
{
"mode": "live",
"boards": [
{"provider": "greenhouse", "board": "YOUR_BOARD_TOKEN"},
{"provider": "ashby", "board": "YourCompany"}
],
"baselineStoreId": "YOUR_17_CHAR_ID_HERE"
}

Replace the placeholders with actual slugs and the selected store ID. You can omit baselineStoreId and pass a previous SNAPSHOT object as previousSnapshot instead. With neither input, the run produces a first baseline rather than treating every existing job as new.

Plan the recurring cost

At the base price, one scheduled report per day is $15.0015 for 30 runs. A 12-run month is $6.0006. These examples assume the same $0.50 report + $0.00005 start price, successful report generation, no extra runs, and unchanged pricing. Each report may cover all five boards within the stated limits.

Run only as often as your workflow needs. A report with no detected changes still incurs the report fee. If you already store prior SNAPSHOT outputs, supplying previousSnapshot avoids creating a separate persistent store; your workflow must pass the correct baseline each time.

Automation example

Named board → saved task → daily schedule → report → your downstream workflow. Keep the board list and named store consistent between runs. On a successful run, read the default dataset's one summary item. If newJobs, removedJobs or changedJobs is greater than zero, use the REPORT or changes.csv record in that run's default key-value store. If boardsFailed is nonzero, inspect per-board health before drawing conclusions.

Apify's API tab provides the request and authorization code for your task. A downstream Make, n8n or API workflow can consume the returned report; configure any delivery destination yourself. API tokens never belong in Actor input. To replay saved observations with no source requests, choose Compare saved snapshots and supply previousSnapshot and currentSnapshot objects copied from this Actor's SNAPSHOT output.

What is compared

FieldGreenhouseAshby
Title, location, departments and job URLYesYes
Secondary office/location namesWhen returnedWhen returned
Team and employment typeUnavailableWhen returned
Explicit remote / hybrid / onsite valueUnavailableWhen returned
Exact structured compensationUnavailable in the list endpointWhen returned
Description changeSHA-256 hashSHA-256 hash

Missing values remain null; they are not inferred from titles or descriptions. Compensation retains the source's reported currency, interval, ranges and summaries, without currency conversion or annualization. Formatting edits may alter a description hash. Timestamp-only edits do not count as substantive changes.

Greenhouse identity uses its post ID. Ashby identity uses its documented job URL, so a URL change is reported as a removal plus an addition. The monitor excludes Ashby isListed: false postings. An absent posting means removed from the public board, not proof it was filled or that the company stopped hiring.

Reports and baseline safety

  • REPORT: summary, per-board health and up to 1,000 complete change details.
  • changes.csv: formula-escaped change rows, summary and board health rows.
  • report.html: readable report with expandable exact differences and no external scripts.
  • SNAPSHOT: normalized observations to reuse later. Failed boards retain their previous complete snapshot when one exists.

Statuses distinguish baseline_created, no_change, changes_found, partial_success and failed boards. HTTP errors, 429 rate limits, invalid JSON, duplicates, incomplete responses and exceeded limits never produce removals or replace a good baseline. A genuinely complete empty board can produce removals.

Persistent snapshots use separate JOBS-V1-* records for each board in the selected named store. Only that supplied store requests read/write access; limited permissions are sufficient. Store access errors are reported. A pre-write recheck detects many overlapping-run conflicts, but storage and billing are not atomic. Do not overlap runs using the same baseline store. A storage write warning can cause the next run to repeat changes; the completed report remains downloadable.

Price and limits

Launch configuration: $0.50 per completed bounded report, plus $0.00005 per Actor start at 256 MB. Platform usage is included. One report can cover up to five boards; findings and jobs are not charged individually. Set a maximum total charge of $0.51 or higher at these prices. The Store pricing page is authoritative.

First-baseline, no-change, synthetic demo and partial-success reports are completed reports and incur the report fee. If every live board fails, the run saves diagnostic reports and fails without charging a completed-report event; the start fee may still apply. The runtime checks the remaining report budget before source requests.

Limits: five boards, 1,000 jobs per board, 2,500 jobs per run, 4 MB per source response, 1.5 MB per normalized board and 4 MB per normalized snapshot. Source requests use two concurrent connections at most, a 20-second hard deadline each and no redirects or retries. The recommended Actor timeout is 120 seconds with restart-on-error off. Full change counts are returned even if details exceed the 1,000-change cap. A board that exceeds a fetch or job limit is failed as a whole; its snapshot is not silently truncated.

Source scope and support

This Actor uses the documented Greenhouse Job Board API and Ashby public job-posting API. It makes one list request per selected board. No login, proxy, arbitrary URLs, application endpoints, candidate information or inferred personal profiles are used. It does not bypass access controls or rate limits.

For an issue, provide the run link, provider and board slug, expected behavior and a small synthetic reproduction when possible. Do not send API tokens, applicant records or private job data. Source format changes may require an update; no report guarantees that a source has reported every vacancy.

Watch the 32-second synthetic portfolio demo for a walkthrough of the four tools. The video uses sample data.