Skip to content

Text Similarity Applied to resume, to compare Resumes with Job Descriptions and create a score to rank them. Similar to an ATS.

License

Notifications You must be signed in to change notification settings

intaiyjw/Naive-Resume-Matching

 
 

Repository files navigation

Naive-Resume-Matcher

A Machine Learning Based Resume Matcher, to compare Resumes with Job Descriptions. Create a score based on how good/similar a resume is to the particular Job Description.\n Documents are sorted based on Their TF-IDF Scores (Term Frequency-Inverse Document Frequency)

Check the live version here. The instance might sleep if not used in a long time, so in such cases drop me a mail or fork this repo and launch your own instance at Streamlit's Cloud Instance

Matching Algorihms used are :-

  • String Matching

    • Monge Elkan
  • Token Based

    • Jaccard
    • Cosine
    • Sorensen-Dice
    • Overlap Coefficient

Topic Modelling of Resumes is done to provide additional information about the resumes and what clusters/topics, the belong to. For this :-

  1. TF-IDF of resumes is done to improve the sentence similarities. As it helps reduce the redundant terms and brings out the important ones.
  2. id2word, and doc2word algorithms are used on the Documents (from Gensim Library).
  3. LDA (Latent Dirichlet Allocation) is done to extract the Topics from the Document set.(In this case Resumes)
  4. Additional Plots are done to gain more insights about the document.

Images

  1. List of Job Descriptions to Choose from. List of Job Descriptions to choose from

  2. Preview of your Chosen Job Description The Job Description

  3. Your Resumes are ranked now! Check the top Ones!! Ranked Resumes as per Job Description

  4. Score distribution of different candidates incase you want to check some more. Score distribution of different candidates

  5. Topic Disctribution of Various Resumes Topic Disctribution of Various Resumes

  6. Topic Distribution Sunburst Chart Topic Distribution Sunburst Chart

  7. Word Cloud of your resume for a quick glance! Word Cloud of your resume for a quick glance!

Preview

Working Video

Progress Flow

  1. Input is Resumes and Job Description, the current code is capable to compare resumes to multiple job descriptions.
  2. Job Description and Resumes are parsed with the help of Tesseract Library in python, and then is converted into two CSV files.Namely Resume_Data.csvandJob_Data.csv.
  3. While doing the reading, the python script named fileReader.py reads, and cleans the code and does the TF-IDF based filtering as well. (This might take sometime to process, so please be patient while executing the script.)
  4. For any further comparisons the prepared CSV files are used.
  5. app.py containg the code for running the streamlit server and allowing to perform tasks. Use streamlit run app.py to execute the script.

File Structure

Data > Resumes and > JobDescription

The Data folder contains two folders that are used to read and provide data from. Incase of allowing the option to upload documents, Data\Resumes and Data\JobDesc should be the target for Resumes and Job Description respectively.

Due the flexibility of Textract we need not to provide the type of document it needs to scan, it does so automatically.

But for the Job Description it needs to be in Docx format, it can be changed as well.

Installation Instructions

A python virtual environment is required for this. Please read this page for more information.

A pip requirements.txt file is provided. It is advised to install the packages listed below, manually by doing pip install <package_name>. As the requirements.txt file may have some unecessary additional dependencies.

Popular Packages used are:-

Furthermore the packages like NLTK and Spacy requires additional data to be downloaded. After installing them please perform:-

## For Spacy's English Package
python -m spacy download en_core_web_sm

## For NLTK Data
import nltk
nltk.download('popular')  # this downloads the popular packages from NLTK_DATA

Execution Instructions

Please check the How To file for execution instructions.

About

Text Similarity Applied to resume, to compare Resumes with Job Descriptions and create a score to rank them. Similar to an ATS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%