Inspiration

It's too hard to tell if a job aligns with what you want when searching on job boards and internship sites, so it would be nice if there was a tool to rank the jobs automatically based on your preferences. This way, we can save effort from applying to irrelevant and suboptimal jobs.

What it does

SuitYourJob uses several different APIs to curate a collection of internship opportunities, then asks the user for a list of positive and negative phrases. It then uses Cohere API to apply natural language processing to the job descriptions, ranking the jobs based on how closely the description aligns to the user's desires semantically.

How we built it

We used tools such as Serp API and web scraping to query job sites for positions, then used the embed endpoint of the Cohere API to analyze the job description. We take two lists of strings from the user as input, a list of positives and a list of negatives. By comparing the embeddings of each string in these lists with the description with cosine similarity, we can use natural language processing to understand how much the description matches with each of the user's criteria. We use these results to produce a rank, and display the highest ranked jobs to the user for easy application.

Challenges we ran into

We had trouble with processing the embeddings to produce the results we want. At first, we used Euclidean distance to calculate the degree of similarity between embeddings, but this often matched positive and negative descriptions of the same category, for example "supportive environment" and "stressful environment", as highly similar. After some advice from the representatives of Cohere, we decided to use cosine similarity instead and tweak our ranking formula to reduce this issue.

Another issue was faced was finding a suitable endpoint to collect job data from. Well-known job websites like indeed and glassdoor 'supposedly' had API endpoints. However, the necessary endpoints were proven non-existent after several hours of research. Spotty documentation and deprecation eventaully led our team to turn to Serp API, which allowed us to utilize google's job search data for job queries in the site.

Accomplishments that we're proud of

We are proud of building a fullstack web application that has genuine utility to anyone seeking jobs and particularly students seeking internships.

What we learned

We learned how to use RESTful APIs and link them to the frontend of our application. As well we came to understand the theory of how natural language processing works and what an embedding actually represents. This allowed us to produce an effective formula to rank job descriptions according to an user's preferences.

What's next for SuitYourJob / JobSuiter

SuitYourJob is a project that we will unquestionably continue working on. We found a lot of fun doing something helpful for our student's environment. We would like to improve all solution and release a fully operational version soon. In particular, we hope to use a finetuned classification model with cohere to be able to categorize and highlight key phrases in job descriptions. Another next step is saving each user's preference in a database and allow them to access their account after authentification. Finally, we hope to use APIs to automatically direct the user to the application link of a job they are interested in so our site can become a proper job portal.

Built With

Share this project:

Updates