Skip to content

anonengine/Test

Repository files navigation

Resume Keyword Optimizer

A Python-based tool that optimizes your resume by analyzing job descriptions and suggesting keyword improvements to enhance ATS (Applicant Tracking System) compatibility.

Features

  • Keyword Extraction: Automatically extracts important keywords and phrases from job descriptions
  • Gap Analysis: Identifies missing keywords that should be added to your resume
  • Smart Replacement: Suggests word replacements to better match job requirements
  • Frequency Analysis: Shows which terms appear most often in job descriptions
  • ATS Optimization: Helps your resume pass automated screening systems
  • Easy CLI Interface: Simple command-line interface for quick analysis

How It Works

  1. Load Your Resume: Provide your baseline resume as a text file
  2. Input Job Description: Copy and paste or provide a job description file
  3. Analyze: The tool extracts keywords, identifies gaps, and suggests improvements
  4. Optimize: Generate an optimized version with automatic keyword replacements
  5. Review: Get a detailed analysis report of the changes

Installation

Requirements

  • Python 3.7 or higher
  • No external dependencies required (uses Python standard library)

Setup

  1. Clone this repository:
git clone <repository-url>
cd Test
  1. (Optional) Create a virtual environment:
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. The tool is ready to use - no pip install needed!

Usage

Quick Start

  1. Prepare your resume: Create a text file with your resume content (or use the provided baseline_resume.txt)

  2. Get a job description: Copy a job posting to a text file (or use the provided job_description.txt)

  3. Run the optimizer:

python3 resume_optimizer.py
  1. Follow the prompts:
    • Enter the path to your resume file
    • Enter the path to the job description file
    • Review the analysis
    • Choose to save analysis or generate optimized resume

Example Session

$ python3 resume_optimizer.py

======================================================================
        RESUME KEYWORD OPTIMIZER
======================================================================

This tool optimizes your resume by analyzing job descriptions
and suggesting keyword improvements for better ATS compatibility.

Step 1: Load your baseline resume
----------------------------------------------------------------------
Enter path to your resume file (or press Enter for example): baseline_resume.txt
✓ Loaded resume (1450 characters)

Step 2: Provide job description
----------------------------------------------------------------------
Enter path to job description file (or press Enter for example): job_description.txt
✓ Loaded job description (2100 characters)

Step 3: Analyzing and optimizing...
----------------------------------------------------------------------

======================================================================
RESUME OPTIMIZATION ANALYSIS
======================================================================

📊 TOP KEYWORDS FROM JOB DESCRIPTION:
----------------------------------------------------------------------
 1. react                (appears 4x)
 2. experience            (appears 12x)
 3. docker                (appears 3x)
 4. typescript            (appears 3x)
...

💡 SUGGESTED REPLACEMENTS:
----------------------------------------------------------------------
  'frameworks''React', 'Node.js'
  'databases''PostgreSQL', 'MySQL'
...

Output Files

The tool can generate:

  • resume_analysis.txt: Detailed analysis of keywords and gaps
  • optimized_resume.txt: Your resume with automatic keyword replacements

How the Algorithm Works

1. Keyword Extraction

  • Extracts all words from the job description
  • Filters out common stop words (the, and, or, etc.)
  • Counts frequency of each keyword
  • Prioritizes technical terms and skills

2. Phrase Detection

  • Identifies 2-word and 3-word phrases
  • Finds commonly repeated technical phrases
  • Highlights multi-word skills (e.g., "machine learning")

3. Gap Analysis

  • Compares job description keywords with resume content
  • Lists important missing keywords
  • Ranks keywords by frequency and importance

4. Smart Replacement

  • Finds similar words in your resume
  • Suggests specific replacements from job description
  • Preserves original case and formatting
  • Only suggests relevant technical replacements

Customization

Modifying Stop Words

Edit the STOP_WORDS set in resume_optimizer.py:

STOP_WORDS = {
    'a', 'an', 'and', 'are', 'as', 'at', ...
    # Add your own stop words here
}

Adjusting Keyword Count

Change the top_n parameter when calling methods:

keywords = optimizer.extract_keywords(job_description, top_n=30)  # Get top 30 instead of 20

Technical Term Boosting

Modify TECHNICAL_INDICATORS to prioritize specific terms:

TECHNICAL_INDICATORS = {
    'python', 'react', 'aws', 'kubernetes',
    # Add terms specific to your industry
}

Advanced Usage

Programmatic Use

You can import and use the optimizer in your own scripts:

from resume_optimizer import ResumeOptimizer

# Initialize with resume
with open('my_resume.txt', 'r') as f:
    resume = f.read()

optimizer = ResumeOptimizer(resume)

# Load job description
with open('job_posting.txt', 'r') as f:
    job_desc = f.read()

# Get optimized resume and analysis
optimized, analysis = optimizer.optimize_resume(job_desc, auto_replace=True)

# Access specific analysis data
print(f"Top keywords: {analysis['top_keywords']}")
print(f"Missing keywords: {analysis['missing_keywords']}")

Best Practices

  1. Keep Your Baseline Clean: Start with a well-formatted resume
  2. Use Complete Job Descriptions: More text = better keyword extraction
  3. Review Before Applying: Always review auto-replacements manually
  4. Maintain Honesty: Only add keywords for skills you actually have
  5. Context Matters: Ensure replacements make sense in context
  6. Multiple Passes: Run the tool for each job application

Limitations

  • Works best with text-based resumes (not PDFs with complex formatting)
  • Keyword matching is basic - doesn't understand deep semantics
  • Auto-replacement is conservative to avoid breaking resume flow
  • Requires manual review to ensure accuracy and honesty

Future Enhancements

Potential improvements:

  • PDF resume parsing
  • Advanced NLP with spaCy or NLTK
  • Synonym detection and replacement
  • ML-based keyword importance scoring
  • Web interface
  • Integration with job boards
  • Resume scoring system
  • Multiple resume version management

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.

License

MIT License - feel free to use and modify for your needs.

Disclaimer

This tool is meant to help optimize your resume for ATS systems. Always:

  • Review all changes before submitting your resume
  • Only include keywords for skills you actually possess
  • Maintain honesty and accuracy in your resume
  • Customize your resume for each specific job application

Support

For issues or questions:

  1. Check existing issues in the repository
  2. Create a new issue with detailed description
  3. Include sample input/output if relevant

Happy job hunting! 🎯

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages