Sitemap
AI Mind

Learn, explore, or build the future of AI with top stories on the latest trends, tools, and technology. Share your crazy success stories or AI-fueled fails in a supportive community.

I Built a Resume Parser with ChatGPT, Python, and Zero Experience in NLP

4 min readJul 11, 2025

--

Press enter or click to view image in full size
Photo by Mr. Bochelly on Unsplash

I’m not a Natural Language Processing (NLP) expert.

In fact, before this project, I barely knew what tokenization or entity recognition meant.

But thanks to Python, some clever Googling, and ChatGPT acting like my 24/7 coding buddy, I managed to build a functional resume parser in just a couple of days.

Here’s how it happened — what I built, how I built it, and why you can (and should) build it too.

Press enter or click to view image in full size
Photo by Mohammad Rahmani on Unsplash

💡 The Idea

I was applying for internships and realized: every resume is different, and recruiters don’t have time to manually extract skills, experience, education, etc.

Wouldn’t it be cool to build a Python script that could read a PDF resume and extract the key info in seconds?

That’s what I set out to do.

🔧 Tools I Used

  • Python
  • PyMuPDF (fitz) — to extract text from PDF
  • spaCy — for basic NLP tasks
  • ChatGPT — for guidance, code explanations, and quick fixes
  • re (regex) — to match patterns like email, phone numbers
  • Streamlit (optional) — to make it a simple web app
Press enter or click to view image in full size
Photo by AltumCode on Unsplash

🛠️ Step-by-Step Breakdown

1. Extract Text from PDF

import fitz  # PyMuPDF

def extract_text_from_pdf(pdf_path):
doc = fitz.open(pdf_path)
text = ""
for page in doc:
text += page.get_text()
return text

ChatGPT helped me tweak this to handle multi-page resumes too.

2. Extract Name, Email, Phone

import re

def extract_email(text):
email = re.findall(r'\S+@\S+', text)
return email[0] if email else None

def extract_phone(text):
phone = re.findall(r'\+?\d[\d\s.-]{8,}\d', text)
return phone[0] if phone else None

Simple regex + GPT-powered pattern tweaks = good enough accuracy for most resumes.

Press enter or click to view image in full size
Photo by Christopher Gower on Unsplash

3. Extract Skills (Using spaCy + a Skills List)

import spacy

nlp = spacy.load("en_core_web_sm")
skills_list = ["python", "machine learning", "sql", "javascript", "react", "excel"]

def extract_skills(text):
text = text.lower()
return [skill for skill in skills_list if skill in text]

Later, I asked GPT to help me auto-expand this list using job descriptions. Game changer.

4. Bonus: Use ChatGPT to Extract Experience Sections

Here’s the fun part. I sent the raw PDF text to ChatGPT and asked:

“Can you extract the Experience section and turn it into structured data?”

And boom — it worked.

Get Rohansoni’s stories in your inbox

Join Medium for free to get updates from this writer.

ChatGPT gave me back a clean JSON-style summary:

{
"Company": "Google",
"Role": "Software Intern",
"Duration": "June 2023 - August 2023",
"Description": "Worked on backend optimization for internal APIs"
}

Yes, seriously.

Press enter or click to view image in full size
Photo by Brett Jordan on Unsplash

🚀 What I Learned

  • Regex is your best friend (and sometimes your worst enemy).
  • ChatGPT can debug, explain, and improve your code on the fly.
  • You don’t need to be an NLP expert to start using NLP.

🎁 Bonus: Make It a Web App with Streamlit

import streamlit as st

uploaded_file = st.file_uploader("Upload Resume PDF")
if uploaded_file:
text = extract_text_from_pdf(uploaded_file)
st.write("Email:", extract_email(text))
st.write("Phone:", extract_phone(text))
st.write("Skills:", extract_skills(text))

Now it’s shareable with friends, recruiters, or even as a portfolio project.

Press enter or click to view image in full size
Photo by Patrick Amoy on Unsplash

🧠 Final Thoughts

Was it perfect? No. Was it fun and surprisingly powerful? Absolutely.

Building this resume parser taught me that you don’t need to be a guru to build useful tools. You just need:

  • Curiosity
  • A goal
  • And maybe a little help from ChatGPT

If you’re learning NLP, try this project. It’s beginner-friendly, resume-worthy, and genuinely helpful.

And if you want the full code, drop a comment 📈

A Message from AI Mind

Thanks for being a part of our community! Before you go:

--

--

Rohansoni
Rohansoni

Written by Rohansoni

Former Software Engineer Intern @ Quadrafort Technologies | Bachelor of Technology CSE'26 | Exploring Data Science & Machine Learning

AI Mind
AI Mind

Published in AI Mind

Learn, explore, or build the future of AI with top stories on the latest trends, tools, and technology. Share your crazy success stories or AI-fueled fails in a supportive community.