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.
- 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
- 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
- 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
- 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
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
- Node.js (v18 or higher)
- Python (v3.8 or higher)
- npm or yarn
- Git
-
Clone the repository
git clone <repository-url> cd sipa-ai-resume-analyzer
-
Install frontend dependencies
npm install
-
Start the development server
npm run dev
The frontend will be available at
http://localhost:5173
-
Navigate to backend directory
cd backend -
Create virtual environment
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install Python dependencies
pip install -r requirements.txt
-
Download required NLP models
python -m spacy download en_core_web_sm python -m nltk.downloader punkt stopwords
-
Set up environment variables
cp .env.example .env
Edit
.envfile 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
-
Start the backend server
python app.py
The backend API will be available at
http://localhost:5000
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- Google Gemini API Key:
- Visit Google AI Studio
- Create a new API key
- Add it to your
.envfile
- Upload Resume: Navigate to the Resume Analyzer and upload your PDF or DOCX resume
- AI Analysis: The system processes your resume using advanced NLP
- Review Results: Get detailed scoring across 5 key metrics
- Download Report: Generate and download a comprehensive PDF report
- Implement Suggestions: Follow AI-generated recommendations for improvement
- Browse Jobs: Explore available job listings
- Analyze Match: Click "Analyze Match" on any job to see compatibility
- Review Insights: Get detailed breakdown of skills match and recommendations
- Update Profile: Enhance your profile based on insights
- Study Topics: Browse comprehensive interview topics by category
- Practice Questions: Review common interview questions
- Follow Roadmap: Use the 12-week preparation plan
- Apply Tips: Implement expert interview strategies
- Configure Session: Choose interview type, difficulty, and duration
- Start Interview: Begin the AI-powered mock interview
- Record Responses: Answer questions using voice recording
- Get Feedback: Receive detailed analysis and improvement suggestions
- Track Progress: Monitor your interview performance over time
Frontend:
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintBackend:
python app.py # Start Flask development server
pip install -r requirements.txt # Install dependenciesFrontend:
- 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
POST /api/resume/analyze- Analyze uploaded resumeGET /api/resume/report/<session_id>- Download PDF reportPOST /api/resume/suggestions- Get AI suggestions
POST /api/job-match/analyze- Analyze job matchPOST /api/job-match/find-similar- Find similar jobsGET /api/jobs/listings- Get job listings
POST /api/mock-interview/start- Start interview sessionPOST /api/mock-interview/submit-response- Submit responseGET /api/mock-interview/results/<session_id>- Get results
GET /api/learning/courses- Get available coursesGET /api/learning/dashboard/<user_id>- Get user dashboardGET /api/learning/achievements/<user_id>- Get achievements
- 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
-
Build the application
npm run build
-
Deploy to hosting service (Netlify, Vercel, etc.)
# Example for Netlify npm install -g netlify-cli netlify deploy --prod --dir=dist
-
Prepare for production
pip install gunicorn
-
Create production configuration
# Create gunicorn.conf.py bind = "0.0.0.0:5000" workers = 4 worker_class = "sync" timeout = 120
-
Deploy to cloud service (Heroku, AWS, etc.)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
-
spaCy model not found
python -m spacy download en_core_web_sm
-
NLTK data missing
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')" -
Port already in use
# Kill process on port 5000 lsof -ti:5000 | xargs kill -9
-
CORS errors
- Ensure backend is running on
http://localhost:5000 - Check CORS configuration in
app.py
- Ensure backend is running on
- File Size: Keep uploaded files under 16MB
- Browser: Use modern browsers for best performance
- Network: Ensure stable internet connection for AI features
For support and questions:
- Create an issue on GitHub
- Check the troubleshooting section
- Review the API documentation
- Real-time collaboration features
- Advanced video interview analysis
- Integration with job boards
- Mobile application
- Advanced AI coaching
- Team interview preparation
Thanks to the amazing contributors who made this project possible:
- Chaitanya Sai Kurapati β Creator & Maintainer
- Bandi Dheeraj β Contributor (Feature Development / Bug Fixes / Testing / etc.)
Built with β€οΈ for job seekers worldwide
Empowering careers through AI-driven preparation