Weekly Recruitee hiring pipeline snapshot in Google Sheets
Every Monday at 7am, log one row per open role into a spreadsheet so you can see how your hiring pipeline moves week over week.
Every Monday at 7am, build a hiring pipeline snapshot from Recruitee and append it to a Google Sheet so we accumulate a week-over-week trend instead of only ever seeing today's numbers. Use a cron trigger set to every Monday at 7am.
Start with Recruitee List Offers to get the roles that are currently published. Treat those published roles as the set of open roles for the week, and ignore closed, filled, archived, and talent pool entries.
For each open role, call Get Pipeline Stages for Offer to resolve that role's pipeline stage names, then call List Candidates filtered by that offer to count candidates. From those candidates compute: the number of new applicants created in the last seven days, the total number of active candidates, the count of candidates sitting in each pipeline stage, and the count of disqualified candidates. List Candidates supports filters for offer, qualification state, and date range, so use those filters for the seven day new applicant window and for the disqualified count rather than pulling everything and filtering by hand where it can be avoided.
Recruitee list endpoints page with offset and limit and return a total in the response, so page through by advancing offset by limit until you have collected total items or the returned array comes back empty. Counting off a single unpaged first page would undercount any role with a busy pipeline, so make sure every count is taken over the full set.
Then append one row per open role to Google Sheets with Append Values. Each row should carry the week's date, the role title, new applicants in the last seven days, total active candidates, the count sitting in each pipeline stage, and the disqualified count. Append Values writes after the last row of the detected table, which is exactly the behaviour we want: it must never overwrite prior weeks. One row per role per week, so the sheet accumulates into a trend history that can be charted or pivoted. Keep the stage counts in a consistent column order across runs, taking the order from the sheet's existing header row, and write a zero for any stage a particular role's pipeline does not include, so the columns stay aligned even when roles use different pipeline templates.
After the rows are written, post a short message to the recruiting channel using the Slack Bot Send a Message operation. The message should confirm the week's snapshot was logged, link to the sheet, and explicitly name any open role that received zero new applicants in the last seven days, since those are the roles most likely to be quietly stalling. Keep it to a few lines rather than restating every number that is already in the sheet.
Every step here is deterministic, so build this as a code workflow: list, count, append fixed columns, post. If a single role's stage or candidate lookup fails, still write the rows for the roles that succeeded and note the skipped role in the Slack message rather than failing the whole run.
Example output
What does this prompt do?
- Every Monday morning, checks each of your published Recruitee roles and records where all of the candidates currently sit.
- Adds one new row per role per week to your spreadsheet, so earlier weeks are never overwritten and a real trend history builds up.
- Captures new applicants from the last seven days, total active candidates, how many people sit in each hiring stage, and how many were turned down.
- Posts a short recap to your recruiting channel with a link to the sheet and a callout naming any role that got no new applicants that week.
What do I need to use this?
- A Recruitee account with the open roles you want to track
- A Google account and a spreadsheet set aside to collect the weekly rows
- A Slack workspace with a recruiting channel where the recap should be posted
How can I customize it?
- Change when it runs, for example Friday afternoon as a week-in-review instead of Monday at 7am
- Narrow which roles are included, such as a single department, location, or hiring team
- Point the recap at a different Slack channel, or widen the new applicant window from seven days to a fortnight
FAQs
Will this overwrite last week's numbers?
Can I turn this into a chart?
What happens to roles that are closed, filled, or on hold?
What if different roles use different hiring stages?
Do I need to set the spreadsheet up first?
What does the Slack recap actually say?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Stop looking at hiring numbers with no sense of the trend.
Build a week-by-week record of every open role automatically, and let your team see which pipelines are filling up and which have gone quiet.