You Had One Job, Resume!

Day 20 of 100 Days Coding Challenge: Python

Do you know what an ATS resume keyword checker is? About 15 years ago, I had a chat with a friend in HR who casually dropped the term “Applicant Tracking System,” or ATS, as if it were common knowledge. I nodded like I totally knew what she meant, but inside I was thinking, “Ah, yes, the mythical software that eats resumes for breakfast.” She explained that ATS was used to sort through the avalanche of job applications—often over a thousand per listing. But here’s the kicker: the system also had a habit of rejecting the best candidates because they didn’t use the “right” words. The irony stuck with me.

So today, I decided to take matters into my own hands and see if I could make a mini version of this digital gatekeeper, ATS resume keyword checker. Because if robots are going to judge us, we may as well peek under their hood.

Today’s Motivation / Challenge


We’ve all seen those job listings with 50 “required” skills. And let’s be honest—some of them are just buzzword soup. Today’s challenge was about building a tool to fight back. The goal: create a little program that reads your resume and checks it against keywords from a job description. It’s like prepping for a job interview with a cheat sheet—except you built the cheat sheet yourself.

Purpose of the Code (Object)


This code scans your resume and tells you how well it matches a job posting based on keywords. It’s not reading your experience like a recruiter—it’s just playing word bingo. If you mention “Excel,” and the job wants “Excel,” that’s a point for you. The higher the match score, the more likely you are to pass the digital bouncer at the job club door.

AI Prompt: 

 Build a Streamlit app that uploads a resume (.txt or .pdf), compares it against comma-separated keywords, shows which ones are matched and which are missing, and calculates a match score.

Functions & Features

  • Uploads resume in .txt or .pdf format
  • Accepts comma-separated job keywords
  • Checks which keywords are present in the resume
  • Calculates a match score (%)
  • Displays found and missing keywords in separate lists

Requirements / Setup


Install these before running:

bash

CopyEdit

pip install streamlit PyPDF2

Then run the app using:

bash

CopyEdit

streamlit run your_script.py

Minimal Code Sample

python

CopyEdit

def check_keywords(text, keywords):

    found = [kw for kw in keywords if kw.lower() in text.lower()]

    missing = [kw for kw in keywords if kw.lower() not in text.lower()]

    return found, missing

This function splits your keywords into found and missing by checking if they show up in the resume text.

Resume Checker App_GUI

Notes / Lessons Learned


The programming part was smooth. Honestly, I was feeling confident—until I tried to run my Streamlit app like a normal Python script. That’s when Streamlit wagged its finger at me: “Session state does not function when running a script without streamlit run.” Touché, Streamlit. Once I launched it the proper way, everything clicked. I tested the app with a job listing from Indeed and my own five-year-old resume. The result? A humble 50% match. Moral of the story: your resume may be a masterpiece, but if it doesn’t speak ATS language, it’s not getting past the door. Tailoring your resume for each job isn’t just good advice—it’s algorithmic survival.

Optional Ideas for Expansion

  • Add an option to upload a job description file and auto-extract keywords
  • Highlight matched keywords directly in the resume text
  • Export the results as a PDF or CSV for review

Leave a Reply

Your email address will not be published. Required fields are marked *