An AI-powered web application that analyzes your resume and provides actionable feedback to improve your job application success. Built with Streamlit and powered by OpenAI's GPT-4.
- 📄 PDF Resume Upload: Support for PDF resume files with intelligent text extraction
- 🤖 AI-Powered Analysis: Advanced resume analysis using OpenAI's GPT-4 model
- 🎯 Job-Specific Feedback: Tailored recommendations based on target job role and description
- 🔑 Flexible API Key Input: Support for both environment variables and secure frontend input
- 📊 Comprehensive Evaluation: Analysis across multiple dimensions:
- Content Quality & Impact
- Skills Alignment
- Experience Presentation
- ATS Compatibility
- Actionable Improvement Areas
- 💾 Downloadable Reports: Export your analysis results for future reference
- 📈 Usage Statistics: Track token usage and analysis metrics
- 🔒 Secure Processing: Local file processing with API-based analysis
- ⚡️ Lightweight Model: Using
gpt-4o-minito keep the analysis cost efficient
- Python 3.12 or higher
- OpenAI API Key (can be provided via environment variable or frontend input)
-
Clone the repository
git clone https://github.com/rohanpandavv/resumereadiness.git cd resumereadiness -
Set up virtual environment (recommended)
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
Or if using uv:
uv sync
-
Configure OpenAI API Key
Option 1: Environment Variable (Recommended)
Create a
.envfile in the root directory:# Optional (will prompt for frontend input if not provided) OPENAI_API_KEY=your_openai_api_key_here # Optional (default values shown) STREAMLIT_SERVER_PORT=8501 STREAMLIT_SERVER_HEADLESS=false
Option 2: Frontend Input
If no environment variable is found, the app will prompt you to enter your API key directly in the web interface. This is perfect for:
- Streamlit Cloud deployments
- Sharing the app with others
- Testing without local configuration
-
Run the application
streamlit run main.py
The application will open in your default web browser at http://localhost:8501.
- Enter API Key (if not set via environment variable): Securely input your OpenAI API key
- Upload Resume: Select and upload your resume in PDF format (max 5MB)
- Specify Job Details (Optional):
- Enter the target job role you're applying for
- Paste the job description for more targeted feedback
- Analyze: Click the "🔍 Analyze Resume" button
- Review Results: Get comprehensive AI-powered feedback
- Download Report: Save your analysis for future reference
- Streamlit (≥1.45.1) - Web application framework
- OpenAI (≥1.82.0) - AI-powered analysis
- PyPDF2 (≥3.0.1) - PDF text extraction
- python-dotenv (≥1.1.0) - Environment variable management
Create a .env file with the following variables:
# Optional (will prompt for frontend input if not provided)
OPENAI_API_KEY=your_openai_api_key_here- Maximum file size: 5MB
- Supported formats: PDF only
- Text extraction: Automatic with error handling for corrupted pages
The AI provides feedback on six key areas:
- Content Quality & Impact - How well achievements are showcased
- Skills Alignment - Relevance to target role
- Experience Presentation - Use of quantifiable results
- ATS Compatibility - Applicant Tracking System optimization
- Areas for Improvement - Specific, actionable recommendations
- Job Match Analysis - Alignment with provided job requirements
The analysis provides structured feedback including:
- ✅ Strengths: What's working well in your resume
⚠️ Areas for Improvement: Specific issues to address- 🎯 Recommendations: Actionable steps to enhance your resume
- 📈 ATS Optimization: Tips for better applicant tracking system compatibility
resumereadiness/
├── main.py # Main Streamlit application
├── pyproject.toml # Project configuration and dependencies
├── uv.lock # Dependency lock file
├── .env # Environment variables (create this)
├── .python-version # Python version specification
└── README.md # Project documentation
# Install development dependencies
uv sync --dev
# Run with auto-reload
streamlit run main.py --server.runOnSave trueContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- 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
- Local Processing: PDF text extraction happens locally
- API Usage: Only extracted text is sent to OpenAI for analysis
- No Storage: No resume data is permanently stored
- Secure API Key Handling:
- Environment variables are preferred for local development
- Frontend input uses password-masked fields
- API keys are session-only and never stored permanently
- Session Security: All data processing happens within your browser session
Issue: "Please enter your OpenAI API key to use the resume analyzer"
- Solution: Either set
OPENAI_API_KEYin your.envfile or enter it directly in the web interface when prompted
Issue: "Error analyzing resume" (API key related)
- Solution: Verify your API key is valid and has sufficient credits. You can test it at OpenAI Platform
Issue: "Could not extract text from PDF"
- Solution: Ensure your PDF is not image-based or encrypted
Issue: "File size exceeds limit"
- Solution: Compress your PDF or use a smaller file (max 5MB)
Issue: "Empty or unreadable text"
- Solution: Try converting your resume to a text-searchable PDF
If you encounter any issues:
- Check the troubleshooting section above
- Review the Issues page
- Create a new issue with detailed description
- OpenAI for providing the GPT-4 API
- Streamlit team for the excellent web framework
- PyPDF2 contributors for PDF processing capabilities
Made with ❤️ for job seekers worldwide