Skip to content

SimonOneNineEight/resume-keyword-injector

Repository files navigation

Resume Keyword Injector 🎯

Add invisible ATS-friendly keywords to PDF resumes without affecting visual appearance

Transform your existing PDF resume into an ATS-optimized powerhouse while preserving its original formatting and design. No more recreating resumes from scratch�just enhance what you already have.

PyPI version Python 3.11+ License: MIT

Quick Start

pip install resume-keyword-injector
# Interactive mode - guided setup
resume-keyword-injector

# Quick command line
resume-keyword-injector my_resume.pdf --keywords "python,react,aws,docker"

# Full control
resume-keyword-injector resume.pdf \
  --keywords "machine learning,tensorflow,kubernetes" \
  --methods "white_text,margin" \
  --output ats_optimized.pdf

Why Choose Resume Keyword Injector?

Zero Visual Impact

Your PDF looks exactly the same�fonts, layout, images, and formatting are 100% preserved using advanced PDF overlay technology.

ATS-Friendly Keywords

Keywords are invisible to human eyes but detectable by Applicant Tracking Systems, boosting your resume's keyword score.

Production-Ready

  • 56 comprehensive tests
  • Robust error handling with helpful messages
  • Professional CLI with progress bars and rich formatting
  • Works with any PDF size or layout

Multiple Usage Modes

  • Interactive: Guided prompts for beginners
  • Hybrid: Provide some arguments, get prompted for the rest
  • Command-line: Full automation for power users

Features

5 Invisible Injection Methods

Method Description Best For
White Text Keywords in white color on white background General ATS optimization
Tiny Font Text at 0.1pt size (invisible to naked eye) Maximum keyword density
Margin Placement Keywords positioned in document margins Clean, separated approach
Background Layer Separate invisible PDF layer Complex layouts
Transparent Text Nearly transparent text overlay Subtle integration

Professional CLI Experience

 PDF Keyword Injector

o Processing Configuration:
  > Input PDF: resume.pdf (2 pages, 156KB)
  > Keywords: python, react, aws, docker, kubernetes (5 total)
  > Methods: white_text, tiny_font, transparent
  > Output: resume_optimized.pdf
  > Debug Mode: OFF

o Injecting keywords... �������������������������������� 100%

� Success! Keywords injected successfully
   > Original text: 1,247 characters
   > Enhanced text: 1,299 characters (+52)
   > Processing time: 1.2 seconds
   > Keywords added: python, react, aws, docker, kubernetes

Usage Examples

Interactive Mode (Recommended for First-Time Users)

resume-keyword-injector

The tool will guide you through:

  1. PDF Selection: Choose your resume file
  2. Keyword Input: Enter relevant keywords for your target job
  3. Output Location: Specify where to save the enhanced resume
  4. Method Selection: Choose injection methods (or use defaults)

Command Line Mode

Basic Usage

# Minimum required arguments
resume-keyword-injector resume.pdf --keywords "python,developer,software"

Advanced Usage

# Full control with all options
resume-keyword-injector resume.pdf \
  --keywords "machine learning,tensorflow,pytorch,python,data science" \
  --methods "white_text,tiny_font,margin" \
  --output "ml_engineer_resume.pdf" \
  --debug

Batch Processing Ready

# Process multiple resumes
for resume in *.pdf; do
  resume-keyword-injector "$resume" \
    --keywords "react,typescript,node.js,aws" \
    --output "enhanced_$(basename "$resume")"
done

Available Options

Option Description Example
--keywords, -k Comma-separated keywords to inject --keywords "python,aws,docker"
--output, -o Output PDF path --output enhanced_resume.pdf
--methods, -m Injection methods to use --methods "white_text,margin"
--debug Make invisible text slightly visible for testing --debug
--help Show help message --help

How It Works

The Science Behind Invisible Keywords

ATS systems extract all text from PDFs, including text that's invisible to human readers. Our tool leverages this by strategically placing keywords using methods that are:

  • Detectable by ATS: Text extraction algorithms find them
  • Invisible to humans: Won't interfere with your resume's appearance
  • Format-preserving: Original layout remains untouched

