The Palos Publishing Company

Follow Us On The X Platform @PalosPublishing
Categories We Write About

Create a resume tailoring tool using Python

Here is a simple yet effective Resume Tailoring Tool built with Python. This tool allows users to input a job description and their resume text, then it matches keywords from the job description with the resume and highlights missing or underrepresented skills and keywords, helping users tailor their resume accordingly.

python
import re from collections import Counter from sklearn.feature_extraction.text import CountVectorizer from difflib import SequenceMatcher def clean_text(text): # Lowercase, remove special characters text = text.lower() text = re.sub(r'[^a-zs]', '', text) return text def extract_keywords(text, top_n=30): text = clean_text(text) vectorizer = CountVectorizer(stop_words='english') X = vectorizer.fit_transform([text]) word_counts = zip(vectorizer.get_feature_names_out(), X.toarray()[0]) sorted_words = sorted(word_counts, key=lambda x: x[1], reverse=True) return [word for word, count in sorted_words[:top_n]] def similarity(a, b): return SequenceMatcher(None, a, b).ratio() def match_keywords(job_keywords, resume_text): resume_keywords = extract_keywords(resume_text, top_n=100) matched = [] missing = [] for job_kw in job_keywords: found = False for res_kw in resume_keywords: if similarity(job_kw, res_kw) > 0.8: matched.append(job_kw) found = True break if not found: missing.append(job_kw) return matched, missing def main(): print("==== Resume Tailoring Tool ====") job_description = input("Paste the job description:n") resume_text = input("nPaste your resume text:n") print("nAnalyzing...n") job_keywords = extract_keywords(job_description, top_n=30) matched, missing = match_keywords(job_keywords, resume_text) print(f"nTop Job Keywords ({len(job_keywords)}):") print(", ".join(job_keywords)) print(f"nMatched Keywords ({len(matched)}):") print(", ".join(matched)) print(f"nMissing Keywords ({len(missing)}):") print(", ".join(missing)) if missing: print("nConsider incorporating the missing keywords where appropriate to tailor your resume to the job.") if __name__ == "__main__": main()

Features:

  • Keyword extraction using CountVectorizer from scikit-learn.

  • Similarity check using difflib for approximate keyword matching.

  • Identifies missing job keywords in the resume text.

Requirements:

Install required Python libraries:

bash
pip install scikit-learn

Enhancements You Can Add:

  • Use spacy for smarter NLP-based keyword extraction.

  • GUI using tkinter or streamlit.

  • Save results to a file or show keyword suggestions with example phrases.

Let me know if you’d like a version with a GUI or tailored for uploading documents.

Share this Page your favorite way: Click any app below to share.

Enter your email below to join The Palos Publishing Company Email List

We respect your email privacy

Categories We Write About