A fully voice-driven, multi-agent personal assistant built for student developers. One clap wakes it up. Four specialized AI agents brief you on jobs, emails, tasks, and DSA — all spoken aloud, hands-free.
NOVA is a Python-based voice assistant system that runs a sequential pipeline of 4 AI agents every morning. It listens for a physical clap sound, wakes up, and hands control to each agent one by one. Each agent fetches real-time data, summarizes it using Groq's ultra-fast LLM inference, and reads the result aloud in a male TTS voice.
Built for a pre-final year CS student managing internship work, job hunting, emails, and competitive programming prep simultaneously.
👏 Clap detected
↓
🔊 "Hello, NOVA systems online."
↓
① The Scout → finds today's best job openings matching your stack
② The Secretary → summarizes unread emails, flags what needs action
③ The Manager → reads your pending internship tickets
④ The Mentor → assigns 2 DSA problems based on your weakest topic
↓
🔊 Full spoken briefing delivered. Ready for your day.
| Layer | Technology |
|---|---|
| Language | Python 3.11+ |
| LLM Engine | Groq API — llama-3.3-70b-versatile |
| STT | Groq Whisper API |
| TTS | edge-tts (male voice, strict) |
| Clap Detection | PyAudio + numpy (RMS amplitude) |
| Orchestration | Python asyncio state machine |
| Job Search | JSearch API, Wellfound, RemoteOK, Internshala |
Gmail API (google-api-python-client) |
|
| Task Tracking | Notion API / Jira REST API / SQLite (configurable) |
| DSA Tracking | Local JSON (data/progress.json) |
- Searches across JSearch (Google Jobs), Wellfound, RemoteOK, Internshala, Unstop
- Covers all job types: remote, hybrid, onsite, internship, fresher, contract
- Filters strictly for your tech stack (Flutter, FastAPI, Python, Next.js, LangChain)
- Auto-discards roles requiring 2+ years of experience
- Scores jobs by stack overlap → speaks top 3 matches
- Fetches all unread Gmail from the last 24 hours
- Groq categorizes each thread:
urgent/reply_needed/fyi/junk - Delivers a concise spoken briefing of actionable items only
- Pulls "In Progress" and "To Do" tickets from Notion, Jira, or local SQLite
- Groq summarizes what must ship today, what is blocked, what can wait
- Spoken as a 4-sentence daily standup
- Tracks completion % across DSA topics (Tree DP, DFS, Graphs, Greedy, etc.)
- Matches your weakest topic against your target company's FAQ patterns
- Assigns exactly 2 problems to solve today, spoken aloud with difficulty level
NOVA/
├── main.py # Entry point — starts clap listener
├── config.py # API keys, stack filters, thresholds
├── orchestrator.py # Async state machine — controls agent flow
├── listener.py # PyAudio clap detection
├── tts/
│ └── speaker.py # edge-tts male voice wrapper
├── agents/
│ ├── scout.py # Agent 1: job finder
│ ├── secretary.py # Agent 2: Gmail summarizer
│ ├── manager.py # Agent 3: task tracker
│ └── mentor.py # Agent 4: DSA advisor
├── data/
│ ├── progress.json # DSA topic completion state
│ └── company_faq.json # Target company problem patterns
├── config/
│ └── credentials.json # ⚠️ Google OAuth — never commit this
├── .env.example # API key template — copy to .env
├── .gitignore
├── requirements.txt
└── README.md
git clone https://github.com/ankit071105/NOVA.git
cd NOVApython3 -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windowspip install -r requirements.txtcp .env.example .envEdit .env and fill in your keys:
GROQ_API_KEY=your_groq_api_key_here
JSEARCH_API_KEY=your_jsearch_key_here
GMAIL_CREDENTIALS_PATH=config/credentials.json
NOTION_TOKEN=your_notion_token_here- Go to Google Cloud Console
- Create a project → enable Gmail API
- Create OAuth 2.0 credentials → download as
credentials.json - Place it at
config/credentials.json(already in.gitignore)
Edit config.py:
USER_STACK = ["flutter", "fastapi", "python", "next.js", "langchain", "react"]
TARGET_COMPANY = "Google" # or any company in company_faq.json
CLAP_THRESHOLD = 3000 # adjust for your mic sensitivitypython main.pyClap once. NOVA wakes up and begins the briefing.
| Variable | Description |
|---|---|
GROQ_API_KEY |
From console.groq.com |
JSEARCH_API_KEY |
From RapidAPI JSearch |
GMAIL_CREDENTIALS_PATH |
Path to your Google OAuth credentials JSON |
NOTION_TOKEN |
From Notion integrations settings |
pyaudio
numpy
groq
edge-tts
google-api-python-client
google-auth
google-auth-oauthlib
notion-client
aiohttp
requests
python-dotenv
- Never commit
.envorconfig/credentials.json— both are in.gitignore - Use
.env.exampleas the template for others to fill in - If you accidentally commit secrets, rotate them immediately at their respective consoles
- WhatsApp briefing mode via Twilio
- Web dashboard to view agent outputs visually
- Custom wake word instead of clap
- Voice input for follow-up queries mid-briefing
- LeetCode API integration for auto-tracking solved problems
Ankit Kumar B.Tech Computer Science, ITER SOA University (2023–2027) Flutter/Backend Intern @ Fastpeer AI Corp | ML Intern @ Celebal Technologies
MIT License — feel free to fork, extend, and build your own NOVA.