An AI-powered cross-platform desktop application (Windows, macOS, Linux) that acts as a real-time interview assistant. The app listens to live interview audio, transcribes speech, detects questions using smart linguistic heuristics, and generates concise, speakable answers using Google Gemini 3.1 Flash Lite (Free) or OpenAI.
Download pre-built installers directly from the Latest Releases:
| Platform | Download | Format |
|---|---|---|
| 🍎 macOS (Apple Silicon) | Download .dmg | .dmg installer or .zip |
| 🪟 Windows (x64) | Download .exe | Setup installer .exe |
| 🐧 Linux (x64) | Download AppImage | .AppImage / .deb |
- ⚡ Google Gemini 3.1 Flash Lite — 100% Free AI tier for real-time answers, speech transcription, and screenshot problem analysis.
- 🎤 Real-Time Speech Recognition — Captures microphone or system audio and transcribes in real-time.
- 📸 Screenshot Analysis — Captures active interview/coding windows and analyzes LeetCode/System Design problems.
- 🤖 AI-Powered Answer Generation — Generates concise, natural, human-like answers tailored for verbal responses.
- 🔒 Screen Share Protection — Automatically hidden from screen recording & video calls (Zoom, Microsoft Teams, Google Meet).
- ⚡ Lightweight & Fast — Optimized bundle size with minimal startup latency and low memory footprint.
- 📌 Always on Top & Opacity Controls — Stays visible above interview windows with customizable window transparency.
- 🌙 Modern Dark Theme — Sleek UI built with React 19 and Tailwind CSS.
- 🌐 Cross-Platform Support — Runs natively on Windows, macOS, and Linux.
- Framework: Electron + electron-vite
- Frontend: React 19, TypeScript, Tailwind CSS
- State Management: Zustand
- Package Manager: pnpm
- AI Integrations: Google GenAI SDK (
@google/genai) & OpenAI Node SDK (openai) - Icons & Markdown: Lucide React, React Markdown & Prism Light Syntax Highlighter
Before running from source, ensure you have:
- Node.js: v18.0.0 or higher (Download Node.js)
- pnpm: Package manager (
npm install -g pnpm) - Google Gemini API Key (Free from Google AI Studio) or OpenAI API Key
# Clone the repository
git clone https://github.com/Aditya-Experiments/interview-copilot.git
cd interview-copilot
# Install dependencies
pnpm installStart the app in development mode with Hot Module Replacement (HMR):
npm run devBuild platform-specific packages for Windows, macOS, and Linux:
npm run build:winGenerates an executable installer (.exe) in the dist directory.
npm run build:macGenerates macOS bundle (.dmg / .app) in the dist directory.
npm run build:linuxGenerates Linux packages (.AppImage, .deb, .snap) in the dist directory.
# Run type checking
npm run typecheck
# Build bundle assets
npm run build- Launch the App: On first run, open Settings if your OpenAI API key is not yet set.
- Enter API Key: Paste your OpenAI API key and choose your preferred model (e.g.
gpt-4o-miniorgpt-4o). - Set Up Context (Optional): Paste your resume or background description in Settings to get personalized responses.
- Start Interview Session: Click Start to listen via Microphone or System Audio.
- Real-time Answers: As questions are spoken, the app detects pauses and streams answer suggestions.
- Take Screenshot Solution: Click Screenshot to capture an active problem statement or LeetCode question for step-by-step solutions.
interview-copilot/
├── electron-builder.yml # Electron Builder configuration
├── electron.vite.config.ts # Vite build setup for Main, Preload & Renderer
├── package.json # Project scripts & dependencies
├── resources/ # Application icons & branding assets
└── src/
├── main/ # Electron Main Process (Node.js)
│ ├── index.ts # App entry point & window manager
│ ├── ipc/
│ │ └── handlers.ts # IPC communication endpoints
│ └── services/
│ ├── historyManager.ts # Local history persistence
│ ├── openaiService.ts # Answer & solution generation
│ ├── questionDetector.ts # Linguistic question parser
│ ├── screenshotService.ts# Window capture service
│ ├── settingsManager.ts # Encrypted settings storage
│ ├── visionService.ts # OpenAI Vision analysis
│ └── whisperService.ts # Speech-to-text audio transcription
├── preload/ # Secure IPC bridge between Main & Renderer
│ ├── index.ts
│ └── index.d.ts
└── renderer/ # React Frontend (Vite)
└── src/
├── App.tsx # Main React application component
├── assets/ # Global CSS styles
├── components/ # Modular UI components
│ ├── AnswerPanel.tsx
│ ├── Header.tsx
│ ├── HistoryPanel.tsx
│ ├── MarkdownRenderer.tsx
│ ├── SettingsModal.tsx
│ ├── StatusBar.tsx
│ └── TranscriptPanel.tsx
├── hooks/ # Custom React hooks
├── services/ # Web Audio API capture processing
└── store/ # Zustand global state store
| Option | Description | Default |
|---|---|---|
| OpenAI API Key | API key used for Whisper transcription and GPT model calls | Required |
| OpenAI Model | Model used for generating interview answers | gpt-4o-mini |
| Resume Description | Optional candidate profile text for personalized context | Empty |
| Pause Threshold | Silence duration (ms) required to trigger question detection | 1500 ms |
| Window Opacity | Adjusts window transparency (30% to 100%) | 100% |
| Always on Top | Pins the application window above all other windows | Enabled |
- Screen protection (
setContentProtection) hides the window from Zoom, Microsoft Teams, and Discord screen shares. - Ensure microphone permissions are enabled in Windows Settings > Privacy & Security > Microphone.
- On macOS, grant Screen Recording and Microphone permissions under System Settings > Privacy & Security.
- System audio capture uses desktop audio streams supported on macOS 13+.
- PulseAudio / PipeWire manages microphone and desktop audio streams.
- Supported targets include
AppImage,deb, andsnap.
MIT License — feel free to use and adapt for your preparation.