Inspiration

As college students looking to apply to internships for the summer, we realized a gap between submitting a resume and having an actual human review them. We wanted to create a website that solves all of the mysteries of an Application Tracking System to help us and others gain valuable information to score our next interview.

What it does

Mesh analyzes resumes using machine learning and natural language processing to determine which parts of your resume need work. Mesh also compares your resume to existing job openings found on multiple job boards to see which positions you would be fit for without changing a thing.

How we built it

Mesh was built using Python, Scikit-Learn, Natural Language Toolkit (NLTK), Spacy, and Flask. A resume, being as customizable as it is, is notoriously difficult to parse from, making information as simple as an individual's name and email hard to reach. We used NLTK and Spacy to determine which words on a resume correspond to user identifying information like an individual's university, phone number, and name. To determine the level of similarity between a specific job listing and the user’s resume, we used scikit-learn’s cosine similarity function. After parsing the user’s resume and converting it to a text file, we simply ran the cosine similarity algorithm on the specific job listing. For each listing, we stored a number corresponding to how similar the job and resume were, and presented the user with the job listings that had the highest similarity.

Challenges we ran into

The challenges we ran into include parsing our job listing dataset, converting resumes to text, using natural language processing frameworks, cosine-similarity for job board comparison, and using a web framework for the first time.

Accomplishments that we're proud of

We are proud of creating an amazing UI that not only looks functional, but is functional. We are also proud of incorporating newly acquired knowledge like creating a webserver, using different NLP and ML models, and creating a basic Application Tracking System.

What we learned

We learned feature extraction and cosine similarity, how to parse datasets, how to work with scikit-learn and pdfminer, and how to create a webserver with Flask.

What's next for Mesh

In the future, we hope to provide the user with more metadata related to each job listing. We also hope to provide more information about a user's resume that would help them land future interviews.

Share this project:

Updates