Skip to main content

Analyze resumes and job descriptions by extracting key sections and scoring them based on keyword relevance

Project description

dsresumatch

Documentation Status codecov Project Status: Active – The project has reached a stable, usable state and is being actively developed.

PyPI - Python Version PyPI - Version

Outline

dsresumatch is a Python library designed to do the analysis, evaluation, and scoring of resumes in PDF format. With tools to extract, clean, and analyze text, it allows users to identify missing, count word frequencies, evaluate keyword matches, and generate scores for resumes based on predefined criteria. This package is especially useful for recruiters, hiring managers, and job seekers aiming to optimize resumes for keyword-based Applicant Tracking Systems (ATS).

Features

  • Text Processing

    • read_pdf(file_path): Extracts raw text from a PDF file.
    • clean_text(raw_text): Cleans and preprocesses extracted text by removing punctuation, stop words, and converting to lowercase.
    • count_words_in_pdf(file_path): Counts word frequencies in a PDF file.
  • Section Evaluation

    • missing_section(clean_text, add_benchmark_sections=None): Identifies sections missing from the resume compared to benchmark sections.
  • Keyword Analysis

    • evaluate_keywords(cleaned_text, keywords=None, use_only_supplied_keywords=False): Matches keywords against the resume text and evaluates the coverage.
  • Resume Scoring

    • resume_score(cleaned_text, keywords=None, use_only_supplied_keywords=False, add_benchmark_sections=[], feedback=True): Scores resumes based on keyword matching, benchmark sections, and provides detailed feedback on missing or extra keywords and sections.

How Does dsresumatch Fit into the Python Ecosystem?

dsresumatch addresses a unique niche in the Python ecosystem by focusing on resume analysis and scoring, particularly for optimizing resumes for Applicant Tracking Systems (ATS) for Data Scientists. While there are general-purpose text analysis libraries such as:

  • NLTK: For advanced natural language processing tasks.
  • spaCy: For large-scale NLP and text processing.

There are no Python packages that consistently support resume matching (e.g., resume-matcher, which was last updated in February 2024). However, there are some Python programs available, such as resume-job-matcher and Resume Compatibility.

If you are looking for general PDF text extraction, libraries like PyPDF2 and pdfplumber might suit your needs. However, dsresumatch builds on this functionality to provide domain-specific tools tailored to resume evaluation.

Installation

$ pip install dsresumatch

Usage

The full documentation can be found here.

Before using dsresumatch, please ensure that your PDF file is placed in the root directory of the project repository.

Here is an example of using dsresumatch to extract text from pdf, count words from pdf:

# Import required functions
from dsresumatch.pdf_cv_processing import read_pdf, count_words_in_pdf, clean_text
from dsresumatch.sections_check import missing_section
from dsresumatch.evaluate_keywords import evaluate_keywords
from dsresumatch.resume_scoring import resume_score
#additonal imports would be determined later

file_path = "~/Desktop/my_example_cv.pdf" # Specify the file path

raw_text = read_pdf(file_path) # Read text from the PDF
cleaned_text = clean_text(raw_text) # Clean and preprocess the text
word_counts = count_words_in_pdf(file_path) # Count words in the PDF

# (Optional) give keywords 
add_benchmark_sections = ["Work Experience", "Education", "Skills", "Projects", "Certifications"] 

# Identify missing sections
missing = missing_section(cleaned_text, benchmark_sections) 

keywords = ["Python", "Data Analysis", "Machine Learning"] # Evaluate keywords
keyword_evaluation = evaluate_keywords(cleaned_text, keywords)

resume_summary = resume_score(
    cleaned_text,
    keywords=keywords,
    add_benchmark_sections=benchmark_sections,
    feedback=True,
) # Score the resume

print("Word Counts:", word_counts)
print("Missing Sections:", missing)
print("Keyword Evaluation:", keyword_evaluation)
print("Resume Summary:", resume_summary)

A vignette, outlining the full functionality of the package can be found here.

Contributors

Nelli Hovhannisyan, Ashita Diwan, Timothy Singh, Jia Quan Lim

Contributing

As a developer, are you innterested in contributing? Check out the contributing guidelines.

You may find the guided instructions in CONTRIBUTING.md Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

dsresumatch was created by Nelli Hovhannisyan, Ashita Diwan, Timothy Singh, Jia Quan Lim. It is licensed under the terms of the MIT license.

Credits

dsresumatch was created with cookiecutter and the py-pkgs-cookiecutter template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsresumatch-1.1.7.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsresumatch-1.1.7-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file dsresumatch-1.1.7.tar.gz.

File metadata

  • Download URL: dsresumatch-1.1.7.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for dsresumatch-1.1.7.tar.gz
Algorithm Hash digest
SHA256 63013da1ca0ab0e00e5a95a7cb83605985899c4c5a4770b1e9598935895daf51
MD5 d6666e05a9a20d9352975dfb79a402a6
BLAKE2b-256 e47dbc53d4abf671614331a9224c0f309999516d3857005d55a1533686fadcea

See more details on using hashes here.

File details

Details for the file dsresumatch-1.1.7-py3-none-any.whl.

File metadata

  • Download URL: dsresumatch-1.1.7-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for dsresumatch-1.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 42d9b969756eb771689f82dade1f361615479d535e238733a93e67253b531ec6
MD5 6e9d0f891ad163575a65633729b11bb8
BLAKE2b-256 78252580d5707db15b38a5b3b51ca4ac4e690853b27c77c9c668c02ff356dc61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page