Skip to content

A Flask web application that parses uploaded resumes (PDF) and extracts key information such as skills, experience, email, and phone number. Features include skill-based search, interactive UI, and database storage. Ready for deployment on Render with PostgreSQL.

Notifications You must be signed in to change notification settings

kumarBisho/Resume-Skill-Extractor

Repository files navigation

Resume Skill Extractor

Live Demo

A web-based application that extracts structured information from PDF resumes using Python and machine learning techniques.

Features

  • Extracts key information from PDF resumes:
    • Name
    • Email
    • Phone number
    • Skills
    • Work experience
  • Web-based interface
  • Database storage
  • Search functionality by skills
  • Docker support for easy deployment

UI Preview

Below are screenshots of the application's user interface:

1. File Upload

File Upload

2. Resume Summary

Resume Summary

3. Search by Skill

Search by Skill

4. Search Result

Search Result


Tech Stack

  • Backend: Python, Flask
  • Database: SQLite
  • PDF Processing: pdfplumber
  • Frontend: HTML, Bootstrap
  • Containerization: Docker

Installation

Prerequisites

  • Python 3.11+
  • Docker (optional)

Using Docker (Recommended)

# Build the Docker image
docker build -t resume-parser .

# Run the container
docker run -it --rm -p 5000:5000 resume-parser

Access the application at: http://localhost:5000

Local Installation

  1. Clone the repository:
git clone https://github.com/kumarBisho/Resume-Skill-Extractor.git
cd Resume-Skill-Extractor
  1. Create and activate virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the application:
python resume_parser.py

Access the application at: http://localhost:5000

Usage

  1. Upload a PDF resume using the file upload button
  2. The system will automatically extract:
    • Basic information (name, email, phone)
    • Skills from predefined categories
    • Work experience
  3. Use the search functionality to find resumes based on specific skills

Skill Categories

The system currently supports extracting skills from the following categories:

  • Programming languages
  • Web development
  • Databases
  • Cloud technologies
  • Tools
  • Machine Learning/Artificial Intelligence
  • Data Structures and Algorithms

Project Structure

.
├── resume_parser.py         # Main application file
├── templates/               # HTML templates
│   └── index.html          # Main web interface
├── static/                  # Static files (CSS, JS)
├── uploads/                 # Directory for uploaded resumes
├── requirements.txt         # Python dependencies
├── Dockerfile              # Docker configuration
├── .gitignore              # Git ignore file
└── README.md               # This file

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Thanks to the developers of pdfplumber and Flask for their excellent libraries
  • Special thanks to the open-source community for their contributions

About

A Flask web application that parses uploaded resumes (PDF) and extracts key information such as skills, experience, email, and phone number. Features include skill-based search, interactive UI, and database storage. Ready for deployment on Render with PostgreSQL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published