Skip to main content
Restricted Access: This documentation is only accessible to @tenzo.ai and @salv.ai email addresses.

What the candidate sees

A candidate with an interview link picks a time, confirms their details, and lands on a scheduled confirmation. A candidate with a reschedule link repeats the same three steps against their existing appointment. Those three screens stay distinct:
  1. Calendar — pick a date, time, and timezone. Times must be at least five minutes away. The list refreshes while the page is open, and a selected time is cleared if it becomes too close to book.
  2. Confirmation — review the appointment and submit name, email, and phone. If the time becomes unavailable while the candidate is reviewing it, the page asks them to choose another time instead of showing a raw scheduling error.
  3. Scheduled — confirmation of the booked (or rescheduled) time, with the join link.
When a candidate returns to the calendar because a time expired, their entered contact details remain available when they reach confirmation again. The same expiry recovery applies while rescheduling, including when the server detects the timing race during final submission. The product copy talks about a job, never a campaign.

Shared job display

Every scheduling screen shows the same employer chrome: logo, job title, interviewer name, and language switcher when the job allows candidate language choice. Job details come from the public interview-settings fetch, keyed on the job id. The id is resolved once:
  • From the interview link on the book-a-time calendar and confirmation screens.
  • From the job id already stored for that link on the booked-success screen, so a later pause of the job or a brief link outage cannot blank the header.
  • From the existing appointment on the reschedule flow (timeline metadata, then the scheduled-interview record).
URL branding (logoUrl, languageMode) still wins over fetched branding so a shared link does not flip chrome between steps. If that resolution fails, the candidate sees an error under the header with a Retry action. They cannot continue to the next step until it succeeds. The same retry appears on the reschedule-reason screen. The page does not continue with a blank logo and empty job title.

What does not change

  • The live interview (camera, recording, LiveKit) is a separate surface.
  • Pre-call device checks are a separate surface.
  • Hiring-manager intake is a separate product page and stays English.
  • Human follow-up interview scheduling and recruiter-facing scheduling are unchanged.