Recruiting agencies and headhunters
Recruiting Agency Interview Scheduling: Candidate Holds and Expiry
Candidate availability is perishable. ‘Thursday afternoon works’ is not a reservation forever. The client panel may still be arguing about a required interviewer while the candidate takes another call, the hiring manager’s Microsoft calendar changes, and a tentative hold starts looking like a confirmed interview. If nobody owns expiry, the recruiter inherits the collision.
Control candidate windows and holds in eight steps
Use one agency-led client interview with a candidate, hiring manager, two required interviewers, and one optional observer. The candidate shares bounded windows without connecting a calendar. The client spans Google and Microsoft. One interviewer answers late, and one proposed slot becomes stale before approval.
- 1
Open one interview coordination record
Store search ID, candidate, client, role, interview stage, purpose, duration, format, bounded date window, scheduling deadline, candidate time zone, required and optional roles, approved substitutes, agency owner, client owner, privacy rule, outreach consent, approval mode, and ATS references. Define completion as one verified invitation or a bounded terminal decision.- The stage and required panel are explicit before availability collection.
- Candidate contact authority and approved channel are recorded.
- An ATS status, proposed time, or tentative hold does not count as a booked interview.
- 2
Define the four scheduling states
Keep availability window, slot proposal, tentative hold, and confirmed interview separate. A window says a participant reported or appeared free. A proposal is derived overlap. A hold reserves a slot under declared policy. Only a confirmed interview has final approval, one canonical event, and verified invitations.- Every surface labels tentative and confirmed state clearly.
- A hold cannot inherit confirmation language by accident.
- State transitions have an owner, timestamp, meeting revision, and reason.
- 3
Collect candidate windows with an explicit expiry
Ask for bounded windows in the candidate’s local time, plus notice needs, blackout periods, preferred channel, and how long the response should be treated as current. Explain the client, stage, duration, format, disclosed purpose, and response use. Calendar connection is optional; do not ask for a full personal or current-employer calendar.- Ambiguous date or zone language receives one narrow clarification.
- A candidate correction supersedes old windows and invalidates affected proposals.
- The candidate can decline, withdraw a window, or ask the recruiter to take over.
- 4
Resolve the external panel against current evidence
Read approved Google and Microsoft free/busy for connected hiring-team calendars. Request bounded windows from anyone unconnected. Normalize participant role, source, retrieval or reply time, IANA zone, consent, freshness, and provider error. Intersect the candidate with every required role and score optional attendance only after quorum passes.- Missing provider access is not interpreted as an open client calendar.
- An optional observer can improve a proposal without blocking it.
- Private event titles, other searches, and unrelated attendees stay out of the record.
- 5
Create a hold ledger before placing calendar holds
For each proposed hold, record proposal ID, exact slot, participants covered, evidence versions, candidate disclosure, client approver, hold owner, expiry, release rule, and whether a tentative provider event is authorized. If calendar holds are not approved, keep the reservation in the coordination record and label collision risk instead of writing hidden events.- One candidate window cannot become several unexplained holds across the same search.
- A hold expiry is visible to agency and client owners.
- Tentative event titles disclose no more search or candidate data than policy allows.
- 6
Approve or release before evidence goes stale
Route the client one decision package: required role coverage, exact interviewer assignment, optional attendance, candidate window status, calendar freshness, hold expiry, and the smallest exception. On approval, re-check required evidence. On rejection, required decline, or expiry, release the hold and preserve unaffected candidate windows for the next proposal.- The candidate is not asked to solve an internal client staffing decision.
- Approval binds to the current panel, slot, meeting revision, and disclosure.
- Expired holds cannot be revived without fresh evidence and any required candidate confirmation.
- 7
Commit one confirmed interview
Use one booking idempotency key tied to the approved proposal and revision. Re-check candidate and required interviewer evidence, write one canonical event, persist provider correlation and event identifiers, send invitations, and read the event back. Reconcile an uncertain provider timeout before repeating any write.- The final event includes the candidate and every approved required interviewer.
- Repeated commands return the original result instead of another invitation.
- Every unused tentative hold is released or closed according to policy.
- 8
Recover expiry without restarting the search
When a candidate window, client calendar, approval, or hold expires, identify the smallest broken evidence set. Keep the stage, panel roles, privacy boundary, consent, and unaffected windows. Request only the needed update, rebuild proposals, and return one bounded decision to the recruiter or client owner. Trace every wait, reminder, expiry, release, booking attempt, and final invitation.- The candidate does not receive another broad availability request when one answer will do.
- Every exception has one owner, deadline, and safe next action.
- Recruiters can reconstruct the state without reply-all archaeology.
A hold is a promise about state, not a vague calendar block
The candidate, agency, and client should know whether a slot is merely possible, actively held, awaiting client approval, expired, released, or confirmed. Those words need exact state behind them. A tentative event with no owner or expiry creates confidence without commitment.
The hold ledger keeps that promise honest. It names the evidence, people, approval, disclosure, and release policy behind each reservation. When one calendar changes, the recruiter can repair the affected proposal instead of guessing which block still matters.
The candidate should not carry the client’s coordination debt
A candidate can provide current windows and respond to a clear proposal. They should not be asked to chase a hiring manager, interpret which panelist is required, compare client calendars, or preserve several tentative options while the client decides internally.
Keep client staffing and substitute decisions with the client owner. Keep candidate judgment and relationship context with the recruiter. Let the coordination record join the approved decisions without exposing internal debate across the company line.
An ATS stage or self-scheduling link is not hold execution
An ATS can store stage and interview-plan data. A self-scheduling link can let a candidate choose configured host availability. A poll can gather votes. Calendar sync can expose conflicts. An AI assistant can draft the reminder. Each can support the agency.
Scheduling execution owns required and optional roles, connected or conversational availability, time zones, consent, proposals, holds, expiry, client approval, one event, invitations, and recovery. The recruiter keeps candidate judgment, client relationships, interview design, and sensitive exceptions.
Run the stale-hold acceptance test
Create two valid proposals from the candidate’s bounded windows. Place one approved tentative hold. Then change a required Microsoft calendar, let the client approval expire, and deliver the candidate’s same reply twice while the optional observer remains unconnected.
Pass when the system suppresses the duplicate, invalidates the stale proposal, releases or closes the hold, preserves the second current window, coordinates the optional observer without blocking quorum, obtains new approval, and verifies one interview. Fail when both holds appear confirmed or the candidate must restart the process.
Compare interview scheduling by hold ownership
The useful agency workflow tells every party which availability is current, which slot is tentative, when it expires, who must decide, and what proves the interview is booked.
| Decision vector | Recruiter relay, spreadsheet, and manual holds | ATS self-schedule, booking link, or poll | WonderCal execution direction |
|---|---|---|---|
| Coordination completion | The recruiter owns windows, panel overlap, holds, expiry, approval, invitation, and cleanup. | Can finish stable configured interviews while external panel and hold state may remain coordinator work. | Target path carries the interview brief through one verified invitation or a bounded decision. |
| Cross-company reach | Works because the recruiter joins candidate, agency, and client state by hand. | Candidates can access a shared surface; client coverage depends on configured hosts and access. | Designed for candidate, agency, and client people across Google, Microsoft, and unconnected calendars. |
| Privacy | Depends on careful threads, aliases, tentative titles, and forwarded holds for every revision. | Depends on configuration and the candidate or panel data copied into each surface. | Target model coordinates on private free/busy or bounded windows with approved disclosure. |
| Exception handling | The recruiter has full context and carries every routine expiry, decline, and repair. | A stale host, required-panel change, or expired hold may return to a coordinator without one state record. | Designed to reopen the smallest broken evidence set and return one decision to the right owner. |
| Time and cost | No new platform path; placement time becomes hold tracking and calendar dispatch. | Fast for standard cases; savings depend on external panel and expiry work left behind. | Value comes from completing the agency-client loop while recruiters keep candidate and client judgment. |
Coordination completion
Recruiter relay, spreadsheet, and manual holds
The recruiter owns windows, panel overlap, holds, expiry, approval, invitation, and cleanup.
ATS self-schedule, booking link, or poll
Can finish stable configured interviews while external panel and hold state may remain coordinator work.
WonderCal execution direction
Target path carries the interview brief through one verified invitation or a bounded decision.
Cross-company reach
Recruiter relay, spreadsheet, and manual holds
Works because the recruiter joins candidate, agency, and client state by hand.
ATS self-schedule, booking link, or poll
Candidates can access a shared surface; client coverage depends on configured hosts and access.
WonderCal execution direction
Designed for candidate, agency, and client people across Google, Microsoft, and unconnected calendars.
Privacy
Recruiter relay, spreadsheet, and manual holds
Depends on careful threads, aliases, tentative titles, and forwarded holds for every revision.
ATS self-schedule, booking link, or poll
Depends on configuration and the candidate or panel data copied into each surface.
WonderCal execution direction
Target model coordinates on private free/busy or bounded windows with approved disclosure.
Exception handling
Recruiter relay, spreadsheet, and manual holds
The recruiter has full context and carries every routine expiry, decline, and repair.
ATS self-schedule, booking link, or poll
A stale host, required-panel change, or expired hold may return to a coordinator without one state record.
WonderCal execution direction
Designed to reopen the smallest broken evidence set and return one decision to the right owner.
Time and cost
Recruiter relay, spreadsheet, and manual holds
No new platform path; placement time becomes hold tracking and calendar dispatch.
ATS self-schedule, booking link, or poll
Fast for standard cases; savings depend on external panel and expiry work left behind.
WonderCal execution direction
Value comes from completing the agency-client loop while recruiters keep candidate and client judgment.
Frequently asked questions
What is a candidate interview hold?
How long should candidate availability remain valid?
Should recruiting agencies place tentative calendar events?
Does a candidate need to connect a personal calendar?
Where can recruiting agencies review WonderCal?
Primary sources
- Greenhouse Developer Resources — official recruiting-system API entry points for candidates, interviews, webhooks, and audit data
- Ashby Developer API: Create interview schedule — official interview-schedule operation and recruiting-system boundary
- Google Calendar API: Freebusy query — official Google availability request, group expansion, time-zone, and error fields
- Microsoft Graph: calendar getSchedule — official Microsoft availability operation and least-privileged permission guidance
- ICO: A guide to the data protection principles — official purpose limitation, data minimization, accuracy, retention, security, and accountability guidance
Make every hold honest
Give the coordination layer current candidate windows, required panel roles, approval, and expiry. Keep candidate judgment and client relationships with the recruiter while one interview moves to verified invitations.
See WonderCal for recruiting agencies