AI-Powered Video Interview Analysis Platform
TrueVoice HQ is a comprehensive video interview platform that combines real-time video conferencing with advanced AI analysis to help hiring teams conduct and evaluate interviews more effectively. Built with modern web technologies and powered by cutting-edge AI services.
- Live Video Interviews — Real-time video conferencing with LiveKit integration
- AI-Powered Transcription — Real-time speech-to-text using Deepgram
- Intelligent Analysis — Automated interview insights powered by XAI Grok
- Multi-Role Support — Separate experiences for interviewers and candidates
- Team Collaboration — Company-based access with role-based permissions
- Automated Reporting — AI-generated interview reports and candidate evaluations
- Subscription Management — Tiered pricing with Stripe integration
- Real-time audio/video streaming with LiveKit
- Live transcription and sentiment analysis
- Frame-by-frame video analysis for authenticity detection
- Automated drip email campaigns for candidate follow-up
- Custom branding and theming support
- Responsive design with dark mode
- React 18 — Modern UI library with hooks
- TypeScript — Type-safe development
- Vite — Fast build tooling
- Tailwind CSS — Utility-first styling
- shadcn/ui — High-quality UI components
- Radix UI — Accessible component primitives
- Framer Motion — Smooth animations
- Supabase — PostgreSQL database, authentication, edge functions
- LiveKit — Real-time video/audio streaming
- Deepgram — Speech-to-text transcription
- XAI Grok — AI-powered interview analysis
- Stripe — Payment processing and subscriptions
- PostHog — Product analytics
@livekit/components-react— Pre-built LiveKit UI components@deepgram/sdk— Real-time transcription@supabase/supabase-js— Database and auth client@tanstack/react-query— Data fetching and cachingreact-router-dom— Client-side routingreact-hook-form+zod— Form validation
true-voice-insights/
├── src/
│ ├── components/ # Reusable UI components
│ ├── contexts/ # React context providers
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions and configurations
│ ├── pages/ # Route components
│ │ ├── Dashboard.tsx
│ │ ├── InterviewRoom.tsx
│ │ ├── InterviewerRoom.tsx
│ │ ├── CandidateInterview.tsx
│ │ └── Report.tsx
│ └── types/ # TypeScript type definitions
├── supabase/
│ ├── functions/ # Edge functions
│ │ ├── analyze-chunk/
│ │ ├── analyze-frame/
│ │ ├── generate-final-report/
│ │ ├── livekit-token/
│ │ └── stripe-*/
│ └── migrations/ # Database migrations
├── scripts/ # Build and setup scripts
└── public/ # Static assets
- Node.js 18+ or Bun runtime
- Supabase account and project
- LiveKit account and project
- Deepgram API key
- Stripe account (for billing)
- Clone the repository:
git clone https://github.com/patrickboxfordpartners/true-voice-insights.git
cd true-voice-insights- Install dependencies:
npm install
# or
bun install- Set up environment variables:
cp .env.example .envEdit .env with your credentials:
# Supabase
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key
# Deepgram
VITE_DEEPGRAM_API_KEY=your-deepgram-api-key
# LiveKit
VITE_LIVEKIT_URL=wss://your-project.livekit.cloud
LIVEKIT_API_KEY=your-api-key
LIVEKIT_API_SECRET=your-api-secret
# Stripe
STRIPE_SECRET_KEY=sk_live_...
STRIPE_PUBLISHABLE_KEY=pk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Site URL
VITE_SITE_URL=http://localhost:8080- Set up the database:
# Run the schema in your Supabase SQL Editor
cat supabase-schema.sql- Deploy edge functions (optional):
supabase functions deployStart the development server:
npm run dev
# or
bun devThe application will be available at http://localhost:8080.
npm run build
# or
bun run buildThe built files will be in the dist/ directory.
Run the automated Stripe setup script to create products and prices:
npm run stripe:setup
# or
tsx scripts/stripe-setup.ts- Create a LiveKit Cloud project
- Add API credentials to
.env - Configure webhooks for recording callbacks
- Create a Deepgram account
- Generate an API key with transcription permissions
- Add to
.env
The application uses several key tables:
- companies — Organization accounts
- profiles — User profiles with role-based access
- interviews — Interview sessions and metadata
- candidates — Candidate information
- transcripts — Timestamped transcription data
- analysis_chunks — Real-time AI analysis segments
- reports — Generated interview reports
See supabase-schema.sql for the complete schema.
Supabase edge functions power the backend:
analyze-chunk— Process interview audio chunksanalyze-frame— Video frame analysisgenerate-final-report— Compile interview insightslivekit-token— Generate video room tokensdrip-scheduler— Schedule follow-up emailsstripe-*— Payment processing webhooks
Brand assets and design guidelines are documented in BRANDING.md.
This project is optimized for deployment on:
- Vercel (recommended for frontend)
- Supabase (backend and database)
- LiveKit Cloud (video infrastructure)
Set environment variables in your deployment platform matching .env.example.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Source-available. You may read and fork this code for personal or educational use. Commercial use, redistribution, or deployment in a competing product is not permitted without written permission from Boxford Partners.
For issues or questions:
- Open an issue on GitHub
- Contact: patrick@boxfordpartners.com
Built with:
- LiveKit — Real-time video infrastructure
- Deepgram — AI speech recognition
- XAI Grok — Advanced AI analysis
- Supabase — Backend platform
- shadcn/ui — Component library
Status: Production-ready (Completed April 2026)