Changelog
New updates and improvements
Changes for the public deploy push
Scheduling
New: Candidate self-scheduling — Send candidates a link to pick their own interview slot from your live availability. No back-and-forth emails.
New: Cancel interview — Cancel a scheduled interview from the candidate profile. The slot is freed instantly and the candidate's status updates.
New: Reschedule interview — Reschedule a booked interview with one click. A new scheduling link is automatically emailed to the candidate.
New: Mark as no-show — After a scheduled interview time passes, recruiters can mark the candidate as a no-show directly from their profile.
New: Automatic calendar sync — Your calendar availability refreshes automatically every 30 minutes. No manual sync button needed.
New: Timezone auto-detection — When you connect Google or Microsoft Calendar, your timezone is detected automatically from your calendar settings.
Timezone is now shown on the calendar settings panel and on the candidate-facing scheduling page so there's no confusion about what time zone slots are in
Slots now correctly reflect your local working hours (9am–5pm in your timezone) instead of showing times offset to UTC
Fixed slots appearing from 5am — caused by timezone defaulting to UTC on first connect
Booked or locked slots no longer appear as available to other candidates
Scheduling links from deleted candidates now show a clear "no longer available" page instead of an error
Candidate Scheduling Page (what candidates see)
New: Timezone selector — Candidates can switch the timezone on the scheduling page to see slots in their local time
New: "Already booked" screen — If a candidate opens a scheduling link after already booking, they see their confirmed time, Zoom link, and a note to contact the recruiter to reschedule
New: "Link expired" screen — If a scheduling link is more than 7 days old, candidates see a clear expiry message instead of a broken page
New: "Invitation cancelled" screen — Candidates who were cancelled see a friendly message with instructions to contact the recruiter
New: "Invalid link" screen — Handles links that are malformed or no longer valid with a clear explanation
Timezone label shown below the page heading so candidates always know what timezone the times are in
Candidate Profile (recruiter view)
New: Reschedule button — Visible when an interview is in
Scheduledstatus. Sends the candidate a fresh booking link and resets their status.New: Cancel interview button — Cancels the interview and frees the calendar slot
New: Mark no-show button — Appears after the scheduled interview time has passed
New: Warning banners — If a calendar event failed to create, a confirmation email failed to send, or an invite email bounced, a yellow warning banner appears at the top of the candidate profile with details and next steps
Invite email bounce detection — if a candidate's email bounces, their profile is automatically flagged
Candidate List
Fixed a bug where clicking a row checkbox would toggle selection on and off twice, making it impossible to select a single row
Row checkboxes and row click now behave independently as expected
Integrations
Google Calendar, Microsoft Outlook, Zoom, Greenhouse, Lever, and Ashby now display their official brand logos instead of plain text
Fixed a crash that occurred when opening the settings panel for a newly connected calendar account
Timezone in calendar settings now defaults to your browser's local timezone instead of UTC when first opening the settings dialog
Calendar settings now show a timezone dropdown with all IANA timezones for manual override
Email & Invites
Fixed: invite emails that silently failed to send now surface a clear error so recruiters know to retry or check their email configuration
Resending an invite to a cancelled candidate now generates a fresh scheduling link (old link is invalidated) and resets their status back to invited
Resend invite no longer sends a broken link after a reschedule
Added bounce webhook support — bounced emails are detected automatically and flagged on the candidate profile
AI Interviews
Fixed: AI note-taker was failing with a model error after interview completion — notes now generate reliably
Improved audio stream handling for more consistent transcription during live interviews
Camera stream now persists throughout the interview without dropping
Interview completion is now explicitly triggered by the AI at the right moment rather than by a timeout
ATS Integrations (Greenhouse, Lever, Ashby)
Candidate import schema aligned with all three ATS providers
Connected ATS accounts now show their official brand logo on the integrations page
Import flow improvements for candidates synced from external ATS systems
General & Stability
Scheduling links are now scoped to 7-day expiry windows — expired links show a helpful message instead of a generic error
Concurrent booking protection — if two candidates try to book the same slot at the same time, one is held for 5 minutes while the booking completes, preventing double-booking
Various improvements to error handling across the invite, booking, and calendar sync flows
Changelog - Testing Branch
Focus: Live Video Engine, AI Voice Interaction, and Recruitment Demo Mode.
🚀 New Features
🎙️ Next-Gen Voice Agent (Michelle)
Deepgram Voice Integration: Switched to Deepgram's real-time WebSocket agent for ultra-low latency voice interaction.
Michelle UI: Introduced "Michelle," the professional AI interviewer, with dedicated visual states for speaking and listening.
Barge-in Support: Candidates can now naturally interrupt Michelle. The AI detects candidate speech and stops talking immediately.
Crystal-Clear Audio: Implemented a new Web Audio scheduling engine that ensures zero-gap, high-fidelity playback of AI responses.
🧪 Demo Interview Mode
Risk-Free Testing: Recruiters can now launch "Demo Interviews" to experience the platform from a candidate's perspective.
No Credits Consumed: Demo sessions do not count against plan limits.
Sandbox Environment: Results from demo interviews are labeled clearly and do not impact production analytics or scoring.
🛡️ Enhanced Proctoring & Integrity
Tab-Switch Detection: Real-time monitoring for candidates who leave the interview tab.
Strike System: Automatic logging of "strikes" (warnings) for suspicious behavior, visible to recruiters in the final report.
Session Consistency: Improved persistence between the entry "Lobby" and the Live session to ensure camera and mic stability.
🔧 Technical Improvements
🏗️ AI & Processing Pipeline
LLM Adapter: Added a new adapter route to bridge Deepgram's voice stream with Claude's reasoning, providing more context-aware interview questions.
Scoring Overhaul: Significant performance and accuracy improvements to the
score candidateengine.Raw PCM Audio: Transitioned from MediaRecorder (compressed) to raw ScriptProcessor capture (linear16 PCM) for higher transcription accuracy.
📦 Backend & Data
Migration: Added database to support the new demo mode status and tracking.
Video Uploads: Refined the chunked video upload process for more reliable recording saving during long sessions.
🎨 UI/UX Updates
Redesigned Interview Room: Dark-themed, premium interface with focus on the conversation.
Pre-flight Lobby: A dedicated hardware check screen (Lobby) to ensure candidates have their camera and mic configured correctly before the session starts.
Live Indicators: Added animated waveforms and status badges to show when the AI is processing or delivering speech.
Date: March 21, 2026
Last updated