A real-time AI assistant that listens to interview questions (voice or typed), and streams answers to a floating overlay window that is completely hidden from screen recording, Zoom/Meet screen share, taskbar,and Alt+Tab.
C:\Users\user\Downloads\
β
βββ interview-agent\ β Main project folder
β βββ backend\ β Python FastAPI backend
β β βββ data\
β β β βββ resumes.json β Stored resumes
β β βββ .venv\ β Python virtual environment
β β βββ .env β API keys and config
β β βββ main.py β Main FastAPI app + WebSocket endpoints
β β βββ llm_service.py β LLM responses (Groq LLaMA)
β β βββ stt_service.py β Speech-to-Text (Groq Whisper)
β β βββ screen_service.py β Screenshot OCR
β β βββ resume_db.py β Resume storage
β β βββ overlay.html β Floating overlay UI
β β βββ requirements.txt β Python dependencies
β β
β βββ electron\ β Electron files (not used in final setup)
β β βββ main.js
β β βββ preload.js
β β
β βββ frontend\ β React frontend (not used in final setup)
β β βββ src\
β β βββ App.jsx
β β βββ index.html
β β βββ main.jsx
β β βββ overlay.jsx
β β βββ vite.config.js
β β
β βββ node_modules\
β βββ .env.example
β βββ package.json
β βββ README.md
β
βββ ai-overlay\ β Electron wrapper (hides from screen share)
βββ main.js β Electron main process
βββ package.json β Node dependencies
βββ start.vbs β Silent launcher script
βββ node_modules\
β Only two folders matter for daily use:
interview-agent\backend\β the Python backendai-overlay\β the Electron overlay window
| Component | Technology | Purpose |
|---|---|---|
| Backend | Python + FastAPI | WebSocket server, REST API |
| STT | Groq Whisper (whisper-large-v3-turbo) | Speech to text |
| LLM | Groq LLaMA (llama-3.3-70b-versatile) | AI answers |
| Overlay UI | HTML + CSS + JavaScript | Floating overlay interface |
| Desktop App | Electron | Hides overlay from screen capture |
| Background Service | Windows Task Scheduler | Runs backend silently |
Located at:
C:\Users\user\Downloads\interview-agent\backend\.env
Contents:
GROQ_API_KEY=your_groq_key_here
GROQ_MODEL=llama-3.3-70b-versatile
AUDIO_SAMPLE_RATE=16000
RESUME_STORE_PATH=data/resumes.json
Get free Groq API key at: https://console.groq.com/keys
These steps were completed during initial setup. Listed here for reference only.
cd C:\Users\user\Downloads\interview-agent\backend
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install groqcd C:\Users\user\Downloads\ai-overlay
npm installRun PowerShell as Administrator:
$action = New-ScheduledTaskAction -Execute "C:\Users\user\Downloads\interview-agent\backend\.venv\Scripts\python.exe" -Argument "-m uvicorn main:app --host 0.0.0.0 --port 8000" -WorkingDirectory "C:\Users\user\Downloads\interview-agent\backend"
$trigger = New-ScheduledTaskTrigger -AtLogOn
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit 0 -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1)
Register-ScheduledTask -TaskName "AIInterviewBackend" -Action $action -Trigger $trigger -Settings $settings -RunLevel Highest -ForceDouble-click Start AI Backend shortcut on desktop.
Or run in PowerShell:
Start-ScheduledTask -TaskName "AIInterviewBackend"Verify it is running:
Invoke-RestMethod http://localhost:8000/healthShould return: status: ok
Double-click AI Interview shortcut on desktop.
Or run manually:
cd C:\Users\user\Downloads\ai-overlay
npx electron .- Click π€ Start button
- Speak your question naturally
- Wait ~1.5 seconds of silence
- AI answer streams automatically
- Mic resumes listening for next question
- Repeat β works like a continuous conversation
Or type any question in the bottom text box and press Enter.
Double-click Stop AI Backend shortcut on desktop.
Or run in PowerShell:
Stop-ScheduledTask -TaskName "AIInterviewBackend"- Click Start once β listens continuously forever
- Speak naturally at normal speed
- Orange countdown bar appears when you stop speaking
- After 1.5 seconds of silence β auto-sends to AI
- Answer streams in the overlay
- Mic auto-resumes after answer is done
- Click Stop only when you want to completely stop
- π§ Use headphones β prevents mic picking up AI answer from speakers
- π£οΈ Speak clearly for at least 2-3 seconds
- π Mic auto-mutes while AI is responding
- β¨οΈ Use text box for coding/DSA questions (more accurate than voice)
Type any question in the bottom box and press Enter or click Ask β
Works great for:
- Coding:
Write a binary search in Python - DSA:
Explain merge sort time complexity - System design:
Design a URL shortener - HR:
What are your strengths - Any technical topic
| Control | Description |
|---|---|
| π€ Start button | Start continuous listening |
| βΉ Stop button | Stop listening |
| Opacity slider | Adjust transparency (15% to 100%) |
| W slider | Adjust width of overlay |
| H slider | Adjust height of overlay |
| π button | Clear current response |
π How It Is Hidden From Everyone
Hidden from screen recording (OBS, Windows Record):
win.setContentProtection(true) in Electron uses Windows API
SetWindowDisplayAffinity(WDA_EXCLUDEFROMCAPTURE) β the window
is excluded from ALL screen capture at OS level.
Hidden from Zoom/Meet screen share:
Same setContentProtection(true) β Zoom cannot capture it.
The overlay appears on YOUR physical monitor but shows as
a black/empty area in any screen capture tool.
Hidden from taskbar:
skipTaskbar: true and win.setSkipTaskbar(true) in Electron.
Hidden from Alt+Tab:
hookWindowMessage intercepts focus messages so window
never appears in the Alt+Tab switcher.
Backend hidden:
Runs as Windows Task Scheduler task β no terminal window, no process visible in taskbar, starts automatically on login.
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Desktop\AI Interview.lnk")
$Shortcut.TargetPath = "wscript.exe"
$Shortcut.Arguments = "C:\Users\user\Downloads\ai-overlay\start.vbs"
$Shortcut.IconLocation = "shell32.dll,13"
$Shortcut.Save()$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Desktop\Start AI Backend.lnk")
$Shortcut.TargetPath = "powershell.exe"
$Shortcut.Arguments = "-WindowStyle Hidden -Command Start-ScheduledTask -TaskName AIInterviewBackend"
$Shortcut.IconLocation = "shell32.dll,13"
$Shortcut.Save()$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Desktop\Stop AI Backend.lnk")
$Shortcut.TargetPath = "powershell.exe"
$Shortcut.Arguments = "-WindowStyle Hidden -Command Stop-ScheduledTask -TaskName AIInterviewBackend"
$Shortcut.IconLocation = "shell32.dll,131"
$Shortcut.Save()| Action | Command |
|---|---|
| Start backend | Start-ScheduledTask -TaskName "AIInterviewBackend" |
| Stop backend | Stop-ScheduledTask -TaskName "AIInterviewBackend" |
| Check status | Get-ScheduledTask -TaskName "AIInterviewBackend" | Select-Object State |
| Restart | Stop-ScheduledTask -TaskName "AIInterviewBackend"; Start-ScheduledTask -TaskName "AIInterviewBackend" |
| Test backend | Invoke-RestMethod http://localhost:8000/health |
- Running = β Active and working
- Ready = β Stopped, not running
- Disabled = β Disabled, needs to be enabled
Open the .env file:
notepad C:\Users\user\Downloads\interview-agent\backend\.envReplace the key and save. Then restart the backend:
Stop-ScheduledTask -TaskName "AIInterviewBackend"
Start-ScheduledTask -TaskName "AIInterviewBackend"Start-ScheduledTask -TaskName "AIInterviewBackend"
Invoke-RestMethod http://localhost:8000/healthBackend stopped. Start it again:
Start-ScheduledTask -TaskName "AIInterviewBackend"cd C:\Users\user\Downloads\ai-overlay
npx electron .netstat -ano | findstr :8000
taskkill /PID <pid_number> /F
Start-ScheduledTask -TaskName "AIInterviewBackend"Wait a few minutes (free tier has daily token limits) or get a new API key at https://console.groq.com/keys
- Check mic is set as default in Windows Sound Settings
- Speak louder and closer to mic
- Use headphones to prevent echo
- Check volume bar in overlay is moving when you speak
| Endpoint | Method | Description |
|---|---|---|
/health |
GET | Check if backend is running |
/overlay |
GET | Serve the overlay HTML |
/resume |
POST | Upload candidate resume |
/resume/{name} |
GET | Get stored resume |
/ask |
POST | Stream answer for typed question |
/ws/audio |
WebSocket | Real-time audio transcription + LLM |
/ws/screen |
WebSocket | Screenshot OCR + LLM |
- Never share your
.envfile β it contains your API keys - Never paste your API keys in chat or publicly
- If key is exposed, go to https://console.groq.com/keys and delete it immediately
- The overlay window content is protected from screen capture at OS level
- Backend only runs on localhost β not accessible from internet
BEFORE INTERVIEW:
1. Double-click "Start AI Backend" on desktop
2. Double-click "AI Interview" on desktop
3. Click Start in overlay
DURING INTERVIEW:
- Speak naturally β answer appears automatically
- Type in bottom box for coding/DSA questions
- Drag overlay anywhere on screen
- Adjust opacity/size with sliders
AFTER INTERVIEW:
- Double-click "Stop AI Backend" on desktop
- Close Electron overlay window