ATS-buddy GitHub Details, Stars and Alternatives | OpenRepoFinder
WilliamGTa / repository
ATS-buddy
ATS Buddy is a production-ready, serverless AI resume analyzer built on AWS Bedrock. It intelligently compares resumes against job descriptions, providing compatibility scores, missing keyword detection, and AI-powered resume enhancements—all while ensuring enterprise-grade PII protection and cost-efficient auto-scaling.
A transparent discovery signal based on current public GitHub metadata.
Recent activity35% weight
100
Community adoption25% weight
20
Maintenance state20% weight
100
License clarity10% weight
100
Project information10% weight
75
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
README preview
🎯 ATS Buddy - Enterprise AI Resume Analyzer
A production-ready, serverless AWS application that leverages cutting-edge AI to analyze resumes against job descriptions with enterprise-grade PII protection.
� What Makes This Special
🧠 Real AI Power - Amazon Bedrock Nova Lite for intelligent analysis
🔒 Enterprise Security - Amazon Comprehend PII redaction
⚡ Serverless Scale - Auto-scaling AWS Lambda architecture
🏗️ Well-Architected - Follows AWS best practices for all 5 pillars
💰 Cost Optimized - Pay-per-use with smart caching (~$2/1000 analyses)
🚀 Production Ready - Complete CI/CD, monitoring, and error handling
🌐 Live Demo
🎮 Try it now: Secure CloudFront URL (no account ID exposed)
Demo Features:
✅ Drag & Drop PDF Upload - Intuitive resume upload
✅ Real-time AI Analysis - 15-30 second processing
✅ PII Protection - Automatic sensitive data redaction
ATS Buddy is a production-ready, serverless AI resume analyzer built on AWS Bedrock (Nova Lite). It intelligently compares resumes against job descriptions, providing compatibility scores, missing keyword detection, and AI-powered resume enhancements—all while ensuring enterprise-grade PII protection and cost-efficient auto-scaling.
✅ Full-page Modal - Professional resume review interface with edit/copy/download
✅ Deduplication - Smart caching to avoid reprocessing same files
✅ Mobile Responsive - Works on all devices
How to Use:
Upload Resume - Drag & drop or select a PDF resume
Enter Job Description - Paste the target job description (min 100 characters)
Analyze - Get compatibility score, missing keywords, and suggestions
Generate Enhanced Resume - Create an optimized version with AI improvements
Download Reports - Get HTML and Markdown analysis reports
Overview
ATS Buddy helps job candidates optimize their resumes by:
Extracting text from PDF resumes using AWS Textract
Analyzing resume vs job description using Amazon Bedrock Nova Lite
Generating enhanced resumes with missing keywords and improvements
Providing professional web interface for easy use
Generating professional reports with specific improvement recommendations
Providing secure download links for analysis results
Architecture
🏗️ System Architecture Diagram
graph TB
%% User Interface Layer
User[👤 User] --> WebUI[🌐 Web UI<br/>S3 Static Website]
WebUI --> API[🚪 API Gateway<br/>REST API]
%% Core Processing Layer
API --> Lambda[⚡ Lambda Function<br/>ats-buddy-processor]
Lambda --> S3Resume[📁 S3 Bucket<br/>Resume Storage]
Lambda --> Cache[💾 DynamoDB<br/>Resume Cache]
%% AI Processing Pipeline
S3Resume --> Textract[📄 AWS Textract<br/>PDF Text Extraction]
Textract --> PII[🔒 Amazon Comprehend<br/>PII Detection & Redaction]
PII --> Bedrock[🧠 Amazon Bedrock<br/>Nova Lite AI Analysis]
%% Output Generation
Bedrock --> Reports[📊 Report Generator<br/>HTML & Markdown]
Reports --> S3Reports[📁 S3 Bucket<br/>Report Storage]
S3Reports --> Presigned[🔗 Presigned URLs<br/>Secure Downloads]
%% Monitoring & Logging
Lambda --> CloudWatch[📈 CloudWatch<br/>Logs & Monitoring]
%% Styling
classDef userLayer fill:#e1f5fe,stroke:#01579b,stroke-width:2px
classDef apiLayer fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef processLayer fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
classDef aiLayer fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef storageLayer fill:#fce4ec,stroke:#880e4f,stroke-width:2px
classDef monitorLayer fill:#f1f8e9,stroke:#33691e,stroke-width:2px
class User,WebUI userLayer
class API apiLayer
class Lambda,Cache processLayer
class Textract,PII,Bedrock aiLayer
class S3Resume,Reports,S3Reports,Presigned storageLayer
class CloudWatch monitorLayer
🔒 PII Protection Pipeline
sequenceDiagram
participant U as 👤 User
participant W as 🌐 Web UI
participant A as 🚪 API Gateway
participant L as ⚡ Lambda
participant S as 📁 S3
participant T as 📄 Textract
participant P as 🔒 Comprehend
participant B as 🧠 Bedrock
participant R as 📊 Reports
U->>W: Upload PDF Resume
W->>A: POST /analyze
A->>L: Process Request
L->>S: Store PDF
L->>T: Extract Text
T-->>L: Raw Text (with PII)
L->>P: Detect & Redact PII
P-->>L: Redacted Text
L->>B: AI Analysis
B-->>L: Analysis Results
L->>R: Generate Reports
R->>S: Store Reports
L-->>A: Analysis Complete
A-->>W: Results + Download URLs
W-->>U: Protected Analysis
🏛️ AWS Services Integration
Frontend: CloudFront CDN + Private S3 (secure, no account ID exposure)
API Layer: API Gateway with CORS (AWS managed multi-AZ)
Compute: AWS Lambda with auto-scaling (cross-AZ distribution)
AI/ML: Textract + Comprehend + Bedrock Nova Lite (regional multi-AZ)
Storage: S3 with auto multi-AZ replication + DynamoDB with cross-AZ distribution
Security: IAM roles, encryption, PII redaction, HTTPS enforcement
🏢 Multi-AZ Architecture: This application leverages AWS managed services that automatically provide multi-AZ redundancy (S3, DynamoDB, Lambda, API Gateway) without requiring explicit VPC configuration. This approach delivers enterprise-grade availability while maintaining serverless simplicity and cost efficiency.
🚀 Key Features
🤖 AI-Powered Analysis
✅ Amazon Bedrock Nova Lite - Latest generative AI for resume analysis
✅ Smart Keyword Detection - Identifies missing skills and technologies
✅ Compatibility Scoring - Quantified 0-100% job match rating
✅ Actionable Insights - Specific improvement recommendations
🔒 Enterprise Security
✅ PII Protection - Amazon Comprehend automatic redaction
✅ Secure Processing - No permanent storage of sensitive data
✅ Encrypted Storage - S3 server-side encryption
✅ Access Control - IAM roles and presigned URLs
⚡ Performance & Scale
✅ Serverless Architecture - Auto-scaling AWS Lambda
✅ Smart Caching - DynamoDB deduplication system
✅ Cost Optimization - Pay-per-use with auto-cleanup
✅ Sub-30s Processing - Fast analysis pipeline
🎨 User Experience
✅ Responsive Web UI - Works on all devices
✅ Drag & Drop Upload - Intuitive file handling
✅ Real-time Progress - Live processing updates
✅ Professional Reports - HTML and Markdown formats
Main Entry Point
src/handler.py - Contains the lambda_handler() function that orchestrates the complete pipeline:
This is the actual Lambda function that runs in AWS
Validates input events and routes to appropriate processing functions
Integrates all components (Textract, Bedrock, S3, Reports)
Returns standardized Lambda responses
Other Important Files:
scripts/validate_system.py - Validation script that tests components work with real AWS
samples/ - Test data for trying the system locally
Project Structure
ats-buddy/
├── src/ # Core application code
│ ├── bedrock_client.py # AI analysis using Bedrock Nova Lite
│ ├── report_generator.py # Professional report generation
│ ├── s3_handler.py # S3 operations and file management
│ ├── textract_client.py # PDF text extraction
│ ├── handler.py # Main Lambda orchestration
│ └── requirements.txt # Python dependencies
├── tests/ # Focused test suite
│ ├── test_bedrock_analysis.py # Tests bedrock_client.py
│ ├── test_report_simple.py # Tests report_generator.py
│ ├── test_s3_handler.py # Tests s3_handler.py
│ ├── test_textract_integration.py # Tests textract_client.py
│ └── test_handler_*.py # Tests handler.py (main entry point)
├── infra/ # AWS deployment
│ ├── template.yaml # SAM infrastructure template
│ └── DEPLOYMENT_GUIDE.md # Deployment instructions
├── samples/ # Test data
│ ├── resumes/ # Sample resume files
│ └── job_descriptions/ # Sample job descriptions
├── scripts/ # Utility and test scripts
│ ├── validate_system.py # System validation script
│ ├── quick_test.py # Easy test script for Windows/Mac/Linux
│ ├── get_bucket_names.py # Helper to get S3 bucket names after deployment
│ └── check_inference_profiles.py # Check Bedrock model availability
├── docs/ # Documentation and examples
│ ├── sample_ai_analysis.md # Example AI analysis output
│ ├── sample_report.html # Example HTML report output
│ ├── sample_resume.pdf # Sample PDF for testing
│ └── edge_cases_and_limitations.md # Production considerations
├── temp/ # Temporary test files
└── .env.example # Environment variables template
Quick Start
Prerequisites
AWS CLI configured with Bedrock access
Python 3.9+ with pip
SAM CLI (for deployment)
Development Setup
# Clone and setup
git clone https://github.com/WilliamGTa/ATS-buddy.git
cd ats-buddy
# Setup Python 3.13 virtual environment (required for SAM compatibility)
py -3.13 -m venv .venv # Windows
# python3.13 -m venv .venv # Mac/Linux
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Mac/Linux
# Install dependencies
pip install -r requirements-dev.txt
# Setup environment variables for local testing
cp .env.example .env
# Edit .env with your actual AWS resource names (see Environment Variables section below)
Environment Variables
The application requires these environment variables (automatically set in AWS Lambda):
# Get all resource names from CloudFormation
aws cloudformation describe-stacks --stack-name ats-buddy-dev --query 'Stacks[0].Outputs'
# Or get specific values
aws cloudformation describe-stacks --stack-name ats-buddy-dev --query 'Stacks[0].Outputs[?OutputKey==`ResumesBucketName`].OutputValue' --output text
Testing
# Run focused unit tests (no AWS resources needed)
python -m pytest tests/ -v
# Test end-to-end workflow (requires AWS credentials)
python tests/test_end_to_end.py
# Check Bedrock model availability
python scripts/check_inference_profiles.py
# Test complete system with real AWS resources (requires deployment)
python scripts/validate_sy