Weekly Breezy HR funnel health report in Notion and Slack

Every Monday at 8am, publish a structured weekly report of pipeline health, hiring velocity, and stage bottlenecks to Notion, with a short summary in Slack.

Agentic Task
Breezy HRNotionSlack BotHR & PeopleOperationsAI ReportsDaily DigestsResearch & Monitoring

Every Monday at 8am, build a weekly hiring funnel intelligence report from Breezy HR, publish it as a new page in a Notion database, and post a short summary to a designated Slack channel. The Notion page is the canonical artifact; the Slack message is the nudge to go read it.

Trigger: cron, every Monday at 8am in the user's timezone.

Step 1: Pull the data from Breezy HR. Call List Positions with state=published to enumerate every open role. For each role, call Get Pipeline to fetch the stage definitions, then call List Candidates for Position to fetch the candidates currently on that role. Use the candidate stage timestamps to figure out how long each candidate has been sitting in their current stage.

Step 2: Reason over the data. For each open role compute candidates per stage, stage-to-stage conversion (what fraction of candidates that entered stage A advanced to stage B), and median time-in-stage. Flag any stage where the median time-in-stage exceeds a configurable threshold (default 7 days) or where the count has piled up with zero advances in the last week. Across all roles, surface the top 2 to 3 bottlenecks, name the specific roles that are stalling, and write a plain-English recommended action for each (for example: "Senior PM has 14 candidates in screen but 0 advanced this week, recruiter should triage today").

Step 3: Write the report to Notion. Use Create a Page with a Notion database as the parent. The page title should include the week (for example "Hiring funnel - week of Mon Jun 16"). Structure the body with three sections: Funnel health (per-role candidate counts by stage and conversion rates, formatted as readable tables or bulleted blocks), Hiring velocity (median time-in-stage per role, week-over-week trend if available, total candidates advanced this week), and Recommended actions (the top 2 to 3 named bottlenecks with the suggested intervention). Keep the formatting clean and skimmable.

Step 4: Post the Slack summary. Use Slack Bot Send a Message to a designated channel. Keep it short: the week label, the top 3 headlines (one line each, naming the role and the issue, e.g. "Senior PM stuck at screen, 14 candidates, 0 advanced"), and a link to the Notion page that was just created. Do not dump the full report into Slack.

Configurable inputs to expose: the Notion database id for the weekly report, the Slack channel id (or name), the time-in-stage threshold in days (default 7), the day and time of the cron, and an optional role filter (for example only roles tagged with a certain department) in case the user wants to scope this to part of the org.

Notes for the build: Breezy HR is API-key style auth (email and password exchanged for a session token); company_id is needed for the Breezy calls so resolve it once at the start. Notion pages must be created under a database the integration has been shared with, so make that requirement clear in setup. Use Slack Bot (not the user Slack integration) so the message is attributed to the workspace bot. Stay resilient to roles that have no candidates yet (just note them as empty rather than failing).

Additional information

What does this prompt do?
  • Walks every open role in Breezy HR each week and counts how candidates are spread across each pipeline stage.
  • Computes stage-to-stage conversion and flags stages where candidates have been sitting too long.
  • Names the top 2 to 3 bottlenecks, points to the specific roles that are stalling, and suggests next steps in plain English.
  • Writes the whole thing as a structured weekly page in a Notion database, with sections for funnel health, hiring velocity, and recommended actions.
  • Posts a short Slack summary with the top 3 headlines and a link to the Notion page so the team actually reads it.
What do I need to use this?
  • A Breezy HR login that can see every open role and pipeline you want included
  • A Notion workspace with a database for weekly reports, shared with the General Input connection
  • A Slack workspace with the General Input bot added to the channel that should get the summary
How can I customize it?
  • Change when the report runs (default is Monday at 8am).
  • Adjust the time-in-stage threshold that counts a stage as stalled (default is 7 days).
  • Pick which Notion database the weekly page lands in, and which Slack channel gets the summary.
  • Limit the report to a specific group of roles or departments if you only care about a subset of the funnel.

Frequently asked questions

Where does the actual report live, Notion or Slack?
Notion is the home of the report. Every week a new page is created in your chosen database with full sections for funnel health, hiring velocity, and recommended actions. Slack just gets a short nudge with the top three headlines and a link to the Notion page, so the team knows to go read it.
How does it decide what counts as a bottleneck?
For every open role it counts candidates by stage, looks at how long the median candidate has been sitting in each stage, and computes conversion from one stage to the next. Stages where lots of people are piling up, nobody is advancing, or the median time-in-stage has crept past the threshold get surfaced as bottlenecks, with the specific roles named.
Can I change the stalled stage threshold?
Yes. The default is 7 days but you can set it to anything that matches how your team works. Faster teams tend to push it down to 3 or 4 days, while teams hiring for senior or technical roles often raise it to 10 or 14 days.
Will it work if I only have a couple of open roles?
Yes. The report still walks each open role and writes a clean weekly page. With only a handful of roles you will get a shorter report focused on whichever stages are moving slowest, rather than a long ranked list.
What about the page from last week?
Nothing is overwritten. Each run creates a new page in the Notion database, so you end up with a searchable archive of weekly funnel snapshots that you can scroll back through to spot trends.
Can it run on a different day or time?
Yes. Monday at 8am is just the default because most TA leads want it ready before their weekly hiring sync. You can move it to any day and time that fits your hiring cadence.

Stop guessing where your hiring pipeline is stuck.

Connect Breezy HR, Notion, and Slack once, and get a clear weekly read on funnel health, hiring velocity, and the exact stages that need attention.