Intelligent Resume Analysis with Google Gemini AI
A modern React-based application that provides comprehensive resume analysis using Google Gemini AI. The application processes PDF and DOCX resumes to deliver detailed insights, scoring, and career recommendations with a beautiful, responsive interface.
- Multi-format Processing: Supports PDF and DOCX file uploads (up to 50MB)
- Dual Processing Modes: Backend server processing with frontend fallback
- Smart Performance: Server-side processing eliminates browser memory issues
- Google Gemini Integration: Advanced AI analysis using Gemini 1.5 Flash
- Comprehensive Scoring: 10-point rating system across 5 key criteria:
- Content Quality & Clarity
- Structure & Organization
- Visual Formatting & Design
- Achievement Impact & Quantification
- ATS Compatibility & Optimization
- Professional Summary Generation: AI-crafted summaries optimized for ATS
- Strengths Analysis: Identifies key advantages with supporting examples
- Improvement Recommendations: Actionable feedback for resume enhancement
- Job Title Suggestions: Career-appropriate position recommendations
- Grade Classification: Professional grading from A+ to F based on overall score
- Job Scraper Demo: Mock job search interface with sample data
- LinkedIn-style Results: Professional job listing presentation
- Industry Insights: Career market information and trends
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Drag & Drop Upload: Intuitive file handling with instant validation
- Real-time Processing: Live progress indicators during analysis
- Tabbed Interface: Organized results in easily navigable sections
- Export Functionality: Download complete analysis as formatted text reports
- Status Indicators: Visual feedback for API connectivity and file processing
- Express.js 4 - Fast, minimal web framework for Node.js
- Node.js - Server-side JavaScript runtime
- PDF-Parse - Server-side PDF text extraction (faster than browser)
- Mammoth.js - Server-side DOCX processing with better memory handling
- Multer - Secure file upload middleware
- CORS - Cross-origin resource sharing for frontend integration
- Smart Chunking - Intelligent text splitting for AI processing
- React 18 - Modern functional components with hooks
- JavaScript ES6+ - Latest JavaScript features and async/await patterns
- React Router 6 - Client-side routing and navigation
- Tailwind CSS 3 - Utility-first CSS with custom design system
- Lucide React - Modern SVG icon library
- Glassmorphism Effects - Modern UI with backdrop blur effects
- Responsive Design - Mobile-first approach with breakpoint optimization
- Google Generative AI (@google/generative-ai) - Gemini 1.5 Flash model integration
- Dual Processing Architecture - Backend server with frontend fallback
- Custom Vector Service - Text similarity search and analysis
- React Dropzone - Drag and drop file upload with validation
- Custom Document Processor - Unified PDF/DOCX processing pipeline
- File Type Detection - Automatic format recognition and validation
- React Context API - Global state for API key management
- React Hooks - Modern state management patterns
- Local Storage - Secure API key persistence
- React Hot Toast - Beautiful notification system
- Progress Indicators - Real-time feedback during processing
- Error Handling - Comprehensive error management and user feedback
- Node.js (version 16 or higher)
- npm (comes with Node.js)
- Google Gemini API Key (Get from Google AI Studio)
- Clone the repository:
git clone https://github.com/muhammadnavas/AI-Resume-Analyzer.git
cd AI-Resume-Analyzer- Setup project and dependencies:
npm run setup- Start both frontend and backend:
npm run dev- Open your browser:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:5000
- Install frontend dependencies:
npm install- Install backend dependencies:
npm run backend:install- Start frontend only:
npm start- Start backend only (separate terminal):
npm run backend:devThe backend server provides faster, more reliable document processing:
-
Backend Features:
- ✅ Eliminates browser memory issues with large files
- ✅ Faster PDF/DOCX processing on server
- ✅ Handles files up to 50MB (vs 10MB browser limit)
- ✅ Automatic fallback to frontend if server unavailable
-
Backend Environment (Optional):
cd backend
cp .env.example .env
# Edit .env if needed (defaults work for local development)-
Launch Application
- Run
npm startand navigate tohttp://localhost:3000 - The application opens with a modern dashboard interface
- Run
-
Configure Google Gemini API
- Navigate to "Resume Analyzer" section
- Enter your Google Gemini API key when prompted
- Key is securely stored in browser's local storage
-
Upload Resume
- Use drag & drop or click to browse files
- Supported formats: PDF and DOCX (max 10MB)
- Real-time validation with progress indicators
-
Get AI Analysis
- Click "Analyze Resume" to start processing
- View comprehensive results across multiple tabs:
- Summary: Overall resume evaluation and key insights
- Strengths: Professional advantages and standout features
- Improvements: Specific enhancement recommendations
- Job Suggestions: AI-matched career opportunities
- Rating: Detailed scoring breakdown with grade
-
Export Results
- Download complete analysis as formatted text report
- Use insights to optimize resume for ATS systems
- Track improvement progress over multiple analyses
- Content Quality (1-10): Information relevance, clarity, and professional impact
- Structure & Organization (1-10): Logical flow and section organization
- Visual Formatting (1-10): Design consistency and presentation quality
- Achievement Impact (1-10): Quantified accomplishments and measurable results
- ATS Compatibility (1-10): Keyword optimization and system compatibility
- Professional Summary: Compelling 2-3 sentence career overview
- Strength Analysis: Data-driven identification of competitive advantages
- Improvement Roadmap: Prioritized enhancement recommendations
- Career Positioning: Strategic advice for job market positioning
-
Get API Key:
- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key for Gemini 1.5 Flash
-
Configure Environment:
- Copy
.env.exampleto.envin the project root:
cp .env.example .env
- Edit
.envand add your API key:
REACT_APP_GEMINI_API_KEY=your_actual_api_key_here
- Restart the development server:
npm start
- Copy
-
Security Benefits:
- ✅ API key is not stored in browser local storage
- ✅ Not committed to version control (protected by .gitignore)
- ✅ More secure for production deployments
- ✅ Centralized configuration management
If environment variables are not available, the application supports local storage fallback:
-
Enable Fallback Mode:
- Set
REACT_APP_ENABLE_LOCAL_STORAGE_FALLBACK=truein.env
- Set
-
Configure via UI:
- Navigate to Resume Analyzer page
- Enter API key in the configuration field
- Key is securely stored in browser's local storage
- Environment Variables (highest priority)
- Local Storage (fallback, if enabled)
- Manual Entry (temporary session only)
- Free tier includes generous quotas for testing
- Rate limiting is handled automatically by the application
- Environment variables are the recommended approach for security
AI-Resume-Analyzer/
├── backend/ # Express.js API server
│ ├── server.js # Main server file with document processing
│ ├── package.json # Backend dependencies
│ ├── .env.example # Backend environment template
│ └── README.md # Backend documentation
├── public/ # Static assets and index.html
├── src/
│ ├── components/ # Reusable React components
│ │ ├── Header.js # Main navigation header
│ │ ├── Sidebar.js # Dashboard sidebar navigation
│ │ ├── FileUpload.js # Drag & drop file upload
│ │ └── ...
│ ├── pages/ # Main page components
│ │ ├── Dashboard.js # Landing dashboard
│ │ ├── ResumeAnalyzer.js # AI analysis interface
│ │ ├── JobScraper.js # Job search demo
│ │ └── ...
│ ├── services/ # Business logic and API integration
│ │ ├── resumeAnalyzer.js # Google Gemini AI integration
│ │ ├── documentProcessor.js # Frontend PDF/DOCX processing
│ │ ├── backendDocumentProcessor.js # Backend API client
│ │ ├── realJobSearchService.js # Demo job search data
│ │ └── ...
│ ├── context/ # React context providers
│ │ └── ApiKeyContext.js # API key state management
│ ├── App.js # Main application component
│ └── index.js # Application entry point
├── package.json # Project dependencies and scripts
├── tailwind.config.js # Tailwind CSS configuration
└── README.md # Project documentation
- Fork the repository
- Create your feature branch:
git checkout -b feature/AmazingFeature - Commit your changes:
git commit -m 'Add some AmazingFeature' - Push to the branch:
git push origin feature/AmazingFeature - Open a Pull Request
🚀 Ready to optimize your resume? Start your career journey today!
Built with ❤️ using React and Google Gemini AI