Resume Analysis using Ai
Project description
Resume Analyzer with Google Gemini API
This project is a Flask-based web application designed to process and analyze resumes using the Google Gemini API. It extracts key details such as Name, Email, Phone Number, Education, Skills, Projects, and Experience from resumes in PDF format. The application also supports handling resumes in bulk and filtering resumes related to mechanical engineering based on specific skills and background.
Features
- Resume Extraction: Extracts information like Name, Email, Phone, Education, Skills, Projects, and Experience.
- Mechanical Engineering Filter: Identifies resumes with a mechanical engineering background and specific skills such as AutoCAD, SolidWorks, and more.
- Single Resume Upload: Allows users to upload a single resume for analysis.
- Bulk Resume Upload: Process all resumes in a folder.
- CSV Export: Exports extracted resume data into CSV files.
- Interaction with Gemini: Interact with Google Gemini API to generate insights or summaries based on the extracted resume data.
Requirements
- Python 3.x
- Flask
- Google Generative AI SDK (
google.generativeai) - PyPDF2
- Markdown
- Other Python dependencies can be installed using the
requirements.txt.
Installation
-
Clone the repository:
git clone https://github.com/yourusername/resume-analyzer.git cd resume-analyzer
-
Set up a virtual environment (recommended):
python -m venv venv source venv/bin/activate # For Windows: venv\Scripts\activate
-
Install the required dependencies:
pip install -r requirements.txt
-
Get a Google API key for Gemini. Configure it in your app by setting the
api_keyin the following line of theapp.py:genai.configure(api_key="your-google-api-key")
Running the Application
-
Start the Flask development server:
python app.py -
Open your browser and navigate to
http://127.0.0.1:5000/.
Usage
1. Upload a Resume
- Go to the homepage.
- Choose a PDF resume to upload.
- The system will extract the details and display them on the webpage.
2. Process Multiple Resumes from a Folder
- Upload a folder URL containing multiple resumes.
- The system will process all PDFs within the folder and extract relevant data from them.
3. Filter Mechanical Engineering Resumes
- The system filters resumes with a mechanical engineering background based on education, experience, and specific mechanical skills.
- The filtered data is exported to a separate CSV file.
4. CSV Export
- After extraction, all extracted data can be downloaded in CSV format.
- Mechanical resumes are stored in a separate CSV file if applicable.
5. Interact with Gemini API
- You can use the interact feature to send prompts to the Gemini API, including querying the extracted resume data.
- Responses can be in JSON, Markdown, or plain text format.
File Structure
app.py: Main application file containing logic and routes.uploads/: Folder where uploaded resumes are stored.templates/: Folder containing HTML templates.static/: Folder for static assets (e.g., CSS, JS).requirements.txt: List of dependencies for the project.
Dependencies
To install the necessary dependencies, you can use:
pip install -r requirements.txt
The requirements.txt includes dependencies like:
- Flask
- google.generativeai
- PyPDF2
- markdown
Future Improvements
- Support for more document formats (e.g., DOCX).
- Enhanced user interface for better user experience.
- Additional data extraction for more complex resume structures.
- Integration with a database for storing extracted resume data.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- This project uses Google Gemini API.
- The project leverages the
PyPDF2library for PDF processing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file SmartCVParserAPI-0.1.0.tar.gz.
File metadata
- Download URL: SmartCVParserAPI-0.1.0.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccbdf17fa83f29fcfe496944966c14033b15a490f8c4ff9d94a36b71ec14d11a
|
|
| MD5 |
9347bc16acc5de9934e4c4314fc3eb8c
|
|
| BLAKE2b-256 |
b2d07a504475b76aae18defa2db69b1aa7112c768ea7b327d524f83d5aa0258e
|
File details
Details for the file SmartCVParserAPI-0.1.0-py3-none-any.whl.
File metadata
- Download URL: SmartCVParserAPI-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30f9cc25db95352696465a9b85b4b412f3f7ca3f925ea62b5e18ac9c7f276ccc
|
|
| MD5 |
65b4dac68cc7c3774b0e9a4847ac21f8
|
|
| BLAKE2b-256 |
0508b67bedb24b134008e52555a4ccd8a3bfdf4ac35eb77990fce448a7fc6810
|