An intelligent, conversational AI agent that conducts mock technical interviews to assess a candidate's proficiency in Microsoft Excel. [cite_start]This project is designed to automate the initial screening process, providing consistent evaluations and detailed feedback.
- Conversational AI Agent: The interviewer, "Alex," guides the candidate through a structured interview flow, from introduction to conclusion.
- Dynamic Question Engine: Randomly selects a mix of easy, medium, and hard questions from a predefined JSON file for each interview session.
- Intelligent Answer Evaluation: Uses Google's Gemini LLM to analyze the candidate's answers, assigning a score (1-5) and providing constructive, conversational feedback.
- Real-time Video Proctoring: Utilizes the candidate's webcam and a Hugging Face object detection model to monitor for potential malpractice, such as multiple people in the room or cell phone usage.
- Automated Session Termination: The interview is automatically terminated if the candidate turns off their camera or accumulates 3 proctoring warnings.
- Comprehensive Performance Dashboard: After the interview, a detailed report is generated, showing an overall summary, a question-by-question breakdown of scores, and the feedback received.
- User Authentication & Persistence: A secure login system for candidates, with all interview results saved to a SQLite database for review.
- Frontend: Streamlit
- Generative AI: Google Gemini 1.5 Flash
- Video Proctoring: Streamlit-WebRTC, PyTorch, Hugging Face Transformers (
facebook/detr-resnet-50
) - Database: SQLite
- Core Libraries: Pandas
excel-interviewer/ ├── .streamlit/ │ └── secrets.toml ├── components/ │ ├── interview_card.py │ └── proctoring.py ├── app.py ├── candidates.db ├── database.py ├── prompts.py ├── questions.json └── requirements.txt
-
Clone the Repository
git clone [https://github.com/YOU_USERNAME/YOUR_REPOSITORY_NAME.git](https://github.com/YOU_USERNAME/YOUR_REPOSITORY_NAME.git) cd YOUR_REPOSITORY_NAME
-
Create a Virtual Environment (Recommended)
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install Dependencies
pip install -r requirements.txt
-
Set Up API Key
- Create a file:
.streamlit/secrets.toml
. - Add your Google API key to it:
GOOGLE_API_KEY = "YOUR_API_KEY_HERE"
- Create a file:
-
Run the Application The application database
candidates.db
is pre-populated with sample users.streamlit run app.py
- Open the application in your browser (usually
http://localhost:8501
). - Log in with one of the sample credentials:
- UserID:
priya_s
, Password:pass123
- UserID:
amit_k
, Password:pass456
- UserID:
sneha_p
, Password:pass789
- UserID:
- Click "Start Interview" and grant camera permissions to begin.
The MOCK_API_CALLS
flag in app.py
can be set to True
to run the application without making actual calls to the Gemini API, using placeholder responses instead. This is useful for UI development and testing.
# In app.py
MOCK_API_CALLS = True
---
### 2. `requirements.txt` (Project Dependencies)
This file lists all the Python packages required for your project. The `streamlit-modal` package was in your original file but wasn't used, so it has been removed for a cleaner deployment.
```text
streamlit
google-generativeai
pandas
streamlit-webrtc
torch
transformers
Pillow
timm