Skip to content

dheeraj-bandi/SIPA---SMART-INTERVIEW-PREPARATION-ASSISTANT

Repository files navigation

SIPA - Smart Interview Preparation Assistant

SIPA Logo

A comprehensive AI-powered platform designed to help job seekers excel in technical interviews through intelligent resume analysis, mock interview simulations, and personalized learning paths.

🌟 Features

🧠 AI Resume Analyzer

  • Advanced NLP Processing: Analyzes resume content using sophisticated natural language processing
  • Comprehensive Scoring: 5-metric evaluation system (Skills Match, Sections Complete, Writing Quality, Verb Strength, Formatting)
  • Smart Suggestions: Personalized improvement recommendations
  • PDF Report Generation: Downloadable detailed analysis reports
  • Skills Gap Analysis: Identifies missing skills and provides recommendations

🎯 Job Match Intelligence

  • AI-Powered Matching: Compares resumes against job descriptions with detailed scoring
  • Job Listings Integration: Browse and analyze job opportunities
  • Skills Recommendation: Suggests skills to learn based on target roles
  • Market Insights: Job market trends and salary analysis
  • Profile Optimization: Personalized profile enhancement suggestions

πŸ“š Interview Preparation Guide

  • Comprehensive Topics: Covers Data Structures, Algorithms, System Design, Security, and more
  • Difficulty Levels: Beginner to Advanced content
  • Interactive Learning: Searchable and filterable content
  • Study Roadmap: 12-week structured preparation plan
  • Success Tips: Expert advice and proven strategies

🎀 Mock Interview Simulator

  • Real-time Audio Processing: Speech-to-text transcription and analysis
  • Multiple Interview Types: Technical, Behavioral, System Design, and Coding challenges
  • AI Feedback: Emotion analysis, confidence scoring, and keyword matching
  • Customizable Sessions: Adjustable difficulty, duration, and question types
  • Detailed Results: Comprehensive performance analysis with improvement suggestions

πŸ—οΈ Project Structure

sipa-ai-resume-analyzer/
β”œβ”€β”€ README.md
β”œβ”€β”€ package.json
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ vite.config.ts
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ tsconfig.app.json
β”œβ”€β”€ tsconfig.node.json
β”œβ”€β”€ tailwind.config.js
β”œβ”€β”€ postcss.config.js
β”œβ”€β”€ eslint.config.js
β”œβ”€β”€ index.html
β”‚
β”œβ”€β”€ src/                          # Frontend React Application
β”‚   β”œβ”€β”€ main.tsx                  # Application entry point
β”‚   β”œβ”€β”€ App.tsx                   # Main application component
β”‚   β”œβ”€β”€ index.css                 # Global styles
β”‚   β”œβ”€β”€ vite-env.d.ts            # Vite type definitions
β”‚   └── components/               # React components
β”‚       β”œβ”€β”€ ResumeAnalyzer.tsx    # AI resume analysis interface
β”‚       β”œβ”€β”€ InterviewPrepGuide.tsx # Interview preparation content
β”‚       β”œβ”€β”€ JobMatchIntelligence.tsx # Job matching and analysis
β”‚       └── MockInterviewSimulator.tsx # Mock interview interface
β”‚
└── backend/                      # Python Flask Backend
    β”œβ”€β”€ app.py                    # Main Flask application
    β”œβ”€β”€ requirements.txt          # Python dependencies
    β”œβ”€β”€ .env.example             # Environment variables template
    β”‚
    β”œβ”€β”€ services/                 # Core business logic
    β”‚   β”œβ”€β”€ resume_analyzer.py    # Resume analysis engine
    β”‚   β”œβ”€β”€ gemini_service.py     # Google Gemini AI integration
    β”‚   β”œβ”€β”€ file_processor.py     # File upload and text extraction
    β”‚   β”œβ”€β”€ job_matcher.py        # Job matching algorithms
    β”‚   β”œβ”€β”€ learning_service.py   # Learning content management
    β”‚   └── report_generator.py   # PDF report generation
    β”‚
    β”œβ”€β”€ routes/                   # API route handlers
    β”‚   β”œβ”€β”€ job_match.py         # Job matching endpoints
    β”‚   β”œβ”€β”€ learning.py          # Learning content endpoints
    β”‚   └── mock_interview.py    # Mock interview endpoints
    β”‚
    └── utils/                    # Utility functions
        β”œβ”€β”€ validators.py         # Input validation
        └── response_formatter.py # API response formatting

πŸš€ Installation & Setup

Prerequisites

  • Node.js (v18 or higher)
  • Python (v3.8 or higher)
  • npm or yarn
  • Git

Frontend Setup

  1. Clone the repository

    git clone <repository-url>
    cd sipa-ai-resume-analyzer
  2. Install frontend dependencies

    npm install
  3. Start the development server

    npm run dev

    The frontend will be available at http://localhost:5173

Backend Setup

  1. Navigate to backend directory

    cd backend
  2. Create virtual environment

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
  3. Install Python dependencies

    pip install -r requirements.txt
  4. Download required NLP models

    python -m spacy download en_core_web_sm
    python -m nltk.downloader punkt stopwords
  5. Set up environment variables

    cp .env.example .env

    Edit .env file and add your API keys:

    GEMINI_API_KEY=your_gemini_api_key_here
    FLASK_ENV=development
    FLASK_DEBUG=True
    MAX_FILE_SIZE=16777216
    ALLOWED_EXTENSIONS=pdf,docx,txt
  6. Start the backend server

    python app.py

    The backend API will be available at http://localhost:5000