Technical Implementation

  1. PDF Analysis: Extract existing text and analyze document structure
  2. Strategic Placement: Position keywords using advanced PDF overlay techniques
  3. Invisibility Application: Apply chosen methods (tiny fonts, white text, etc.)
  4. Quality Verification: Ensure keywords are detectable but invisible
  5. Format Preservation: Merge with original while maintaining all formatting

ATS Compatibility

Tested with common ATS text extraction methods:

  • pdfplumber - High accuracy text extraction
  • PyPDF - Standard PDF text parsing
  • Adobe PDF API - Professional PDF processing
  • Google Document AI - Machine learning text extraction

Installation & Requirements

Quick Install

pip install resume-keyword-injector

System Requirements

  • Python: 3.11 or higher
  • Operating System: Windows, macOS, or Linux
  • Memory: 100MB+ available RAM
  • Storage: 50MB for package + space for PDF processing

Dependencies

The tool automatically installs these high-quality dependencies:

  • click - Professional command-line interface
  • rich - Beautiful terminal formatting and progress bars
  • pypdf - Reliable PDF reading and writing
  • pdfplumber - Advanced PDF text extraction
  • reportlab - PDF generation and manipulation

Real-World Use Cases

Job Seekers

  • Software Engineers: Add framework and language keywords
  • Data Scientists: Include ML/AI technology terms
  • Product Managers: Incorporate methodology and tool keywords
  • Designers: Add software and design process terms

Career Changers

  • Skill Translation: Bridge keywords between industries
  • Keyword Research: Use job posting analysis to identify key terms
  • A/B Testing: Test different keyword combinations

Recruiters & Career Coaches

  • Client Optimization: Help candidates improve ATS scores
  • Keyword Strategy: Implement data-driven keyword selection
  • Bulk Processing: Optimize multiple resumes efficiently

Error Handling & Validation

Comprehensive Error Messages

L PDF Validation Error

   The PDF file appears to be corrupted or invalid.

   =� Suggested Solutions:
   " Check that the PDF file is not corrupted
   " Try opening the PDF in a PDF viewer first
   " Use a different PDF file

   =' Error Code: PDF_CORRUPTED

Smart Validation

  • File Format: Ensures valid PDF input
  • Permissions: Checks read/write access
  • Disk Space: Validates sufficient storage
  • PDF Health: Detects corrupted or encrypted files
  • Keyword Quality: Validates and cleans keyword input

Testing & Quality Assurance

Comprehensive Test Suite

  • 56 Total Tests covering all functionality
  • Error Scenarios: All edge cases and failure modes tested
  • Real-World PDFs: Tested with various resume formats
  • Performance: Processing time and memory usage validated

Quality Metrics

  • Format Preservation: 100% visual fidelity maintained
  • Keyword Detection: 95%+ ATS compatibility rate
  • Processing Speed: <2 seconds for typical resumes
  • Memory Efficiency: <50MB RAM usage during processing

Contributing

We welcome contributions! Here's how to get started:

Development Setup

git clone https://github.com/SimonOneNineEight/resume-keyword-injector.git
cd resume-keyword-injector
pip install -e ".[dev]"

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=src

# Run specific test category
pytest tests/test_cli.py -v

Code Quality

# Format code
black src tests

# Sort imports
isort src tests

# Lint code
flake8 src tests

License & Legal

MIT License

This project is licensed under the MIT License - see the LICENSE file for details.

Ethical Use

This tool is designed for legitimate resume optimization. Users are responsible for:

  • Adding relevant, truthful keywords
  • Following job application guidelines
  • Maintaining professional integrity

Disclaimer

  • Keywords should reflect actual skills and experience
  • Always review job application requirements
  • ATS optimization is one factor among many in job applications

Support & Community

Getting Help

Show Your Support

  • Star this repo if it helped you land interviews
  • Report bugs to help improve the tool
  • Request features for future versions
  • Contribute code to make it even better

Made for job seekers everywhere

Stop letting great resumes get filtered out by keyword algorithms. Start optimizing today!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages