A Neural Network that Dreams in Resumes

If a neural network can write Shakespeare, could it write a resume for you? Inspired by the remarkable results of Recurrent Neural Networks and using thousands of anonymized resumes from untapt, I’ve been experimenting with applying deep learning techniques to the CV.

Inspiration

There’s a seminal blog post called The Unreasonable Effectiveness of Recurrent Neural Networks by Andrej Karpathy, a PhD student and instructor at Stanford. Andrej is taken by surprise by the magical results from Recurrent Neural Networks, a particular type of neural network that can process arbitrary sequences of inputs.

In one example, he feeds the Complete Works of Shakespeare into an RNN. He asks his creation to dream up new passages of Shakespeare. The result could have come from the bard himself.

It gives me goose bumps every time I read it.

It got me thinking. Could we try something similar using our data at untapt? If we combine the anonymized resumes from all our members, we have seven times the data of the Complete Works. We could feed this into an RNN and have it imagine a new resume.

The Neural Network

I used TensorFlow, the open source deep learning library from Google. The data scientists here also pointed me at TFLearn, a higher-level API to speed up experiments. For those new to neural networks, Google also made a brilliant playground to illustrate how they work.

Neural Network

We spun up a beefy 40 core box on AWS and set it loose. After a couple of false starts, my RNN, code-named deep_orange, started to dream up resumes.

Early Results

After a few hours of thinking, the work experience wasn’t looking too inspirational:

Developed and complite the to to anales, and an enterprise project on hull to the analysis and inalysis that team of test and applications and providing resign systeming

Yikes. That’s not going to get deep_orange many interviews. But it’s important to remember, it’s fed a sequence of characters with absolutely no knowledge of the English language, the structure of words and punctuation, and definitely no understanding of the make-up of a resume.

We’re asking a lot. Maybe more time is needed.

By the next day there was a glimmer of progress.

CONTRATES – SOFTWARE ENGINEER

Ontendated and complete and sales product successful office for the components for a company test for company for track and process to company content of cases for design

It’s starting to recognize the structure of a resume. It’s fun to see it invent the name of a company.

A few days later, something magical emerged. I watched as deep_orange dreamed up believable work experience.

LAN CONSULTANCY SERVICES – SENIOR SOFTWARE DEVELOPER

Development: Integrated Reporting services to manage and develop internal and external solutions for the financial standards and processes of clients

Not quite ready to be submitted to a hiring manager… but getting there.

The resume of the future

Could this actually add value for software developers looking for jobs? Potentially, yes. One day, deep_orange, with a few modifications, might predict whether a resume will be invited to interview, or suggest improvements. We’re barely scratching the surface. Much more to come.

In the meantime if you’re interested to see how we are applying machine intelligence to the hiring process, please sign up for untapt, or follow me at @edwarddonner.

Ed is co-founder and CEO of untapt. A FinTech veteran and an Oxford alum, Ed was previously MD at JPMorgan and has held technology positions at IBM and various startups. Coder by day, Ed leads a double life as DJ after work. And if you happen to run into him, ask him how much he loves Seamless (hint: a lot).

Ed is co-founder and CEO of untapt. A FinTech veteran and an Oxford alum, Ed was previously MD at JPMorgan and has held technology positions at IBM and various startups. Coder by day, Ed leads a double life as DJ after work. And if you happen to run into him, ask him how much he loves Seamless (hint: a lot).