πŸ”§ Configuration

Environment Variables

Create a .env file in the backend/ directory with the following variables:

# Google Gemini AI API Key (Required for AI features)
GEMINI_API_KEY=your_gemini_api_key_here

# Flask Configuration
FLASK_ENV=development
FLASK_DEBUG=True

# File Upload Settings
MAX_FILE_SIZE=16777216  # 16MB in bytes
ALLOWED_EXTENSIONS=pdf,docx,txt

# Optional: Database Configuration (for production)
DATABASE_URL=your_database_url_here

Getting API Keys

  1. Google Gemini API Key:

πŸ“– Usage Guide

1. Resume Analysis

  1. Upload Resume: Navigate to the Resume Analyzer and upload your PDF or DOCX resume
  2. AI Analysis: The system processes your resume using advanced NLP
  3. Review Results: Get detailed scoring across 5 key metrics
  4. Download Report: Generate and download a comprehensive PDF report
  5. Implement Suggestions: Follow AI-generated recommendations for improvement

2. Job Matching

  1. Browse Jobs: Explore available job listings
  2. Analyze Match: Click "Analyze Match" on any job to see compatibility
  3. Review Insights: Get detailed breakdown of skills match and recommendations
  4. Update Profile: Enhance your profile based on insights

3. Interview Preparation

  1. Study Topics: Browse comprehensive interview topics by category
  2. Practice Questions: Review common interview questions
  3. Follow Roadmap: Use the 12-week preparation plan
  4. Apply Tips: Implement expert interview strategies

4. Mock Interviews

  1. Configure Session: Choose interview type, difficulty, and duration
  2. Start Interview: Begin the AI-powered mock interview
  3. Record Responses: Answer questions using voice recording
  4. Get Feedback: Receive detailed analysis and improvement suggestions
  5. Track Progress: Monitor your interview performance over time

πŸ› οΈ Development

Available Scripts

Frontend:

npm run dev          # Start development server
npm run build        # Build for production
npm run preview      # Preview production build
npm run lint         # Run ESLint

Backend:

python app.py        # Start Flask development server
pip install -r requirements.txt  # Install dependencies

Technology Stack

Frontend:

  • React 18 with TypeScript
  • Vite for build tooling
  • Tailwind CSS for styling
  • Lucide React for icons

Backend:

  • Flask web framework
  • spaCy for NLP processing
  • NLTK for text analysis
  • Google Gemini AI for advanced AI features
  • PyMuPDF for PDF processing
  • python-docx for DOCX processing

API Endpoints

Resume Analysis

  • POST /api/resume/analyze - Analyze uploaded resume
  • GET /api/resume/report/<session_id> - Download PDF report
  • POST /api/resume/suggestions - Get AI suggestions

Job Matching

  • POST /api/job-match/analyze - Analyze job match
  • POST /api/job-match/find-similar - Find similar jobs
  • GET /api/jobs/listings - Get job listings

Mock Interviews

  • POST /api/mock-interview/start - Start interview session
  • POST /api/mock-interview/submit-response - Submit response
  • GET /api/mock-interview/results/<session_id> - Get results

Learning Content

  • GET /api/learning/courses - Get available courses
  • GET /api/learning/dashboard/<user_id> - Get user dashboard
  • GET /api/learning/achievements/<user_id> - Get achievements

πŸ”’ Security Features

  • File Validation: Strict file type and size validation
  • Input Sanitization: All user inputs are sanitized
  • CORS Protection: Configured for secure cross-origin requests
  • Error Handling: Comprehensive error handling and logging

πŸš€ Deployment

Frontend Deployment

  1. Build the application

    npm run build
  2. Deploy to hosting service (Netlify, Vercel, etc.)

    # Example for Netlify
    npm install -g netlify-cli
    netlify deploy --prod --dir=dist

Backend Deployment

  1. Prepare for production

    pip install gunicorn
  2. Create production configuration

    # Create gunicorn.conf.py
    bind = "0.0.0.0:5000"
    workers = 4
    worker_class = "sync"
    timeout = 120
  3. Deploy to cloud service (Heroku, AWS, etc.)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Troubleshooting

Common Issues

  1. spaCy model not found

    python -m spacy download en_core_web_sm
  2. NLTK data missing

    python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')"
  3. Port already in use

    # Kill process on port 5000
    lsof -ti:5000 | xargs kill -9
  4. CORS errors

    • Ensure backend is running on http://localhost:5000
    • Check CORS configuration in app.py

Performance Optimization

  • File Size: Keep uploaded files under 16MB
  • Browser: Use modern browsers for best performance
  • Network: Ensure stable internet connection for AI features

πŸ“ž Support

For support and questions:

  • Create an issue on GitHub
  • Check the troubleshooting section
  • Review the API documentation

🎯 Roadmap

  • Real-time collaboration features
  • Advanced video interview analysis
  • Integration with job boards
  • Mobile application
  • Advanced AI coaching
  • Team interview preparation

πŸ‘₯ Contributors

Thanks to the amazing contributors who made this project possible:

Built with ❀️ for job seekers worldwide

Empowering careers through AI-driven preparation

About

A comprehensive AI-powered platform designed to help job seekers excel in technical interviews through intelligent resume analysis, mock interview simulations, and personalized learning paths.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors