The Palos Publishing Company

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

Create a resume keyword scanner

Here is a simple Resume Keyword Scanner implemented in Python. This tool takes a resume (as plain text) and compares it to a set of job-related keywords, returning how many keywords match and highlighting the matched ones.

python
import re from collections import Counter def scan_resume_keywords(resume_text, keyword_list): """ Scans resume text for matching keywords and returns a report. Args: resume_text (str): The plain text of the resume. keyword_list (list): A list of job-related keywords to search for. Returns: dict: A dictionary with matched keywords and counts. """ # Normalize text to lowercase for case-insensitive matching resume_text_lower = resume_text.lower() keyword_matches = [] for keyword in keyword_list: # Allow for full word matches, ignoring case if re.search(rf'b{re.escape(keyword.lower())}b', resume_text_lower): keyword_matches.append(keyword.lower()) match_counts = Counter(keyword_matches) total_keywords = len(keyword_list) matched_keywords = len(match_counts) return { 'matched_keywords': match_counts, 'total_matched': matched_keywords, 'total_keywords': total_keywords, 'match_percentage': round((matched_keywords / total_keywords) * 100, 2) } # Example usage if __name__ == "__main__": resume_text = """ Experienced software engineer skilled in Python, JavaScript, and AWS. Expertise in machine learning, data analysis, and cloud computing. Proven track record of deploying scalable applications and REST APIs. """ keyword_list = [ "Python", "Java", "AWS", "Machine Learning", "Django", "REST APIs", "Agile", "Scrum", "Data Analysis", "Cloud Computing" ] results = scan_resume_keywords(resume_text, keyword_list) print("Matched Keywords and Counts:") for keyword, count in results['matched_keywords'].items(): print(f"{keyword}: {count}") print(f"nTotal Keywords: {results['total_keywords']}") print(f"Total Matched: {results['total_matched']}") print(f"Match Percentage: {results['match_percentage']}%")

Features:

  • Case-insensitive full word matching.

  • Calculates total matches and match percentage.

  • Easy to adapt with GUI or web interface for uploading resumes and keyword input.

Would you like a web-based version using Flask or React next?

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