Eight workflows. Every one of them checks do_not_contact first and exits silently if it is set.
1. Application Intake, Deduplication and Auto-Screen
Trigger: an Application Form submission, or an inbound application arriving from a job board or LinkedIn via a Zapier or Make step.
Conditions and branches:
- Match the email address against existing candidates. If a record exists from a previous requisition, do not create a duplicate: add the new requisition to the existing record, apply reapplication, and surface the previous decline_reason to the reviewer.
- If requisition_id is closed, send the closed-role message with a talent-pool opt-in and stop: This role closed on [date], so I will not pretend otherwise. If you would like us to keep your details for similar roles, click here and I will hold them for 12 months.
Actions in order:
- Create the candidate, create the opportunity in Applied, write requisition_id, role_applied, source_channel, portfolio_link and the CV file. Apply applicant-new.
- Immediately, within 2 minutes: acknowledgement email. Got your application for [role]. Here is what happens next: we review every application within two working days and you will hear from us either way by [calculated date]. The next step if we move forward is a 20-minute call. Questions? Reply to this email and a person will answer.
- Immediately after: send the Screening Questionnaire link.
- Wait 2 days. If the questionnaire is not completed, one reminder: Still keen on [role]? The screening questions take about five minutes and I cannot move you forward without them: [link]. Wait 3 more days, then move to Talent Pool with decline_reason Availability and pool_revisit_date 6 months out.
- On completion, evaluate the knockouts. Any knockout failed: write knockout_failed, move to Declined by Us, decline_stage Auto-Screen, and run workflow 7.
- All knockouts clear: calculate screen_score from the weighted answers. 70 and above, apply screen-pass. 50 to 69, apply screen-borderline. Below 50, apply screen-fail. Move all three to Recruiter Review. The score routes; it never rejects.
- If source_channel is Referral, add 10 to screen_score, notify referrer_name's manager, and flag the record in the hiring channel. Referrals get read first because they convert better.
- Post one line to the hiring channel: role, name, score, band, portfolio link, availability.
- Create a review task for the named recruiter, due in 2 working days.
Exit: declined, pooled, or advanced by a human.
2. Recruiter Review Clock and Phone Screen Release
Trigger: opportunity enters Recruiter Review.
Actions in order:
- Wait 2 working days. If no decision, remind the recruiter. Wait 1 more working day, then escalate to the principal in the hiring channel naming the candidate and the days elapsed. This workflow exists to protect the promise made in the acknowledgement email, so it should be loud.
- Wait 2 more working days with still no decision: apply stale-candidate and send the candidate an honest holding message. I promised you an answer by [date] and we have not managed it. That is on us. You will hear from a person by [new date]. Nothing damages a hiring brand faster than silence; a late apology beats a disappearance.
- On Advance: move to Phone Screen Booked pending booking and release the invitation. Thanks for the detail on [specific answer they gave]. Next step is a 20-minute call with [screener first name] - no preparation needed, it is mostly us answering your questions. Grab whichever slot suits: [link]. Evening slots are on there too.
- Wait 2 days. No booking: one SMS. [First name] - [agency] here about the [role] call. Booking link is in your email from Tuesday, or reply with two times that work and I will sort it. Reply STOP to opt out.
- Wait 3 more days. Still no booking: move to Talent Pool, decline_reason Availability, pool_revisit_date 6 months.
- On Decline: run workflow 7.
Exit: booking created, decision recorded, or pooled.
3. Phone Screen Confirmation, Reminders and No-Show Recovery
Trigger: a Phone Screen booking is created.
Actions in order:
- Immediate confirmation email with the time in the candidate's time zone, the screener's name, the join link, and one line on what the call covers. Apply panel-booked equivalent for this stage and cancel the chase sequence.
- Generate the screener's prep note: application, questionnaire answers, screen_score, portfolio link, availability.
- 24 hours before: email reminder. 2 hours before: SMS with the join link only.
- At the scheduled end time: create the scorecard task for the screener, due in 4 hours. The link goes straight to the pre-filled Interview Scorecard.
- Wait 4 hours. No scorecard: remind the screener. Wait 20 more hours: apply scorecard-missing and post to the hiring channel. Candidates must not wait on an unfiled form.
- On scorecard submitted, increment scorecard_count, move to Phone Screen Done, and branch on the hire or no-hire call: hire goes to workflow 4, no-hire goes to workflow 7.
- No-show branch: 10 minutes past the start with no attendance, apply panel-no-show, email: Sorry we missed each other. Life happens - here is the calendar again if you still want the conversation: [link]. Wait 2 days, one SMS. Wait 3 more days, move to Talent Pool. One no-show is never treated as a rejection.
- Candidate-initiated reschedule: allowed freely up to twice. On the third, route to the recruiter rather than the automation.
Exit: scorecard filed, or pooled.
4. Skills Task Dispatch, Deadline and Dual Marking
Trigger: stage moved to Task Sent.
Actions in order:
- Send the task brief with a stated time budget, the deadline, the submission form link, and the payment statement. Here is the task. It should take about two hours and we pay for your time at the rate in the brief - that is not a favor, it is your work. Deadline is [date], five days from now. If that window does not suit, reply and I will move it; a bad week should not cost you the role. Submit here: [link]. Stamp task_sent_date and task_due_date, apply task-sent.
- Wait until 2 days before the deadline: light nudge. Task is due [date]. Anything unclear in the brief, ask me - the question is not a mark against you.
- On the deadline with nothing submitted: apply task-overdue, email offering one extension of 3 days, and create a recruiter task.
- 3 days past the extension: move to Withdrew, decline_reason Withdrew, with a short human note. Record it as a withdrawal rather than a decline, because this is the stage where your task length is on trial.
- On submission: stamp task_returned_date, apply task-returned, move to Task Returned, acknowledge within 5 minutes with a date by which they will hear.
- Create two independent marking tasks, due in 2 working days, each reviewer blind to the other's score. Write task_score_1 and task_score_2.
- Branch on the two scores: both 3 or above, release the panel invitation. Both below 3, route to workflow 7 with decline_reason Skills Gap. Split (one 3-plus, one below), create a 15-minute adjudication task for the hiring manager rather than averaging. Averaging a split hides the disagreement that matters.
- Wait 2 working days on an unmarked task: remind both reviewers, then escalate to the principal at 4 days.
Exit: both scores filed and a branch taken, or candidate withdrawn.
5. Panel Interview Coordination and Scorecard Enforcement
Trigger: panel invitation released, then on booking created.
Actions in order:
- Release the invitation with the collective-availability link, interviewer names and roles, the format, and an explicit statement of what is being assessed. 60 minutes with [hiring manager] and [peer]. We will spend most of it on your task and how you think, not on your CV. The competencies we are scoring are listed here so you are not guessing: [link].
- On booking, move to Panel Interview, apply panel-booked, generate the video link, and add both interviewers.
- 24 hours before: send both interviewers the prep pack - application, questionnaire answers, portfolio, task submission, both task scores with justifications, and the phone-screen scorecard - and assign each a named competency to lead on so they do not both ask the same questions.
- 24 hours before: candidate reminder email. 2 hours before: candidate SMS with the link.
- At the scheduled end: create a scorecard task for each interviewer, due in 4 hours, and explicitly instruct that scorecards are filed before any debrief conversation.
- Wait 4 hours: remind anyone outstanding. Wait 20 more hours: apply scorecard-missing, post to the hiring channel naming the interviewer. Wait 24 more hours: escalate to the principal. The stage gate does not open until scorecard_count equals the number of interviewers.
- On all scorecards filed, calculate panel_score_avg and branch: both hire calls positive, release the Final Conversation booking link. Both negative, route to workflow 7. Split, create a 30-minute debrief task for the hiring manager and principal with both scorecards attached, and let a human decide.
- On Final Conversation completed: the principal records the outcome and switches comp_expectation_captured. No figures enter any automated field or message.
Exit: gate opened, decline routed, or candidate withdrawn.
6. References, Offer and Pre-Start
Trigger: stage moved to References and Checks.
Actions in order:
- Email the candidate requesting referee details and explicit consent to contact them. Wait 2 days, one reminder.
- On details received, send the Reference Request to each referee. Set reference_status to Requested. Wait 3 days, remind the referee. Wait 3 more days, create a recruiter task to telephone. Never let an unresponsive referee silently stall an offer.
- Create a human task to verify right to work from documents and set right_to_work_confirmed. This is never automated and never inferred.
- If any reference raises a concern, set reference_status to Concern Raised, halt the offer automation entirely, and task the principal. No automated message goes out on that record again until a human clears it.
- On references clear and right to work confirmed: move to Offer Out, stamp offer_sent_date, set offer_response_due to 5 working days out, apply offer-out. The offer itself is sent by the principal through your e-signature tool, not generated by the automation.
- Day 2 after sending: a short personal check-in from the hiring manager, not the system. No pressure on the paperwork - but if anything in there needs explaining or you want to talk it through with someone who will actually be in the room with you, I am about today and tomorrow.
- One day before offer_response_due: internal task for the principal to call. No automated chase on an offer.
- On signature webhook: move to Hired, apply hired, write available_from, and fire the pre-start block - Pre-Start Checklist to the candidate, equipment and access tasks to ops due 5 working days before the start date, buddy assignment, first-day calendar invite, and 30-day and 90-day check-ins scheduled immediately.
- 7 days before start: a warm message with first-day logistics and a named person to ask for. 1 day before: a short note from the buddy.
- On offer declined: record the reason, task the principal for a 10-minute call to learn why, and move to Talent Pool with pool_revisit_date 12 months out. People who decline an offer and are treated well sometimes come back.
Exit: hired, or declined and pooled.
7. Rejection, Candidate Experience and Talent Pool
Trigger: stage moved to Declined by Us or Talent Pool, from any stage.
Conditions: the message template is selected by decline_stage, because a rejection after a two-hour task cannot read like a rejection after a form.
Actions in order:
- Auto-screen and recruiter review rejections, within 24 hours: Thank you for applying for [role]. We are not taking your application further this time. To be straight with you about why: [the job-related reason]. If you would like us to keep your details for future roles, click here.
- Post-interview or post-task rejections: hold for a human. Create a task for the recruiter to add two specific sentences of feedback drawn from the scorecard justifications, then send within 2 working days. A candidate who gave you two hours gets specifics, not a template.
- Post-final-conversation rejections: a phone call from the principal, scheduled, before any written message. The automation creates the task and blocks the email until the call is logged.
- 24 hours after any rejection message: send the two-question Candidate Experience Survey.
- If the candidate is strong but wrong-fit: move to Talent Pool instead, set pool_role_fit and pool_revisit_date, apply the matching pool- tag, and tell them plainly: This is not a soft no. You were close, and the gap was [specific]. I have put a note in my calendar for [month] when we expect to be hiring for [role type]. If you would rather I did not, reply and I will delete your details today.
- Daily scheduled check on pool_revisit_date: on the date, create a task for the recruiter with the original scorecards and task scores attached. If a matching requisition is open, release a direct invitation that skips the application form and the questionnaire and goes straight to a phone screen link. That shortcut is the entire value of the pool.
- On any new requisition opening: query the pool for pool_role_fit matches and present the list to the recruiter before the role is advertised.
Exit: candidate re-enters an active pipeline, asks for deletion, or reaches the end of your retention period, at which point the deletion routine runs.
8. Weekly Hiring Digest and Stale Candidate Sweep
Trigger: scheduled, Monday 08:00, plus a daily 07:00 staleness sweep.
Daily sweep actions:
- Find every opportunity with no stage change in 5 days that is not in Hired, Declined, Withdrew or Talent Pool. Apply stale-candidate, post the list to the hiring channel with the owner's name and the days stuck, and create one task per owner.
- Find every interview held over 24 hours ago with scorecard_count below the required number, and chase as in workflows 3 and 5.
- Find every task past task_due_date and apply task-overdue.
Weekly digest actions:
- Send the principal and every hiring manager one email per requisition: candidates at each stage, new applications last week, median time in Recruiter Review, median days from application to first conversation, stage conversions, withdrawals with reasons, scorecard compliance by interviewer, source channel performance measured in hires rather than applications, and the current stale list.
- Flag any requisition open more than 45 days with a prompt to revisit the spec, the compensation position or the sourcing channels - a role nobody good applies for is usually a role described badly or scoped wrongly.
- Create one task per hiring manager: clear your stale candidates or close the requisition.
Exit: none. This workflow runs permanently, and the stale list is the one number that tells you whether the pipeline is being run or merely owned.