Your AI-Powered Career Mentor for Interview Preparation
Interview-Mate is an intelligent web application designed to help job seekers prepare for technical interviews and navigate their career paths. The application serves as a personalized AI mentor that guides users through domain exploration, role selection, and interview preparation with tailored roadmaps and resources.
The platform addresses the challenge of unstructured interview preparation by providing:
- Domain-specific career guidance
- Personalized learning roadmaps
- Real-time job listings
- AI-powered conversational mentorship
- Curated study resources
Target Audience: Job seekers, career changers, recent graduates, and professionals looking to transition into new technical roles.
- AI-Powered Chat Interface: Interactive conversation with an intelligent mentor that understands context and provides personalized guidance
- Domain Exploration: Explore multiple career domains including Data Science, Web Development, DevOps, Cybersecurity, and AI/ML
- Role Recommendations: Get suggested roles based on your skills, interests, or domain preferences
- Personalized Roadmaps: Generate 4-week structured learning roadmaps tailored to your selected role
- Study Resources: Access curated learning materials and resources specific to your career path
- Live Job Listings: Browse real-time job opportunities relevant to your selected role
- Skill-Based Matching: Automatic domain detection based on skills you mention
- Domain History Tracking: Keep track of domains you've explored for easy reference
- Frontend Framework: Streamlit (Python-based web framework)
- Backend: Python 3.x
- AI Integration: OpenAI API (GPT-4o-mini)
- Job Search API: RapidAPI (JSearch)
- Environment Management: python-dotenv
- HTTP Client: Requests library
- Styling: Custom CSS with gradient themes
- Initial Interaction: Users start by chatting with Interview-Mate about their career interests, skills, or desired domain
- Domain Detection: The application intelligently detects career domains from user input or skill mentions
- Role Suggestions: Based on the selected domain, Interview-Mate presents relevant job roles with descriptions
- Role Selection: Users choose a role that aligns with their career goals
- Roadmap Generation: The AI generates a comprehensive 4-week learning roadmap with weekly goals
- Resource Provision: Study resources and learning materials are provided for the selected role
- Job Discovery: Real-time job listings are fetched and displayed for the selected role
- Ongoing Support: Users can continue chatting for additional guidance and clarification
- Python 3.7 or higher
- pip (Python package manager)
- OpenAI API key
- RapidAPI key (optional, for job listings)
-
Clone the repository
git clone https://github.com/yourusername/Interview-Mate.git cd Interview-Mate -
Create a virtual environment (recommended)
python -m venv venv
-
Activate the virtual environment
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- On Windows:
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables
- Create a
.envfile in the root directory - Add your API keys:
OPENAI_API_KEY=your_openai_api_key_here RAPIDAPI_KEY=your_rapidapi_key_here
- Create a
-
Run the application
streamlit run app.py
-
Access the application
- The application will automatically open in your default web browser
- Default URL:
http://localhost:8501
- Launch the application using
streamlit run app.py - In the chat interface, introduce yourself or mention your career interests
- Examples of good starting messages:
- "I'm interested in data science"
- "I know Python and SQL"
- "I want to become a frontend developer"
- Mention any domain name (e.g., "data science", "web development", "cloud")
- The application will detect the domain and suggest relevant roles
- Click on any suggested role card to explore that career path
- After selecting a role, a 4-week roadmap is automatically generated
- Expand each week's section to view detailed goals and learning objectives
- Access study resources in the dedicated resources section
- Job listings appear in the right sidebar after selecting a role
- Click "Refresh Jobs" to fetch the latest opportunities
- Use the "Apply" links to navigate to job postings
- Ask questions about career paths, skills, or interview preparation
- Switch between domains by mentioning different career fields
- The conversation history is maintained throughout your session
Interview-Mate/
├── app.py # Main application file (Streamlit app)
├── requirements.txt # Python dependencies
├── .env # Environment variables (create this)
├── data/
│ ├── domains.json # Career domain definitions
│ ├── roles.json # Role mappings by domain
│ └── questions.json # Sample interview questions
├── assets/ # Static assets (if any)
└── venv/ # Virtual environment (gitignored)
- User Authentication: Save user progress and preferences across sessions
- Progress Tracking: Track completion of roadmap milestones
- Mock Interviews: AI-powered mock interview sessions with feedback
- Question Bank: Expandable database of domain-specific interview questions
- Performance Analytics: Dashboard showing preparation progress and strengths
- Resume Builder: AI-assisted resume creation tailored to selected roles
- Interview Scheduling: Integration with calendar for interview reminders
- Community Features: Share roadmaps and resources with other users
- Multi-language Support: Support for multiple languages
- Mobile Application: Native mobile app for on-the-go preparation
We welcome contributions to Interview-Mate. To contribute:
- Fork the repository to your GitHub account
- Create a feature branch from
main:git checkout -b feature/your-feature-name
- Make your changes following the existing code style
- Test your changes thoroughly before submitting
- Commit your changes with clear, descriptive messages:
git commit -m "feat: add new feature description" - Push to your fork:
git push origin feature/your-feature-name
- Create a Pull Request with a detailed description of your changes
- Follow PEP 8 guidelines for Python code
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and modular
If you encounter bugs or have suggestions:
- Check existing issues to avoid duplicates
- Create a new issue with a clear title and description
- Include steps to reproduce if reporting a bug
- Add relevant labels if possible
This project is licensed under the MIT License.
Copyright (c) 2024 Interview-Mate Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.