Giter Site home page Giter Site logo

jorgehcorrea / resume-matcher Goto Github PK

View Code? Open in Web Editor NEW

This project forked from faizancodes/resume-matcher

0.0 0.0 0.0 189 KB

See how your resume would stack up against an employer's ATS system! Quantify the text in your resume with NLP to calculate how good of a match you are with an internship position

Python 100.00%

resume-matcher's Introduction

Resume Matcher

  • See how your resume would stack up against an employer's ATS system! Quantify the text in your resume with natural language processing to calculate how good of a match you are for a job / internship position.

  • Having a good resume is the first step in landing an internship, without the right keywords and content in your sentences, you will likely not get past the first stage in the application process and not get an interview.

  • The code for this project is built off of a previous project of mine found here which mainly gets you the job listings and links to apply, etc. This program contains a lot of the same code, but with NLP techniques, it is meant to help you assess how good of a match you are for a job position, and help you improve your resume by recommending keywords you should add in.

  • This program works by comparing the contents of your resume to the contents of the full description found for each job posting on Indeed and calculating how similar the text is using spaCy, NLTK, and Wordnet.

Similarity Metrics

  • In the attached Software Engineer Intern Job Postings.csv file, there are 4 columns in particular to review:

    The values in the csv file are based on my resume and the description of the values listed below are based on my findings

    • Keyword Similarity: This is a calculation of how similar the most common words in your resume are with the most common words in the job description.

      • Values > 60 mean you have very effective keywords for the particular position
      • Values 50 <= x <= 60 mean you have good keywords for the position
      • Values < 50 mean you should update your resume before applying
    • Sentence Similarity: This is a calculation of how similar the sentences in your resume are with the sentences in the job description.

      • Values 45 <= x <= 50 mean the content of your resume is a great fit for the position
      • Values 40 <= x <= 45 mean the content of your resume is a good fit for the position
      • Values < 40 mean you should revise your resume before applying
    • Overall Similarity: This is the sum of the Keyword Similarity and Sentence Similarity

      • Values >= 90 mean you are an excellent match
      • Values 80 <= x <= 90 mean you are a good match
      • Values < 80 mean you should revise your resume before applying, add in the suggested keywords
    • Recommended Words: These are the most common words in the job description and you should add them to your resume

How to Run the Code

  • If you do not have git installed, download it here

  • If you do not have pip installed, download it here

  • Clone the repository git clone https://github.com/faizancodes/Resume-Matcher.git

  • Navigate to the downloaded folder cd Resume-Matcher

  • Upload your resume in the Resume-Matcher folder and name it resume.pdf. Make sure it is saved as a pdf

  • Your folder should contain all these files:

image

  • Create and activate a virtual environment

    • Read more about VMs here if you are having issues

      • Windows:
        py -3.6 -m venv env
        env\Scripts\activate
        
      • Mac & Linux
        python3.6 -m venv env
        source env/bin/activate
        
  • Your Command Prompt / Terminal should look like this so far:

tml

  • Next, download all the dependencies pip install -r requirements.txt

    • If that gives you an error, try

      • python -m pip install -r requirements.txt or

      • pip3 install -r requirements.txt if you are on Mac

  • Download the NLP model python -m spacy download en_core_web_lg (850 MB necessary)

  • Download the necessary packages for NLTK:

    python -m nltk.downloader stopwords punkt averaged_perceptron_tagger

  • Run the code python resumematcher.py

Note

  • This program is computationally intensive and requires a decent amount time to finish running, depending on the amount of job postings found. It took around 20 minutes to finish running through 115 job postings, seen in the attached csv file

  • When the program starts running, it will print the most common words in your resume, indicated by (word, frequency). Then the program starts iterating through the job postings and calculating the corresponding similarity scores

    • The program outputs the most common words for each job description and the direct link to apply for each job posting (as seen in the screenshot below), which you can simply copy paste into your browser, so you do not have to wait until the entire program is finished running.

    - When the program is finished running, it puts all the data into a csv file which you can open with Excel. From there, you can sort the 'Overall Similarity' column to find the jobs you matched the best with.

image

resume-matcher's People

Contributors

faizancodes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.