Candidate Flow
Candidate Flow
The end-to-end candidate experience from receiving an interview link to completing the live AI interview.
When a recruiter approves an interview plan, the system generates a time-limited, token-based interview link and sends it to the candidate. The candidate then follows a secure, guided flow: identity verification via OTP, device pre-check, and the live AI-conducted interview session.
Flow Steps
| Step | Page | Description |
|---|---|---|
| 1 | /interview/join/:token | View interview details, send OTP, verify identity |
| 2 | /interview/pre-check/:token | Test camera and microphone before joining |
| 3 | /interview/:sessionId | Live AI interview — audio + real-time conversation |
Guides
Interview Link
The interview link is generated when the recruiter approves the plan. It contains a signed access token that expires in 7 days (configurable per tenant).
text
https://app.ai-interview.com/interview/join/abc123token
^^^^^^^^^^^
Access token embedded in URL path| Property | Value |
|---|---|
| Token type | URL-safe signed string (UUID-based) |
| Expiry | 7 days from generation (configurable) |
| Auth method | Token itself is the credential — no JWT required |
| OTP required | Yes — candidate must verify email ownership |
| Single-use | No — candidate can rejoin if session disconnects |
Session Storage Keys
The candidate frontend stores session state in sessionStorage (cleared when the browser tab closes):
| Key | Value | Set At |
|---|---|---|
| interview_session_token | Session JWT from OTP verify | After OTP verification |
| interview_token | URL access token | After OTP verification |
| interview_candidate_name | Candidate full name | After OTP verification |
| interview_position | Job position title | After OTP verification |
| interview_tenant_id | Tenant UUID | After start call |
Candidates do not need to create an account. The interview link and OTP provide sufficient identity verification for the session.
Was this page helpful?