Interview scheduling is built around offering candidates a small set of slots and letting them choose. There is no full calendar integration in v0.5 — that is on the roadmap — but the slot-offer model handles the common cases without it.
Where to schedule
From a candidate's detail panel (open the candidate from the pipeline), click Schedule interview. A drawer opens.
You can also schedule an interview with an existing employee — for an internal-mobility panel, a stay conversation, or a development check-in — without any hiring pipeline. It is the same drawer everywhere; only the entry point changes:
- From the People tab — click Schedule interview in the People header (HR admins and line managers). The drawer's interviewee field is a searchable, scrollable list of employees; find the person, then offer slots as usual.
- From an employee's profile — open any employee and click Schedule interview. The same drawer opens with that employee already selected as the interviewee — you can still search the list and switch to a different employee.
- From the Interviews tab — click Schedule interview in the Hire → Interviews header (or in the empty state when no interviews exist yet). The drawer opens with no one pre-selected; pick the interviewee from the searchable list of everyone in the workspace, then offer slots as usual.
In both employee paths the interviewer field is the same searchable multi-select of workspace admins, and the employee receives the offer in their My interviews tab and picks a slot exactly like a candidate.
The Interviews tab
Every interview you schedule shows up in one place: Hire → Interviews in the sidebar. The tab lists every interview in the workspace, newest first, with — for each one — the candidate, the role, the assigned interviewer(s), and a status that makes the key question obvious at a glance: has the candidate selected a slot or not?
- Awaiting candidate selection (amber) — the offer is out; no slot picked yet.
- Candidate selected a slot (green) — with the confirmed time shown in Riyadh time.
- New times requested (red, with an alert icon) — the candidate asked for a fresh set of slots (see below).
- Completed / Cancelled for closed-out records.
Header chips summarise the counts (total, awaiting, selected, and any new-times requests) so you can triage at a glance. A Schedule interview button sits in the tab header (and in the empty state) so you can open the shared drawer and book one without leaving the list.
You can also bulk-schedule: select multiple candidates in the pipeline, then choose Schedule interviews from the bulk menu. The same set of slots is offered to all selected candidates; whoever picks first locks that slot, and the rest are notified to choose from the remaining slots.
What you fill in
The drawer opens with the interviewee — the candidate you opened it from — already selected and shown read-only at the top. (When you schedule with an employee from the People tab or an employee profile, the interviewee is a searchable list instead, pre-selected to that employee where there is one, so you can confirm or change who is being interviewed.) You then fill in:
- Slot offers — between two and five proposed times. For each slot you set the date, the start time, and the duration (30, 45, or 60 minutes).
- Interviewer(s) — a searchable multi-select of workspace admins only (HR admins and line managers); employees, candidates, and trainers are never offered as interviewers. You must pick at least one interviewer — an interview with no interviewer (or no interviewee) can't be created, and the drawer blocks the send until both are set. Each selected interviewer is emailed an invitation the moment you schedule, with the candidate's CV attached as a file so they can prepare.
- Mode — In person (with location field), Video (with meeting link), or Phone.
The candidate is not auto-assigned to a slot; they choose.
What the candidate receives
A short email titled Interview invitation with the role title and the workspace name. The body explains the role, lists the slots in Riyadh time, and contains a single link /interviews/{token} where they pick one.
The pick page is unauthenticated — the token in the URL is the auth. It renders in a branded card that matches the rest of the product, with the workspace name in a slim header and the slots grouped by day for scannability. Each slot shows its time with the Gregorian day heading and a parallel Hijri date, plus an explicit Riyadh time label — the Hijri reference is rendered for both AR and EN candidates, since Saudi government candidates frequently toggle to EN but still expect it. The candidate picks one slot and confirms; they receive an .ics calendar file in the confirmation email so they can add it to their calendar of choice.
Slots that became unavailable
A slot you offered can quietly go stale: between proposing it and the candidate opening the page, one of the interviewers may get booked on another interview at that time. The pick page detects the conflict and disables that slot — it's shown struck-through and labelled No longer available, and cannot be chosen. The same check runs again at the moment the candidate confirms, so a slot that goes unavailable in an already-open tab is still rejected (the candidate is asked to pick another or request new times). A conflict means an interviewer already has a confirmed interview whose time window overlaps the offered slot.
Requesting new times
If none of the offered slots work — or all of them have become unavailable — the candidate can tap Request new times on the pick page. This does three things:
- The interview is flagged as awaiting a fresh proposal, and the candidate sees a confirmation that their request was sent.
- A notification goes to every HR admin in the workspace (the bell in the top bar), linking straight to the Interviews tab.
- The candidate's card in the hiring pipeline lights up with a Requested new interview times activity badge, and the row in the Interviews tab gains a red alert icon — so the request can't be missed from either surface.
You resolve it in place with Propose new times — no need to cancel and start over. The button sits on the interview from two places: the row's action in the Hire → Interviews tab (prominent on any row flagged New times requested), and the interview's header in the candidate's Assessments & interviews section. It opens the same drawer, prefilled with the current slots, so you adjust or replace them and send. This edits the same interview — the candidate's original link now shows the new times — clears the request flag, and re-sends the invitation email (and re-notifies the interviewers). Because it's still an open offer (not a confirmed slot), nothing is cancelled: if the candidate meanwhile finds one of the original slots that works, they can still pick it, which also clears the request.
Propose new times is available on any interview that is still awaiting selection, whether or not the candidate has asked for new times — use it to correct a slot, add another option, or swap an interviewer before the candidate confirms. Once a slot is confirmed, editing in place is deliberately not offered; use the cancel-and-re-offer flow below instead.
Where recipients pick a slot
The emailed link is the primary path, but logged-in recipients also see the offer inside their portal — with the same wording everywhere (Awaiting your slot selection → a Pick a slot button):
- Candidates — under Interviews, and on an application's detail page while the stage is
INTERVIEWING. For candidates the Pick a slot button opens the picker inside the candidate portal — the portal header and the Interviews tab stay in place, so they are never dropped onto a bare page. The unauthenticated emailed/interviews/{token}link still works for anyone not logged in, and renders the same branded card. - Employees — in their dedicated My interviews tab (technical interviews scheduled via develop/assign land here too):
OFFEREDshows a Pick a slot button that opens the branded/interviews/{token}page,CONFIRMEDshows the scheduled time with add-to-calendar / join. - Trainers — on the trainer application's detail page: a Pick a slot button (opening the branded
/interviews/{token}page) while the offer is open, and the confirmed time once chosen.
What happens after pick
When the candidate confirms a slot:
- The other slots are released.
- Every interviewer on the meeting is emailed that the candidate picked a slot — with the candidate's name, the role, the chosen time, and the location/meeting link — each in their own language. They also see the confirmed time in their portal.
- The candidate's pipeline stage advances to
INTERVIEWING(if not already there). - The interview record moves from
OFFEREDtoCONFIRMED.
If the candidate does not respond
The token expires after seven days. If no slot is picked, the interview record auto-expires and the candidate's pipeline stage stays as it was. You can re-issue a fresh slot offer from the same drawer, or follow up by hand.
Rescheduling
A candidate or interviewer who needs to reschedule a confirmed interview contacts you (the HR admin) directly in v0.5. From the interview record, click Cancel and re-offer to release the locked slot and propose a new set of slots. The original interview record is marked CANCELLED and a new one is created — both are preserved for audit.
While an offer is still open (no slot confirmed yet), you don't cancel at all — use Propose new times to edit the offered slots in place on the same interview (see Requesting new times above). In-place editing of a confirmed interview slot is deliberately not supported in v0.5; the cancel-and-re-offer flow is intentional there, since calendar invites that change in place tend to confuse downstream calendar clients.
Calendar (.ics) export
The .ics file is generated server-side. It contains the standard fields a calendar expects: title (Interview with — ), start, end, location or meeting URL, organiser email, attendee email. It does not yet round-trip to an OAuth-managed calendar (Google Calendar / Outlook integration is on the v0.6 list).
Next
With the interview confirmed and on the calendar, the next page covers conducting the interview itself — the rubric-guided notes flow.