Browse the docs

Agent setup guide

Candidate Status Updates

When a candidate moves stage or is rejected in Greenhouse, drafts a warm personal update for a recruiter to approve.

Available About 15 min to set up

What it does

When a candidate moves stage or is rejected in Greenhouse, drafts a warm personal update for a recruiter to approve.

  • Starts the moment a candidate changes stage or is rejected in Greenhouse (a Greenhouse web hook, instant).
  • AI drafts a short, personal update in your voice using only what your guidelines say about each stage, following fair-hiring rules: no rejection reasons, no comparisons, no promises.
  • Skips internal stage moves, prospects and anything your guidelines keep personal (e.g. rejections after a final interview).
  • A recruiter approves every email in Reviews; once approved it is emailed to the candidate with replies going to your recruiting inbox.
  • Logs a note on the candidate in Greenhouse with what was sent.

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • Greenhouse, connected in Settings → Integrations, and two Greenhouse web hooks pointing at the trigger (stage change and rejection).
  • Your interview stages and what candidates should hear at each.

What it doesn't do

  • It doesn't move, reject or advance candidates — it reacts to what you do in Greenhouse.
  • It never emails a candidate without a recruiter approving the email, and never gives a reason for a rejection.
  • It doesn't schedule interviews or send calendar invites; it only describes the next step as your guidelines do.

Availability and plans

Available

Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.

Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.

Before you start

  • A paid plan: agents run live, and the Free plan only runs Dry Runs.
  • An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
  • These apps, connected in Settings → Integrations: Greenhouse.
  • The app it watches, connected in Settings → Integrations (the agent starts from an app event).
  • About 15 minutes.

Set it up step by step

Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.

1. Connect your AI provider

The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.

2. Connect Greenhouse

Connect Greenhouse (Settings → Integrations → Greenhouse) with a Harvest V3 credential that can create notes (harvest:notes:create).

3. Describe your stages and voice

Open “Draft a personal update” and replace the placeholder with your company, signer, interview stages and what candidates should hear at each.

SettingWhat to enterIn step
Your company and stage guidelinesReplace the placeholder in the AI step's instructions: company name, who signs, your interview stages and what candidates should hear at each, stages to keep internal, and whether rejected candidates are invited to apply again. It starts as “[DESCRIBE YOUR COMPANY, WHO SIGNS THE EMAILS, YOUR INTERVIEW STAGES AND WHAT CANDIDATES SHOULD HEAR AT EACH ONE HERE]” until you replace it.“Draft a personal update”

4. Pick your Greenhouse account

Pick your Greenhouse account on the trigger and on “Log a note in Greenhouse”.

SettingWhat to enterIn step
Greenhouse account (events)The Greenhouse account whose web hook events start this agent. Pick your connected Greenhouse account.“Candidate moved or rejected in Greenhouse”
Greenhouse account (notes)The Greenhouse account notes are logged with (the same account). Pick your connected Greenhouse account.“Log a note in Greenhouse”

5. Add your recruiting email address

Open “Email the candidate” and enter the address candidates should reply to.

SettingWhat to enterIn step
Your recruiting email addressCandidates' replies to the update come back to this address (Reply-to).“Email the candidate”

6. Test it with Dry Run

Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.

7. Switch the trigger on

Open the trigger and activate it, then in Greenhouse (Configure → Dev Center → Web Hooks) create two web hooks — “Candidate has changed stage” and “Candidate or Prospect rejected” — each with this trigger's URL as the Endpoint URL and its secret as the Secret key.

How it works

The agent is a normal workflow with 7 steps (1 AI step, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.

  • Candidate moved or rejected in Greenhouse — Starts on “Greenhouse web hook (instant)” in Greenhouse (an app event). A Greenhouse web hook sends each stage change and rejection the moment it happens (you create the web hooks in Greenhouse and paste this trigger's URL and secret).
  • Draft a personal update — AI step (runs on your AI provider key). AI reads the event (candidate, job, new stage or rejection) and your guidelines, decides whether the candidate should hear from you, and drafts a warm, personal email plus a note for Greenhouse.
  • Should the candidate hear from us? — Decision: picks the branch to follow. Internal stage moves, prospects and anything your guidelines keep personal are skipped; every other update goes to a recruiter for approval.
  • No email needed — Kept in the run history. Branch: No email. The run history keeps the event and why no email was drafted.
  • Recruiter approves the email — A person approves or rejects it in Reviews (the run waits). Branch: Update the candidate. A recruiter reads the draft in Reviews, edits it if needed and approves it. Rejecting it means nothing is sent or logged.
  • Email the candidate — Sends an email from your workspace's sender. Branch: Approved. Sends the approved update to the candidate, with replies going to your recruiting inbox.
  • Log a note in Greenhouse — Greenhouse: Add a note to a candidate. Branch: Approved. Adds a note to the candidate's Notes tab (visible to the hiring team) with what was sent, so everyone knows the candidate was updated.

Test it with Dry Run

Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live. The sample has the same shape as a real event from the app.

Sample data fields

action, application_id, candidate_id, payload.application.

  • Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
  • Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.

Go live

  • Open the trigger and activate it, then in Greenhouse (Configure → Dev Center → Web Hooks) create two web hooks — “Candidate has changed stage” and “Candidate or Prospect rejected” — each with this trigger's URL as the Endpoint URL and its secret as the Secret key.
  • Activating the app trigger needs the trigger's connected account. The first check only remembers what's already there, so older items don't start runs; the same item never starts two runs.
  • The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
  • When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.

Questions

Does it move or reject candidates?

No. It reacts to moves and rejections you make in Greenhouse; it only drafts the email, sends it after a recruiter approves, and logs a note.

Does it explain why someone was rejected?

Never. Rejection emails thank the candidate and close the process kindly, without reasons, scores or comparisons.

Troubleshooting

  • “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
  • A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
  • An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
  • No runs start: activate the app trigger with a connected account. Only items created after activation start runs.
  • A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
  • A step failed: open the run in History and check that step in the Trace tab for the error and what it received.

Generated from the agent's own workflow, so it always matches what the agent does. Last updated .