Skip to content

dpitcock/job-interview-avatar

Repository files navigation

InterviewAvatar

An open-source AI-powered interview agent that acts as your digital clone for Zoom job interviews. Uses your voice, face, and expertise to answer questions in real-time.

InterviewAvatar Demo

Features

  • 🧠 Multi-LLM Support: Ollama (local), OpenAI, Claude
  • 📚 RAG Pipeline: Upload your resume/experience for context-aware answers
  • 🎤 Voice Cloning: ElevenLabs integration for natural speech
  • 👤 Live Avatar: HeyGen streaming for real-time video
  • 🎥 Zoom Integration: OBS virtual camera + audio routing
  • Real-time: <5s end-to-end latency (question → video response)

Quick Start

Prerequisites

  • Node.js 18+
  • (Optional) Ollama for local LLM
  • (Optional) OBS Studio for Zoom integration

Installation

# Clone the repository
git clone https://github.com/yourusername/interview-avatar.git
cd interview-avatar

# Install dependencies
npm install

# Configure environment
cp .env.example .env.local
# Edit .env.local with your API keys

# Run development server
npm run dev

Open http://localhost:3000

Docker (Recommended)

# Start all services
docker-compose up -d

# Access at http://localhost:3000

Usage

1. Configure LLM

  • Go to Settings → Select your LLM provider
  • Local: Install Ollama + DeepSeek R1
  • Cloud: Add OpenAI or Anthropic API key

2. Upload Your Experience

  • Go to Setup → RAG
  • Upload resume, past interview answers, project descriptions
  • System will use this context for answers

3. Practice Mode

  • Go to Practice
  • Select a question
  • Generate AI response
  • Click "Speak Response" to hear it

4. Live Interview Mode

  • Go to Live
  • Start avatar session
  • Type or generate responses
  • Avatar speaks with lip-sync

5. Zoom Integration

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    User Question                            │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  LLM (Ollama/OpenAI/Claude) + RAG                           │
│  → Generates contextual answer                              │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  Voice Synthesis (ElevenLabs)                               │
│  → Converts text to speech                                  │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  Video Avatar (HeyGen Streaming)                            │
│  → Lip-synced video via WebRTC                              │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  OBS Virtual Camera → Zoom                                  │
│  → Appears as your camera in meetings                       │
└─────────────────────────────────────────────────────────────┘

Documentation

Tech Stack

  • Frontend: Next.js 16, TypeScript, Tailwind CSS
  • LLM: Ollama (DeepSeek R1), OpenAI, Anthropic
  • Voice: ElevenLabs
  • Video: HeyGen Streaming API
  • RAG: In-memory (ChromaDB planned)
  • Integration: OBS WebSocket, BlackHole (audio)

Performance

Target latencies:

  • LLM Response: <3s
  • Voice Synthesis: <2s
  • Video Streaming: <1s
  • Total: <5s (question → video)

Roadmap

  • Phase 1: Foundation (Next.js, UI, Config)
  • Phase 2: Text Generation (LLM + RAG)
  • Phase 3: Voice Synthesis
  • Phase 4: Video Avatar
  • Phase 5: OBS Integration
  • Phase 6: Deployment & Polish
  • ChromaDB integration
  • Local voice (OpenVoice)
  • Local video (LivePortrait)
  • Real-time transcription (Whisper)
  • Session recording & playback
  • Performance analytics

Contributing

Contributions welcome! See CONTRIBUTING.md

License

MIT License - see LICENSE

Disclaimer

This tool is for educational and practice purposes. Always disclose the use of AI assistance in actual job interviews where required by the employer.

Support

Acknowledgments


Star ⭐ this repo if you find it useful!

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages