Weekly hiring pipeline review board for your Lever roles

Open one board to run your weekly recruiting review: every open role, where its pipeline is actually stuck, and a written brief you can post straight to Slack.

App
LeverSlack BotHR & PeopleOperationsAI ReportsMeeting Workflows
PromptCreate

Build an app my recruiting team opens every week to run our hiring pipeline review meeting. It reads everything from Lever and can post to Slack using Slack Bot. Nothing runs on a schedule: a person opens the app before the meeting and works out of it during the call.

The main screen is a board with one row per open job posting. Each row shows the role title, the requisition it belongs to, how many candidates sit in each pipeline stage, the oldest candidate in the pipeline and how many days they have been stuck, whether an offer is out, and who the recruiter and hiring manager are. Build the rows from Lever: List Postings for the open roles, List Requisitions to resolve the requisition each posting belongs to along with its code and headcount, List Stages so the stage columns appear in Lever's own pipeline order rather than an order I invented, List Opportunities filtered by posting and stage for the per stage counts, List Users with Access to a Posting to pull out the recruiter and the hiring manager, and List Offers on an Opportunity to work out whether an offer is already out on the role.

Let me filter the board by team, by recruiter, or by hiring manager, and sort so the roles in the worst shape come first. Clicking any role opens a detail view for that role listing its candidates with their current stage and how many days since they last advanced, longest waiting first. The detail view reads List Opportunities filtered by that posting, and Retrieve Opportunity where it needs the expanded contact or stage history for a single candidate.

Each role page recomputes time in stage from the opportunity timestamps rather than trusting anything cached. Lever timestamps are Unix milliseconds, and lastAdvancedAt is the field that gives days in the current stage: days in stage is now minus lastAdvancedAt. Age in pipeline comes from createdAt the same way.

Three rules matter and should be baked in rather than left as options. First, any role that has been running past one and a half times its normal fill time is flagged in red on the board, because that is the point where roles tend to stall out permanently. Second, stage counts exclude archived candidates, so the numbers on the board match the candidates the team would actually discuss. Third, confidential postings stay out of the app entirely unless the Lever connection has explicitly been granted confidential access, in which case the list calls opt in to confidential data; never show confidential roles by accident.

Put a Prep this week's review button on the board that kicks off a background agent. The agent walks every open posting, gathers the stage counts, candidate ages and offer state, and works out where each pipeline is actually jammed. Jammed means something specific: plenty of candidates at the top but nothing reaching onsite, a single candidate sitting on an offer decision, a stage where nobody has advanced in weeks, or a role with no candidates at all. For each role it writes a short narrative naming the bottleneck and the one action that would unblock it, addressed to the recruiter and hiring manager who own it.

That brief saves into the app, keyed by the week it was generated, so we can read it during the meeting and open last week's brief for the same role next to it to see what actually moved. Show the agent's progress while it runs, since walking every posting takes a moment, and keep the previous brief readable while the new one is still generating.

A second button posts the brief to our hiring channel using the Slack Bot Send a Message action. Let me confirm or change the target channel before it sends, format the message so each role is a short readable block rather than one wall of text, lead with the roles flagged red, and show me when the brief was last posted so nobody double posts it.

What does this prompt do?

  • One row per open role showing which requisition it belongs to, how many candidates sit in each pipeline stage, the longest waiting candidate, whether an offer is out, and the recruiter and hiring manager on it
  • Filter by team, recruiter, or hiring manager, then click any role to see its candidates with their current stage and how many days since they last moved forward
  • A Prep this week's review button sends an assistant through every open role to work out where each pipeline is jammed and write a short narrative naming the bottleneck and the one action that would unblock it
  • Every brief is saved in the app so you can read this week's next to last week's, then post the whole thing to your hiring channel in one click
  • Roles running well past your normal fill time are flagged in red so the meeting starts with the ones in trouble

What do I need to use this?

  • A Lever account with permission to view job postings, requisitions, candidates and offers
  • A Slack workspace and the channel where your recruiting team talks about hiring
  • At least one open job posting in Lever for the board to show
  • A rough sense of how long your roles normally take to fill, so the app knows when to flag one as running late

How can I customize it?

  • Change the red flag threshold from one and a half times your normal fill time to whatever your team treats as late
  • Point the Slack button at a different channel, or post the brief to more than one
  • Add filters beyond team, recruiter and hiring manager, such as location or full time versus contract
  • Adjust what the assistant looks at when it decides a pipeline is jammed, for example weighting late stage gaps more heavily than top of funnel

FAQs

Does this change anything in our Lever account?
No. The board only reads from Lever. The weekly brief is saved inside the app, and the only thing that leaves is the Slack message you choose to post.
Will confidential roles appear on the board?
Only if your Lever connection has been explicitly given access to confidential data. By default confidential postings stay off the board entirely.
Are rejected or archived candidates included in the stage counts?
No. Stage counts only include candidates still active in the pipeline, so the numbers match what your team would actually talk about in the meeting.
Can we compare this week against last week?
Yes. Each brief is saved with the date it was generated, so you can open the previous week's narrative for any role next to the current one and see what moved.
How does it decide a role is running late?
It compares how long the role has been open against your normal time to fill and flags anything past one and a half times that mark in red, which is the point where roles tend to stall out for good.
Do we need a paid Slack plan for this?
No. Any Slack workspace where you can add an app and let it post to a channel will work.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
LiveChat coverage board for planning next week's shifts

See the exact hours your chat queue backs up and customers give up waiting, then plan next week's shifts before it happens again.

LiveChat
Slack Bot
General Input Database
App

Stop rebuilding your hiring review in a spreadsheet every Monday.

Give your recruiting team one board that shows where every role is stuck and writes the meeting brief before anyone joins the call.