Skip to content

GuranshGoyal/ResumeAnalyser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aplytic

Automated AI Powered Resume Ranking & Analysis Tool

Built with the tools and technologies:

Streamlit Jupyter scikitlearn spaCy NumPy Python pandas


Table of Contents


Overview

ResumeAnalyser is an automated resume ranking and analysis application designed for recruiters and hiring managers. This tool accepts a ZIP file containing multiple PDF resumes and an optional job description text file. It then processes the resumes using advanced NLP techniques and scoring algorithms to rank candidates based on:

  • Technical & Managerial Skills: Evaluated using years of experience, education level, and keyword-based skills extraction.
  • Resume Quality: Assessed via spell-check ratios, section identification, and overall brevity.
  • Job Matching: Uses TF-IDF similarity measures to compare resumes against the provided job description.

The final output is a ranked list of resumes with scores and downloadable results for further review.


Features

  • Interactive UI with Streamlit: Upload resumes and job descriptions, view processing status, and download results.
  • PDF Text Extraction: Converts resumes in PDF format into text using libraries like PyPDF2 and pymupdf.
  • NLP-Powered Analysis:
    • Preprocessing: Tokenization and lemmatization using spaCy.
    • Skill Extraction: Identifies both general and technical skills.
    • Experience & Education: Extracts years of experience and detects education level.
    • Resume Quality Metrics: Spell-check, section identification, and brevity evaluation.
  • Scoring and Ranking: Combines technical, managerial, and overall quality scores with job match scores (via TF-IDF similarity) to generate final rankings.
  • Downloadable Results:
    • CSV file containing all calculated scores.
    • Top 3 ranked resumes available as downloadable PDFs with an embedded viewer.
  • Default Job Skills Management: Automatically loads or creates a default job skills file (job_skills.json) for reference during analysis.

Project Structure

Below is a sample layout of the project's folder structure:

└── ResumeAnalyser/
    ├── README.md
    ├── model.py
    ├── app.py
    ├── output
    |      └── .gitkeep
    ├── .streamlit
    |      └── config.toml
    └── requirements.txt

Project Index

  • requirements.txt: Lists all project dependencies.
  • model.py: Main logic for resume processing, scoring, and ranking.
  • app.py: Streamlit application for interactive resume analysis.
  • .streamlit: Configuration for streamlit environment.
  • output: Placeholder for output stream

Getting Started

Prerequisites

  • Programming Language: Python 3.7 or higher
  • Package Manager: Pip
  • Required Libraries: Streamlit, pandas, scikit-learn, spaCy, pymupdf, PyPDF2, language_tool_python, textblob, and others listed in requirements.txt.

Installation

  1. Clone the Repository:

    git clone https://github.com/yourusername/ResumeAnalyser.git
    
  2. Navigate to the Project Directory:

    cd ResumeAnalyser
    
  3. Install Dependencies:

    pip install -r requirements.txt
    python -m spacy download en_core_web_sm
    

Usage

To launch the Resume Ranking Application, use the following command:

streamlit run app.py

This will start a local Streamlit server where you can:

  • Upload a ZIP file containing PDF resumes.
  • Optionally upload a job description (TXT file).
  • View the analysis results, download the final ranked CSV, and retrieve the top ranked resume PDFs.

Project Roadmap

  • Task 1: Implement resume extraction and text conversion from PDF files.
  • Task 2: Enhance scoring algorithms with additional metrics and dynamic weighting.
  • Task 3: Integrate more robust job description parsing and candidate matching features.
  • Task 4: Improve UI/UX and add more visualization options in the Streamlit app.

Contributing

Contributing Guidelines
  1. Fork the Repository: Fork the project to your account.
  2. Clone Locally: Clone your forked repository.
    git clone https://github.com/yourusername/ResumeAnalyser.git
  3. Create a New Branch:
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes:
    git commit -m "Implemented feature x."
  6. Push to Your Fork:
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original repository with a clear description of your changes.
  8. Review: Once reviewed and approved, your changes will be merged.

Future Plans

  • Improve the regex and pattern matching for extraction
  • Enhance the NLP pipeline
  • Host on AWS/Google Cloud
  • Suggest improvements to resumes
  • Generate cover letters
  • Incorporate weightage to personal recommendations on the basis of content of recommendation letters

Problems Encountered and their Solutions

  • Identifying appropriate parameters for resume ranking and assigning meaningful weightage to different sections

    Conducted thorough research on industry standards and consulted domain experts to determine relevant parameters such as skills, experience, and education

  • Integrating the frontend, particularly handling the import of archive files

    Utilized Python's zipfile module to extract and parse multiple resumes from archive files (ZIP format) and ensured seamless data transfer between the frontend and backend

  • Handling inconsistencies in resume structures and maintaining uniform data processing

    Implemented a robust text processing pipeline that included tokenization, lemmatization, and stopword removal to clean and standardize extracted text. Utilized libraries like nltk and spaCy to ensure uniform processing across different resume formats.


License

This project is protected under the MIT License. For more details, please refer to the LICENSE site.


Acknowledgments

© 2025 P-125, Batch of 2027. All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages