Here's How to Extract Skills from a Resume Using Python

There are many ways to extract skills from a resume using python. We'll look at three here.
August 19, 2022
3 Minutes
Setting up a system to extract skills from a resume using python doesn't have to be hard.
Setting up a system to extract skills from a resume using python doesn't have to be hard.

Do you need to extract skills from a resume using python? There is more than one way to parse resumes using python - from hobbyist DIY tricks for pulling key lines out of a resume, to full-scale resume parsing software that is built on AI and boasts complex neural networks and state-of-the-art natural language processing.

What you decide to use will depend on your use case and what exactly you’d like to accomplish. Here we’ll look at three options:

  • a DIY python tutorial
  • an open source resume parser you can integrate into your code for free, and
  • an AI based modern resume parser that you can integrate directly into your python software with ready-to-go libraries.

1. A DIY  Way to  Extract Skills from a Resume Using Python

If you’re a python developer and you’d like to write a few lines to extract data from a resume, there are definitely resources out there that can help you.  

Omkar Pathak has written up a detailed guide on how to put together your new resume parser, which will give you a simple data extraction engine that can pull out names, phone numbers, email IDS, education, and skills.

The first step in his python tutorial is to use pdfminer  (for pdfs) and doc2text (for docs) to convert your resumes to plain text. From there, you can do your text extraction using spaCy’s named entity recognition features.  

It’s a great place to start if you’d like to play around with data extraction on your own, and you’ll end up with a parser that should be able to handle many basic resumes.

However, this is important: You wouldn't want to use this method in a professional context. The accuracy isn't enough.

2.  Open Source Method to Extract Skills from a Resume Using Python

Maybe you’re not a DIY person or data engineer and would prefer free, open source parsing software you can simply compile and begin to use.

The same person who wrote the above tutorial also has open source code available on GitHub, and you're free to download it, modify as desired, and use in your projects.

This is essentially the same resume parser as the one you would have written had you gone through the steps of the tutorial we’ve shared above.

While it may not be accurate or reliable enough for business use, this simple resume parser is perfect for causal experimentation in resume parsing and extracting text from files.

The open source parser can be installed via pip:

It is a Django web-app, and can be started with the following commands:

The web interface at will now allow you to upload and parse resumes.

Computer with code demonstrating how to extract skills from a resume using python
There's something about expert tools that make it easy to extract skills from a resume using python

However, just like before, this option is not suitable in a professional context and only should be used by those who are doing simple tests or who are studying python and using this as a tutorial.

3. A More Dependable Way to Extract Skills from a Resume Using Python

Professional organisations prize accuracy from their Resume Parser.

So, if you need a higher level of accuracy, you'll want to go with an off the-shelf solution built by artificial intelligence and information extraction experts.

(The alternative is to hire your own dev team and spend 2 years working on it, but good luck with that. Building a high quality resume parser that covers most edge cases is not easy.)

Looking to build your own resume parser for a professional use case? We wish you luck, because you're probably going to need it.

If using python, java, typescript, or csharp, Affinda has a ready-to-go python library for interacting with their service.  For example with python, install with:

You can parse your first resume as follows:

Built on advances in deep learning, Affinda's machine learning model is able to accurately parse almost any field in a resume.

What is more, it can find these fields even when they're disguised under creative rubrics or on a different spot in the resume than your standard CV.

Affinda's python package is complete and ready for action, so integrating it with an applicant tracking system is a piece of cake. However, there are other Affinda libraries on GitHub other than python that you can use.

You don't need to be a data scientist or experienced python developer to get this up and running-- the team at Affinda has made it accessible for everyone. Full directions are available here, and you can sign up for the API key here.

Not sure if you're ready to spend money on data extraction? Affinda's web service is free to use, any day you'd like to use it, and you can also contact the team for a free trial of the API key. There's nothing holding you back from parsing that resume data-- give it a try today!

Share this post

The world’s most accurate resume and job description parser.

Try the most accurate resume parser on the market. Using the latest AI technology, you can extract over 100 fields per resume with unmatched accuracy.

Affinda's Resume Parser wins against competition in blind tests over and over again.

Transform piles of job descriptions into organized data you can actually search and use to find the best candidates.

Job Description Parser uses the same technology as the Resume Parser, which means the accuracy and speed are unmatched.

Make the most of the rich data extracted from resumes and jobs:

- Find the best candidates
- Find the best jobs for candidates
- Score candidates based on compatibility
- Discover similar database candidates

Take the bias out of resumes and promote fair candidate selection to make your recruitment process best in class by using Affinda’s Resume Redactor.