- Project Overview
- Features
- Tech Stack
- How It Works
- Project Structure
- Installation and Setup
- Usage
- Testing
- License
- Contributing
- Troubleshooting
The AI-Powered Resume Analyzer is a web application designed to analyze user-uploaded resumes against job descriptions, providing feedback and a job match percentage. The application consists of a frontend built with React and Tailwind CSS, and a backend developed using Flask.
- Resume Upload (PDF/Docx Support)
- Extract Skills & Experience using NLP
- Match Resume with a Job Description
- Provide Score & Suggestions
- Download Improved Resume Suggestions
- React.js: JavaScript library for building user interfaces.
- Tailwind CSS: Utility-first CSS framework for styling.
- Axios: Promise-based HTTP client for making API requests.
- Flask: Micro web framework for Python.
- Flask-CORS: Extension for handling Cross-Origin Resource Sharing (CORS).
- PyMuPDF: Library for PDF text extraction.
- python-docx: Library for reading and writing Microsoft Word files.
- NLTK: Natural Language Toolkit for text processing.
- OpenAI API: For analyzing resumes and providing feedback.
- OpenAI API for text analysis.
- NLTK or spaCy for text processing.
- User uploads a resume (PDF or Docx).
- The backend extracts text using Python's PyMuPDF or python-docx.
- The Machine Learning model (or OpenAI API) analyzes skills, keywords, and experience.
- Compares the resume with a job description provided by the user.
- Generates feedback (e.g., missing skills, keyword optimization).
- Displays job match score and lets users download an improved version.
ResumeAnalyzer/
├── frontend/ # React.js application
│ ├── src/ # React source code
│ ├── public/ # Static files
│ └── Dockerfile # Frontend Docker configuration
├── backend/ # Flask API server
│ ├── app.py # Main Flask application
│ ├── requirements.txt # Python dependencies
│ └── Dockerfile # Backend Docker configuration
├── docker-compose.yml # Docker Compose configuration
└── README.md # Project documentation
- Node.js (v14 or later)
- Python (v3.8 or later)
- OpenAI API Key
- Docker and Docker Compose (optional, for containerized setup)
-
Create a
.envfile in the project root with your OpenAI API key:OPENAI_API_KEY=your_actual_openai_api_key FLASK_ENV=production -
Build and start the containers:
docker-compose up -d -
Access the application at
http://localhost.
Backend Setup
-
Navigate to the backend directory:
cd ResumeAnalyzer/backend -
Create a virtual environment:
python -m venv venv -
Activate the virtual environment:
- Windows:
venv\Scripts\activate - MacOS/Linux:
source venv/bin/activate
- Windows:
-
Install required packages:
pip install -r requirements.txt -
Create a
.envfile in the backend directory:cp .env.example .env -
Add your OpenAI API key to the
.envfile:OPENAI_API_KEY=your_actual_openai_api_key -
Run the Flask development server:
python app.pyThe backend will be available at
http://localhost:5000.
Frontend Setup
-
Navigate to the frontend directory:
cd ResumeAnalyzer/frontend -
Install required packages:
npm install -
Start the development server:
npm startThe frontend will be available at
http://localhost:3000.
- Upload your resume (PDF or DOCX format).
- Paste the job description you want to match against.
- Click "Analyze Resume".
- Review the analysis results including:
- Job match score
- Skills found in your resume
- Missing skills from the job description
- Suggestions for improvement
To run the backend tests, navigate to the backend directory and run:
python -m unittest test_app.pyThis project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a pull request or open an issue for any suggestions or improvements.
- If you encounter CORS issues, make sure both frontend and backend are running.
- For OpenAI API errors, verify your API key is correct and has sufficient credits.
- If Docker containers fail to start, check port availability and environment variables.
