Skip to main content

Add invisible ATS-friendly keywords to PDF resumes

Project description

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 scratchjust 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 samefonts, 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

  • P 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 with d for job seekers everywhere

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resume_keyword_injector-1.0.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

resume_keyword_injector-1.0.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file resume_keyword_injector-1.0.0.tar.gz.

File metadata

  • Download URL: resume_keyword_injector-1.0.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for resume_keyword_injector-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cea052ae50275dbaf6a557c254ca61e909ceba144a0209ac27244895e10a07ae
MD5 e9b727ef06fab73b28b6497afe8ce436
BLAKE2b-256 fe76915b27a847b17ef6095b61483060d295376cce74dfb439c35c38e3bc7d8a

See more details on using hashes here.

File details

Details for the file resume_keyword_injector-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for resume_keyword_injector-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce6dfd20b6293dd5ee3dd616da3b3d1caa1997f7d186125d11eaeed064cb385d
MD5 dcdb5b5bec9a6c657ccd1323a89f8033
BLAKE2b-256 b2f3c167748305320fcd7af9a6f941e6c02e7e3ca65a3baac2d6c13d43e0a04c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page