Building Relevance at Handshake

Recommending jobs without prejudice.

This is the first in a series of posts about how Handshake uses data science and machine learning to help over a million college students find great jobs. Does that sound like something you’d like to work on? Good news: we’re hiring!

Full disclosure: this post is not about novel, cutting edge machine learning technology. My biggest responsibility at Handshake is to use data to deliver a pleasant, efficient, and personalized job-search experience to our students. As difficult a task as this may be, it’s not one that merits a solution involving neural nets-on-neural net-on-neural nets (yet). Our team prefers to use reliable, efficient, and relatively interpretable machine learning techniques, such as alternating least squares matrix factorization and collaborative filtering.

A very non-technical (hence the awful font) illustration of the types of students we see on Handshake

Personalization and recommender systems are everywhere today. Have you ever finished a movie on Netflix and felt enticed by the suggested movies that pop up on screen during the credits? Ever kept listening to Spotify long after your playlist ended? Odds are, you’ve encountered behavior-based recommender systems before — maybe even on a job search platform like ours. I’ll give you a non-technical explanation of how something like this works in the context of our product.

Let’s say we have a student named Claira. She’s majoring in computer science and wants an internship as a software engineer in California. She signs on to Handshake and views internships at Google, GAP, and Lucky Brand.


Doesn’t Claira look happy to be on Handshake?

Let’s add another student to the picture, front-end development wiz Spencer. He “favorites” the same job at Google


Even the busiest students have time for Handshake.

And let’s throw in one more student for good measure, Jordan. She applies to the same jobs at GAP and Lucky Brand, as well as one at San Francisco-based fashion startup MM.LaFleur.


Apply to a job on our iOS and Android apps and you’ll understand how Jordan feels.

Claira and Jordan appear to have similar interests in jobs. We might hypothesize then that a job Jordan finds appealing, i.e. the position at MM.LaFleur might also appeal to Claira. Let’s actively recommend it to her.


Putting it all together

I’ve been misleading you a bit, naming each student and job and telling you some of their characteristics — none of that actually factors into these job recommendations. All the algorithm actually sees is shown below:


What the recommender system actually sees

The fact that a few students tend to be interested in the same set of jobs is enough information for many recommender systems to figure out similarities among users, which, in turn, generate personalized, “based on your viewing/shopping/application history”-style recommendations like the ones shown below on a student’s New Jobs Recommended for You page:

nullPersonalized job recommendations based on students’ job viewing and application history

This type of algorithm is tremendously effective; during busy months, we’ve seen more than 50% of all visitors to this page apply to jobs that they found there.

We’re perhaps even more proud of how well these job recommendations align with our mission: to democratize opportunity and be the best place for all students to find great jobs, regardless of where they’re from and who they know. What do I mean by that?

We’ve essentially removed our prejudices about which jobs are good fits for certain types of students. Not every computer science major wants to be a software engineer. Not every great software engineer has a degree in computer science. The only thing we take into account here is which jobs each student has already expressed interest in, either through viewing or applying.

Better still, we like to think of our personalized job recommendations as a type of indirect peer-to-peer learning. Remember Jordan and Claira from the cartoons above? We helped Claira discover an opportunity at a San Francisco startup that she might not have otherwise heard of — all because Jordan “vetted” it for her by applying first. Imagine for a second that Jordan is from San Francisco and has insider knowledge of all the trendy fashion startups there. Claira might not be as familiar with them as Jordan, but Handshake can help bridge that knowledge gap.

Where do we still have room for improvement? In short, everywhere, but especially in coverage. Like many recommender systems, ours suffers from a “cold start” problem. It’s very hard to make personalized recommendations to brand new users. If a student is new to Handshake and hasn’t interacted with any jobs, like Spencer in the above cartoon, then we really don’t know much about they want — unless we ask them the right questions. Perhaps we’ll share more on that in a later post.


For Employers

For students