Catch stalled Breezy HR candidates every Monday

Every Monday at 9am, get a Slack summary and personal email nudges for the candidates whose pipeline stage hasn't moved in a week.

Agentic Task
Breezy HRSlack BotGmailHR & PeopleOperationsDaily DigestsNotifications & AlertsAI Reports

Every Monday at 9am in my timezone, I want an agent that finds candidates stuck in the same Breezy HR pipeline stage for too long and tells me exactly who needs unblocking, so good people don't go cold while my team is heads-down.

Trigger: cron, Mondays at 9am.

What the agent should do, in order:

1. Call Breezy HR List Companies to resolve my company id.

2. Call Breezy HR List Positions filtered to published roles only.

3. For each published position, call Breezy HR List Candidates for Position.

4. Treat a candidate as stalled when both conditions are true: their current stage is anywhere between Applied and Offer (exclude Hired, Disqualified, and On Hold) AND the candidate record's updated_at is more than the stall threshold ago. Default threshold is 7 days. Expose the threshold and the active stage list as configurable variables at the very top of the agent instructions so I can tune them without editing logic.

5. For each stalled candidate, call Breezy HR Get Candidate Stream and inspect the most recent note, the most recent email, and the most recent stage change. Infer the most likely reason the candidate is stuck (waiting on interviewer feedback, no recruiter outreach yet, scorecard missing, candidate hasn't replied to last email, awaiting offer approval, etc.) and write one concrete suggested next action for each.

6. For every position that has at least one stalled candidate, call Breezy HR Get Position Team to map each stalled candidate to a hiring manager.

7. Use Slack Bot Send a Message to post one digest per configured channel (default: a single recruiting channel I configure). Group findings by role; for each candidate list the name, days in current stage, the inferred reason, and the suggested next action.

8. For each hiring manager who owns at least one stalled candidate, use Gmail Send a Message to email them their personal action list. Each manager only sees the candidates assigned to them, with the same per-candidate reason and suggestion.

9. Skip positions with zero stalls entirely. Never send an empty Slack digest, and never email a manager who has nothing to act on.

Performance and rate-limit rules:

- The candidate list response already includes updated_at and current stage, so do all stall filtering from the list response before making any per-candidate calls.

- Only call Get Candidate Stream for candidates that already look stalled. Do not pull the stream for the whole pipeline.

- If Breezy HR returns 429 Too Many Requests, honour the x-ratelimit-reset header and wait until that timestamp before retrying.

Configurable inputs at the top of the agent instructions:

- Stall threshold in days (default 7).

- Slack channel or channels for the team digest.

- Active pipeline stages (default: everything between Applied and Offer, excluding Hired, Disqualified, On Hold).

- Delivery mode: Slack digest only, hiring-manager emails only, or both (default both).

Additional information

What does this prompt do?
  • Scans every published role in your Breezy HR account and flags candidates whose pipeline stage hasn't changed in more than seven days.
  • Reads the recent activity on each stalled candidate and writes a likely reason, like waiting on interviewer feedback or a missing scorecard.
  • Posts one tidy Slack digest grouped by role, so your recruiting team sees the whole picture in a single message.
  • Emails each hiring manager only the candidates they own, with a concrete suggested next action for every one.
What do I need to use this?
  • A Breezy HR account with permission to view positions, candidates, and candidate activity.
  • A Slack workspace where the weekly recruiting digest should land.
  • A Gmail account to send personal nudges to hiring managers.
How can I customize it?
  • Change how many days a candidate can sit before it counts as stalled. The default is seven.
  • Pick which Slack channel receives the team digest, or fan it out to several channels.
  • Choose whether to email hiring managers, post to Slack only, or do both.

Frequently asked questions

Will this email hiring managers who have no stalled candidates?
No. The workflow skips any role and any hiring manager with zero stalls, so you never send empty pings.
Can I change which pipeline stages count as active?
Yes. By default every stage between Applied and Offer is in scope, and Hired, Disqualified, and On Hold are excluded. You can adjust the active stage list at the top of the agent's instructions.
How often does it run?
Every Monday at 9am in your timezone by default. You can move it to a different day or time, or run it more than once a week.
Does it work with Breezy HR's free plan?
Yes, as long as your account can read positions, candidates, and candidate activity through Breezy HR.
What does the suggested next action look like?
Plain language like 'remind the interviewer to submit a scorecard' or 'send a follow-up email to the candidate'. The agent writes it based on the latest note, email, and stage change on the candidate's record.

Stop letting good candidates go cold.

Connect Breezy HR, Slack, and Gmail once, and Geni runs this every Monday at 9am with personalized nudges to the right hiring manager.