Track Greenhouse job board changes with the Apify watchlist Actor

Go to Workflow
0 views
Built by Victor Costa Victor Costa
Created on October 09, 2026

Description

Quick overview
Track job listing changes for 1–20 known Greenhouse company boards. This manual workflow runs an Apify Actor, saves each validated snapshot in a private key-value store, and compares it with the next observation. Useful for automation builders maintaining company job feeds.

How it works
Starts with a manual trigger and loads the configured Greenhouse board slugs and the dedicated Apify key-value store name.
Creates (or opens) the Apify key-value store and reads the current STATE record to determine whether a previous snapshot exists or a run is already pending.
If no run is pending, prepares the actor input (including the previous snapshot when available), saves a “pending” start intent to STATE, reads it back, and verifies it was persisted correctly.
Starts one Actor run or retrieves the existing pending run. The status request waits up to 60 seconds. If it is still running, execution stops while preserving its ID; run the whole workflow later to retrieve it. There is no automatic polling loop.
Fetches the actor outputs from Apify (SUMMARY, BILLING receipt, SNAPSHOT, and CHANGES.json) and validates that they match the requested board list and expected counts.
Writes the new ready STATE (including the latest snapshot and last run ID) back to the key-value store, reads it back to confirm it saved correctly, and outputs the run link, counts, and the list of detected changes.

Setup
Create an Apify account and add an n8n HTTP Header Auth credential with Authorization: Bearer , then select it in every HTTP Request step.
Ensure the Apify actor downy_sublimity/greenhouse-watchlist-export is available in your Apify account, as this workflow starts runs for actor ID hKiF2epI17OkpTRdh.
In Watchlist settings, enter 1–20 board slugs, a dedicated key-value store name, and set singleWriterConfirmed=true only when one workflow and one execution write to that store. Run the whole workflow twice, sequentially. Check Results for historySaved=true and baseline=false on the second completed observation.

Requirements
An n8n instance and an Apify account/token. This template is free; the required Greenhouse Watchlist Export Actor costs US$0.05 per completed watchlist, including unchanged or empty checks. Separate n8n hosting and platform/storage costs may apply. Actor: https://apify.com/downy_sublimity/greenhouse-watchlist-export

Customization
Choose your company board slugs in Watchlist settings. Use a new store and baseline when changing the board list. Results provides change records for downstream processing. No schedule, notifications, or distributed lock are included; keep one writer per store.

Additional info
The first run creates a baseline: first observed does not mean newly published. A disappearance is confirmed after two valid absences and does not prove the role was filled. If a start response is lost, inspect the pending state instead of retrying the POST. Recovery instructions are included in the workflow notes. Tested with n8n 2.42.6, including a live baseline and subsequent comparison.

This workflow was created by Victor Costa and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.

Nodes Used (2)

Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest