🦉 Interview Preparation Assistant
An intelligent multi-agent interview preparation system powered by the OWL framework that helps you prepare for job interviews with comprehensive research, tailored questions, and detailed preparation plans.
✨ Features
- 🔍 Company Research: Automatically researches companies using real-time web data
- ❓ Interview Question Generation: Creates tailored interview questions specific to your job role and target company
- 📋 Preparation Plans: Builds comprehensive step-by-step interview preparation plans
- 🧠 AI-Powered Agents: Leverages multiple AI agents to work together on your interview preparation
- 💻 Code Examples: Provides code examples for technical roles with explanations
- 🔄 Real-time Progress: Shows conversation process between AI agents as they prepare your materials
📋 Table of Contents
🛠 Requirements
- Python 3.10+ (tested on Python 3.10)
- Access to one of the following AI models:
- OpenAI API (GPT-4)
- OpenRouter API (Gemini models)
- Internet connection for web search and company research
- Minimum 8GB RAM
🚀 Installation
1. Clone the OWL Repository
First, clone the OWL repository, which this project depends on:
git clone https://github.com/camel-ai/owl.git
cd owl
2. Create a Virtual Environment
# Create a conda environment (recommended)
conda create -n interview_assistant python=3.10
conda activate interview_assistant
# OR using venv
python -m venv interview_env
source interview_env/bin/activate # On Windows: interview_env\Scripts\activate
3. Install OWL and Dependencies
# Install OWL
pip install -e .
# Install additional dependencies
pip install streamlit numpy pandas opencv-python
4. Configure API Keys
Create a .env file in the project directory with your API keys:
# Navigate to the Interview Preparation Assistant directory
cd community_usecase/new\ int/
# Create .env file
touch .env
Add your API keys to the .env file:
# OpenAI API (recommended for best results)
OPENAI_API_KEY=your_openai_api_key_here
# OR OpenRouter API (for access to Gemini models)
OPENROUTER_API_KEY=your_openrouter_api_key_here
# Optional: Google Search API for enhanced research (optional)
GOOGLE_API_KEY=your_google_api_key_here
SEARCH_ENGINE_ID=your_google_search_engine_id_here
⚡ Quick Start
The fastest way to get started is to use the Streamlit web interface:
# Navigate to the project directory
cd community_usecase/new\ int/
# Start the web application
streamlit run app.py
This will open a web browser window with the Interview Preparation Assistant interface where you can:
- Enter your target job role (e.g., "Machine Learning Engineer")
- Enter your target company name (e.g., "Google")
- Generate interview preparation materials
📚 Usage Guide
Web Interface
The web interface provides three main functions:
1. Company Research
Click on "Research Company" to generate a comprehensive report about your target company including:
- Company background and culture
- Technical stack and technologies used
- Interview process and expectations
- Key products and services
2. Interview Questions
Click on "Generate Questions" to create tailored interview questions for your role and company:
- Technical questions with code examples
- Behavioral questions specific to the company culture
- Role-specific questions to showcase your expertise
- Sample answers and solution approaches
3. Preparation Plan
Click on "Create Preparation Plan" to receive a detailed day-by-day preparation guide:
- Structured preparation timeline
- Technical topics to review
- Practice exercises and code challenges
- Research and preparation tasks
- Interview day tips
Command Line Usage
You can also run specific functions from the command line:
# Run company research
python -c "from main import research_company; result = research_company('Google', detailed=True); print(result['answer'])"
# Generate interview questions
python -c "from main import generate_interview_questions; result = generate_interview_questions('Machine Learning Engineer', 'Google'); print(result['answer'])"
# Create preparation plan
python -c "from main import create_interview_prep_plan; result = create_interview_prep_plan('Machine Learning Engineer', 'Google'); print(result['answer'])"
Log Monitoring
You can view the logs in real-time in the "System Logs" tab of the web interface to monitor:
- AI agent conversations
- Progress of each request
- Any errors or issues that occur
⚙️ Configuration
Customizing Parameters
You can adjust the following parameters in main.py:
-
Round Limit: Change the conversation round limit by modifying the
round_limitparameter in function calls (default: 5) -
Model Selection: Edit the model configuration in
construct_interview_assistant()to use different models -
Output Directory: Change
INTERVIEW_PREP_DIRto customize where results are stored
Environment Variables
In addition to API keys, you can customize behavior with these environment variables:
LOG_LEVEL: Set toDEBUG,INFO,WARNING, orERRORto control logging verbosity
🔧 Troubleshooting
Common Issues
-
API Key Errors
- Ensure your API keys are correctly set in the
.envfile - Check that you're using the correct format without quotes or extra spaces
- Ensure your API keys are correctly set in the
-
Model Errors
- If using OpenRouter, ensure the model specified is available on your account
- Verify you have sufficient API credits for your requests
-
Round Limit Not Working
- The system enforces a strict limit of 5 conversation rounds to prevent excessive token usage
- You can adjust this in the code if needed, but may encounter higher API costs
-
Memory Errors
- Processing large contexts can require significant memory
- Try using a machine with more RAM or reducing model context sizes
Getting Help
If you encounter issues not covered here:
- Check the logs in the "System Logs" tab of the web interface
- Examine the console output for error messages
- File an issue on the GitHub repository
📂 Project Structure
community_usecase/new int/
├── app.py # Streamlit web interface
├── main.py # Core functionality and API connections
├── config/
│ └── prompts.py # Prompt templates for different tasks
├── interview_prep/ # Generated interview preparation materials
├── logging_utils.py # Logging utilities
└── README.md # This documentation
📝 License
This project is built on top of the CAMEL-AI OWL framework, which is licensed under the Apache License 2.0.
🙏 Acknowledgements
- This project is built on the CAMEL-AI OWL framework
- Special thanks to the contributors of CAMEL-AI for making multi-agent AI systems accessible
Made with ❤️ for job seekers everywhere.
