Spaces:
Sleeping
A newer version of the Gradio SDK is available: 6.11.0
license: mit
title: Resume_Analyzer
sdk: gradio
emoji: π
colorFrom: blue
colorTo: green
pinned: false
<<<<<<< HEAD
Resume Analyzer - AI-Powered Resume Analysis Tool
A professional web application built with Python and Gradio that analyzes resumes using AI and provides detailed insights, recommendations, and career guidance.
π― Features
- π Multi-Format Support: Analyze resumes in PDF, DOCX, and TXT formats
- π€ AI-Powered Analysis: Uses OpenAI's GPT models for intelligent analysis
- π Comprehensive Evaluation:
- Skills assessment (technical & soft skills)
- Experience review with highlights and concerns
- Education background analysis
- Career gap identification
- Job market compatibility assessment
- Overall resume scoring (0-100)
- π‘ Smart Recommendations: Actionable improvement suggestions
- π₯ Export Results: Download analysis as JSON or text report
- π¨ Modern UI: Clean, intuitive Gradio interface with organized tabs
- β‘ Real-time Processing: Fast resume parsing and analysis
π Quick Start
Prerequisites
- Python 3.8 or higher
- pip (Python package manager)
- OpenAI API key (optional - mock data available for demo)
Installation
- Clone or Navigate to Project Directory
cd c:\Users\Admin\Desktop\Workshop_dev
- Create Virtual Environment (Recommended)
# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python -m venv venv
source venv/bin/activate
- Install Dependencies
pip install -r requirements.txt
Configure API Key (Optional)
- Create a
.envfile in the project root - Add your OpenAI API key:
OPENAI_API_KEY=your_api_key_here - If not configured, the app will use mock data for demo
- Create a
Run the Application
python app.py
The application will open in your default browser at http://localhost:7860
π How to Use
- Upload Resume: Click the upload area and select your resume file (PDF, DOCX, or TXT)
- Load Resume: Click "Load Resume" to extract and preview the text
- Analyze: Click the "Analyze with AI" button
- Review Results:
- View overall score and executive summary
- Explore technical and soft skills
- Check experience highlights and concerns
- Identify career gaps
- Read improvement recommendations
- Export: Use the Export tab to download analysis as JSON or text format
π Project Structure
resume-analyzer/
βββ app.py # Main Gradio application
βββ requirements.txt # Python dependencies
βββ README.md # This file
βββ .env.example # Example environment variables
βββ .gitignore # Git ignore patterns
βββ config/
β βββ __init__.py
β βββ settings.py # Configuration and constants
βββ utils/
β βββ __init__.py
β βββ resume_parser.py # Resume file parsing utilities
β βββ ai_analyzer.py # AI analysis logic
βββ sample_resumes/ # Directory for sample resume files
π§ Configuration
Edit config/settings.py to customize:
- Model Configuration: Change AI model, temperature, max tokens
- File Upload: Adjust max file size and allowed extensions
- Analysis Sections: Customize which analysis sections to include
Environment Variables
Create a .env file with:
# OpenAI API Configuration
OPENAI_API_KEY=sk-your-key-here
# Use local model (experimental)
USE_LOCAL_MODEL=False
π Analysis Output
The analyzer provides detailed insights on:
Overall Score (0-100)
- Quick assessment of resume quality
- Accompanied by detailed explanation
Skills Analysis
- Technical skills identified
- Soft skills assessment
- Missing skills for target roles
Experience Review
- Key achievements and highlights
- Career concerns and gaps
- Work history coherence
Education Assessment
- Background evaluation
- Relevance to career goals
- Certification details
Career Gaps
- Timeline inconsistencies
- Unexplained employment gaps
- Industry transition concerns
Recommendations
- Specific action items for improvement
- Skills to develop
- Resume optimization tips
Job Market Compatibility
- Industry-relevant strengths
- Competitive weaknesses
- Market positioning
π API Integration
OpenAI Integration
The app uses OpenAI's GPT API for resume analysis. To use:
- Get an API key from OpenAI Platform
- Add to
.envfile asOPENAI_API_KEY - App automatically uses GPT-3.5-turbo model
Demo Mode
Without an API key configured, the app provides mock analysis data suitable for:
- Testing the UI and functionality
- Demonstrations
- Development without API costs
π οΈ Development
Adding New Analysis Features
- Update
config/settings.pyto add new analysis sections - Modify the AI prompt in
utils/ai_analyzer.py - Add formatting function in
app.pyfor new sections
Extending File Format Support
- Add new format handler in
utils/resume_parser.py - Update
ALLOWED_EXTENSIONSinconfig/settings.py - Update file uploader type list in
app.py
Customizing Analysis
Edit the prompt in analyze_resume_with_openai() function to:
- Focus on specific industries
- Emphasize particular skills
- Add custom scoring criteria
π¨ UI Customization
Gradio allows easy customization through:
- Themes: Change the theme in
gr.Blocks(theme=gr.themes.Soft()) - Layout: Modify tab structure and component organization
- Styling: Add custom CSS through Gradio's styling options
π Troubleshooting
"ModuleNotFoundError" when running
# Ensure virtual environment is activated
# Windows: venv\Scripts\activate
# macOS/Linux: source venv/bin/activate
# Reinstall dependencies
pip install -r requirements.txt
PDF parsing errors
- Ensure PDF is not encrypted
- Try converting to DOCX first
- Check file is not corrupted
API Key not working
- Verify key is correctly added to
.env - Check API key has sufficient credits
- Ensure key has correct permissions
Gradio not found
pip install gradio==4.20.0
Port already in use
By default, Gradio runs on port 7860. If it's already in use:
# Modify app.py to use a different port
demo.launch(server_port=7861)
π Sample Usage
# Example of programmatic usage
from utils.resume_parser import parse_resume
from utils.ai_analyzer import analyze_resume_with_openai
# Parse resume
resume_text = parse_resume(file_content, ".pdf")
# Analyze
analysis = analyze_resume_with_openai(resume_text)
# Access results
print(f"Score: {analysis['overall_score']['rating']}")
print(f"Technical Skills: {analysis['skills']['technical']}")
βοΈ Requirements
- Python 3.8+
- Gradio 4.20.0
- PyPDF2 3.0.1
- python-docx 0.8.11
- openai 1.3.0
- python-dotenv 1.0.0
π License
This project is provided as-is for educational and professional use.
π€ Contributing
Feel free to:
- Report issues
- Suggest improvements
- Add features
- Optimize code
π¬ Support
For issues or questions:
- Check the troubleshooting section
- Review existing issues
- Create a detailed bug report
π Future Enhancements
- Database integration for saving analyses
- User accounts and analysis history
- Multiple resume comparison
- Industry-specific analysis templates
- Resume improvement suggestions with examples
- ATS (Applicant Tracking System) compatibility checker
- Job description matching
- Interview preparation tips based on resume
- Support for additional file formats
- Multi-language support
- Dark mode theme option
π Resources
Built with β€οΈ using Python and Gradio
Resume_Analyzer
Python based interactive resume analyzer. That gives score for your resume.
f6f8dc17a4e8894979dec8347d3b381389f1d10b