Resume analysis with GPT-3.

Image generated with stable diffusion — prompt: A digital illustration of a steampunk library with robots reading letters, 4k, detailed, trending in artstation, fantasy vivid colors”

Hi, thanks for being here. I suppose that if you are reading this article, you might have already heard about GPT-3, the powerful AI created by OpenAi. I will not be entering into much detail about GPT-3’s history and capabilities because I think there are already many excellent introductory articles about this fantastic AI on the web.

So far, GPT-3 models have demonstrated their power to give impressive answers to questions on information publicly available on the web, in books, and in all the vast sources of information used to train these models. However, some use cases require us to fine-tune the models to get the best results. In this post, I’ll explore how to use GPT-3’s Question And Answers capabilities in a real-world scenario, analyzing resumes.

A bit of context before getting the foot wet

You might ask why GPT-3 for analyzing resumes. Well, let me give you a bit of context. My name is Carlos Ortiz; I’m one of the founders and CTO of an Engineering services agency in Medellin, Colombia. By the way, you should visit Medellin at least once in your life, here the wheater, food, and people are great, and you can find numerous business opportunities. But that’s another history. The point is that as one of our services is to provide team extensions to startups and other companies worldwide, we must match the best people for projects and clients. That labor today is entirely manual, so I was wondering if we can use GPT-3 to start creating an automated and robust selection process. I hope the experiment described here could help as a starting point for a scalable AI-based platform for people matching.

So what is the idea?

I will start with a modest objective, asking our resume database with natural questions and using the answers to build the best teams for our clients. Resumes generally lack structured formats, which makes them hard to run “as is” through an analytics process based on traditional tools like SQL databases or full-text search engines. You can say that full-text engines can help in that task. However, they are not helpful when retrieving meaningful contextual or semantic information.

Here is where GTP-3 comes to the rescue. I’ll show you how.

GPT-3 features can be accessed in two ways: on the web using the “Playground” or by calling their REST API. No matter what you choose, you will interact with GPT-3 using text human-readable prompts. So, I will start our experiment using the Playground.

First, let’s see the structure of a single resume:

— –

Candidate

Juan Lopez is a Software engineer focused on web development with experience on banking apps, booking systems, e-commerce, mobile apps, and real-time systems like video call and chat applications. Proficient in: Javascript, NodeJS, CSS3, HTML, React Native, React, Redux, Git, WebRTC, GraphQLElectron, SQL, PostgreSQL

Career History:
November 2019 — Current
Senior Software Engineer maintaining and building new features for an Omni channel communication platform (Backend and FrontEnd)

Jan 2017 — Sept 2019
Front End Engineer
I worked as a Web UI Developer maintaining and building new features for their booking system and web app using HTML, CSS, ReactJS, Redux, and GraphQL.

— –

Ideally, we must provide GPT-3 with all our resumes to create a robust solution. However, for costs and for simplicity (I promise to write another post using a more powerful implementation based on files and model fine-tuning), I’ll create a single prompt with some of our resumes (Note that names are not real) :

— —

Candidate
Juan Lopez is a Software engineer focused in web development with experience in banking apps, booking systems, e-commerce, mobile apps, and real-time systems like video call and chat applications. Proficient in: Javascript, NodeJS, CSS3, HTML, React Native, React, Redux, Git, WebRTC, GraphQLElectron, SQL, PostgreSQL

Career History:

November 2019 — Current
Senior Software Engineer maintaining and building new features for an Omni channel communication platform (Backend and FrontEnd)

Jan 2017 — Sept 2019
Front End Engineer
I worked as a Web UI Developer maintaining and building new features for their booking system and web app using HTML, CSS, ReactJS, Redux, and GraphQL.
— –
Candidate

Carlos Perez has 8 years of experience implementing E-commerce sites with SAP commerce platform and JAVA EE projects. Proficient in: Java EE, Spring Framework, Scrum, DDD, Enterprise Integration Patterns, Solr, Graphql, MongoDB, MySQL.

Career History:

Feb 2022 — Current
Integrate gateway (Checkout.com) with Stripe, ApplePay, Paypal, and GooglePay to complete the checkout process. Leader of the pre-order process.

August 2020 — Feb 2022
Leader of the ERP asynchronous integration of Pricing, ATS (Stock Availability), order details, and Cancellations.
— –
Candidate
Will Martinez is a FrontEnd developer since 2016, working with Javascript Projects; I have a solid understanding of frameworks to build web and hybrid applications. I’m obsessed with code readability and efficient implementations. Proficient In Javascript, React Js, React Native, Angular, Ionic, Typescript, Firebase, Adobe XD, Figma.

Career History:

December 2019 — Current

As a senior full-stack developer, I had different responsibilities: FrontEnd and Back-end tasks, Code Reviews, Continuous enhancement, and Creation and Integration of REST APIs.

Jun. 2017 — Nov.2019
Junior FrontEnd Developer; I worked on web applications based on Javascript, Typescript, Angular, and ReactJs.

— –

At this point, I can ask any question about our candidates; in this case, I will ask GPT-3 Which Candidate has the most experience in payment platforms?

Q: Which Candidate has the most experience in payment platforms?

A: Carlos Perez has the most experience in payment platforms.

Here is where you can start tasting the power of GPT-3 for question-answering. Carlos Perez’s resume has no literal indications of experience in payment applications; however, GPT-3 inferred that probably based on his career history information: “Integrate gateway (Checkout.com) with Stripe, ApplePay, Paypal and GooglePay…”. For simplicity, you can assume GPT-3 knows that Stripe, ApplePlay, and Paypal are payment gateways(Embbedings behind the scene).

In the previous test, I used “text-baggage-001”, a cheap and not very powerful model, and provided it with only three resumes. Despite the configuration and the data, we got decent results. We should leverage embeddings and fine-tune the model with thousands of samples for a more robust solution.

I’ve created a notebook on Github to replicate this functionality using the OpenAI REST API. Remember that you must have an OpenAI’s API key to run this notebook.

Thanks for reading!

(Update: I’ve published a new post on a more robust solution).

Stay tuned for more content about GPT-3, NLP, System design, and AI in general. Follow Klever for Solutions on LinkedIn too.

What is the interview process for software engineers?

Are you a recently graduated software engineer looking for your first job? Or has it been a while since you applied for a job as a software engineer? Either way, interview processes might seem intimidating. Let’s see what the interview process is for us, software engineers.

Read More »