A conversational AI agent built for the Eightfold Agentic AI Internship assignment.
This project allows users to practice interviews with a realistic AI interviewer and receive detailed, professional feedback.
- Conducts mock interviews for selected job roles
- Asks contextual follow-up questions
- Adapts to user response style (efficient, confused, chatty)
- Provides detailed structured feedback (strengths, areas to improve, tips, rating)
- Voice support (optional – but included in frontend design)
- Fast, free LLM using Groq API (Llama-3 models)
- FastAPI
- Groq API (llama-3.1-8b-instant model – FREE)
- Pydantic
- Uvicorn
- dotenv
- HTML
- CSS
- JavaScript
- Browser Speech-to-Text (Web Speech API)
- Live Server
interview-practice-agent/
│
├── backend/
│ ├── main.py
│ ├── requirements.txt
│ ├── .env
│ └── venv/
│
└── frontend/
├── index.html
├── style.css
└── script.js
git clone <your-repo-url>
cd interview-practice-agent
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
Create a .env file inside backend/:
GROQ_API_KEY=your_key_here
Get your free API key: https://console.groq.com/keys
(No credit card required)
uvicorn main:app --reload
Backend will run at:
Check health:
👉 http://127.0.0.1:8000/health
cd ../frontend
Right-click index.html →
👉 Open With Live Server
Or open manually:
👉 http://127.0.0.1:5500/frontend/index.html
- Select job role, experience level, and mode
- Click Start Interview
- Answer questions (text or voice)
- AI interviewer asks smart follow-ups
- Click Get Feedback
- Receive:
- Strengths
- Areas to improve
- Actionable tips
- Rating (0–5)
Frontend (HTML/JS)
↓ REST API calls (fetch)
Backend (FastAPI)
↓
Groq LLM (Llama 3.1 Models)
- Frontend sends
/start,/message,/finish - Backend stores session → generates next question
- Feedback is created using structured prompt engineering
- Fastest free inference
- No quota issues
- Great for conversational tasks
- Lightweight
- Easy routing
- Async for smooth processing
- No external dependency
- Works in browser
- Simple to integrate
Used in-memory dictionary:
SESSIONS = { sessionId: { role, level, mode, qa[] } }
Your demo video (max 10 minutes) should show:
- Efficient user
- Chatty user
- Confused user
- Off-topic user
No slides needed — only screen recording with voice.
- Conversational quality
- Agentic behaviour
- Multi-persona handling
- Technical implementation
- Natural interaction
- Detailed README
- Clear architecture reasoning
Modi Sireesha
Eightfold Agentic AI Internship – Assignment Submission