AI-Powered Resume Optimization for Claude Code
ATSFlow is a command-line tool and API server designed specifically for Claude Code integration. It provides AI-powered resume optimization, ATS analysis, job tailoring, and intelligent document generation—all accessible programmatically or via CLI commands.
Key Features:
- 🤖 AI Content Generation - Claude Sonnet 4 integration for summaries, cover letters, job descriptions
- 📊 ATS Analysis - 30+ compatibility checks with scoring and recommendations
- 🎯 Job Tailoring - One-command resume optimization for specific positions
- 📄 Document Parsing - Extract data from PDF/DOCX resumes
- 📤 Multi-Format Export - PDF, DOCX, TXT, JSON, HTML
- 📈 Industry Benchmarking - Skills gap analysis and career recommendations
- 🔄 Version Management - Track and compare resume versions
# Clone repository
git clone https://github.com/ry-ops/ATSFlow.git
cd ATSFlow
# Install dependencies
npm install
# Make CLI executable (Unix/Mac)
chmod +x cli.js# Show help
node cli.js help
# Generate AI content
node cli.js generate summary --input resume.json --tone professional
# Analyze resume for ATS
node cli.js analyze resume.pdf --output analysis.json
# Tailor resume to job
node cli.js tailor resume.json job-description.txt --output tailored.json
# Export to PDF
node cli.js export resume.json pdf --output resume.pdf
# Industry benchmarking
node cli.js benchmark resume.json --industry tech# Start server on port 3000
npm start
# API available at http://localhost:3000Generate AI-powered content using Claude Sonnet 4.
Types:
summary- Professional summary/objectiveexperience- Job description expansionskills- Skills assessment and recommendationscover-letter- Tailored cover letterheadline- LinkedIn-style headline
Options:
--input <file>- Input resume/data file (JSON)--output <file>- Output file path--tone <type>- Tone: professional, creative, technical (default: professional)--length <type>- Length: brief, standard, detailed (default: standard)
Examples:
# Generate professional summary
node cli.js generate summary --input resume.json --output summary.txt
# Generate cover letter
node cli.js generate cover-letter --input resume.json --tone professionalRun comprehensive ATS (Applicant Tracking System) analysis.
Analysis Includes:
- 30+ formatting and structure checks
- Keyword density analysis
- Readability scoring
- ATS compatibility rating (A+ to F)
- Prioritized recommendations
Options:
--output <file>- Output file for results--format <type>- Output format: json, text (default: json)--verbose- Detailed analysis output
Examples:
# Analyze resume
node cli.js analyze resume.pdf --output analysis.json
# Get detailed text report
node cli.js analyze resume.docx --format text --verboseSample Output:
{
"overall_score": 87,
"letter_grade": "A",
"categories": {
"ats_compatibility": 90,
"keyword_match": 85,
"content_quality": 88,
"formatting": 92,
"completeness": 80
},
"recommendations": [
{"priority": "high", "issue": "Add 3-5 more industry keywords"},
{"priority": "medium", "issue": "Quantify achievements with metrics"}
]
}Extract structured data from PDF or DOCX resumes.
Features:
- Automatic section detection (experience, education, skills, etc.)
- Contact information extraction
- Date parsing and formatting
- 87-90% accuracy rate
Options:
--output <file>- Output JSON file--format <type>- Output format: json, yaml (default: json)
Examples:
# Parse PDF resume
node cli.js parse resume.pdf --output extracted.json
# Parse DOCX resume
node cli.js parse resume.docxSample Output:
{
"contact": {
"name": "John Doe",
"email": "john@example.com",
"phone": "+1-555-0100"
},
"experience": [
{
"company": "Tech Corp",
"position": "Senior Engineer",
"start_date": "2020-01",
"end_date": "present",
"achievements": ["Led team of 5", "Reduced latency by 40%"]
}
],
"skills": ["Python", "AWS", "Docker"]
}Tailor resume to specific job description using AI analysis.
Process:
- Analyzes job description for keywords and requirements
- Scores current resume match (0-100%)
- Suggests specific changes to improve match
- Generates tailored version
Options:
--output <file>- Output tailored resume--auto-apply- Automatically apply all suggestions--diff- Show before/after comparison
Examples:
# Tailor resume
node cli.js tailor resume.json job-desc.txt --output tailored.json
# Auto-apply with diff
node cli.js tailor resume.json job-desc.txt --auto-apply --diffSample Output:
{
"match_score": 75,
"suggestions": [
{
"section": "skills",
"action": "add",
"content": "Kubernetes, Terraform",
"impact": "high"
},
{
"section": "experience",
"action": "modify",
"content": "Highlight cloud infrastructure experience",
"impact": "medium"
}
],
"tailored_resume": { ... }
}Export resume to various formats.
Supported Formats:
pdf- High-quality PDF with selectable textdocx- Editable Microsoft Word documenttxt- Plain text formatjson- Structured data backuphtml- Self-contained HTML (single file)
Options:
--output <file>- Output file path--template <name>- Template style (for PDF/HTML): classic, modern, minimal--page-size <size>- Page size: letter, a4 (default: letter)
Examples:
# Export to PDF
node cli.js export resume.json pdf --output resume.pdf --template modern
# Export to DOCX
node cli.js export resume.json docx --output resume.docx
# Export to HTML
node cli.js export resume.json html --output resume.htmlRun industry benchmarking and skills gap analysis.
Analysis:
- Compare skills against industry standards
- Identify missing critical skills
- Get career progression suggestions
- Salary range estimates
- Competitiveness scoring (0-100)
Options:
--industry <type>- Industry: tech, finance, healthcare, marketing, manufacturing--role <name>- Target role for comparison--output <file>- Output analysis results
Examples:
# Benchmark for tech industry
node cli.js benchmark resume.json --industry tech --output benchmark.json
# Compare to specific role
node cli.js benchmark resume.json --industry tech --role "Senior Engineer"Sample Output:
{
"competitiveness_score": 82,
"percentile": 78,
"skills_gap": {
"critical_missing": ["Kubernetes", "Terraform"],
"recommended": ["GraphQL", "Redis"],
"learning_paths": [...]
},
"career_progression": [
"Senior Software Engineer",
"Staff Engineer",
"Principal Engineer"
],
"salary_estimate": {
"min": "$120,000",
"max": "$180,000",
"median": "$150,000"
}
}Manage resume versions.
Commands:
version list- List all saved versionsversion diff <v1> <v2>- Compare two versions
Examples:
# List versions
node cli.js version list
# Compare versions
node cli.js version diff base-2024 tailored-tech-companyStart the API server for programmatic access from Claude Code or other tools.
npm start
# Server runs on http://localhost:3000Resume Analysis:
POST /api/analyze
Content-Type: application/json
{
"resume": "resume content or file path",
"options": {
"verbose": true
}
}AI Content Generation:
POST /api/generate
Content-Type: application/json
{
"type": "summary",
"input": { ... resume data ... },
"options": {
"tone": "professional",
"length": "standard"
}
}Job Tailoring:
POST /api/tailor
Content-Type: application/json
{
"resume": { ... resume data ... },
"job_description": "job description text",
"auto_apply": false
}Document Export:
POST /api/export
Content-Type: application/json
{
"resume": { ... resume data ... },
"format": "pdf",
"options": {
"template": "modern",
"page_size": "letter"
}
}Industry Benchmarking:
POST /api/benchmark
Content-Type: application/json
{
"resume": { ... resume data ... },
"industry": "tech",
"role": "Senior Engineer"
}All API endpoints return JSON in this format:
{
"success": true,
"data": { ... result data ... },
"error": null,
"timestamp": "2025-12-04T10:00:00Z"
}Error responses:
{
"success": false,
"data": null,
"error": {
"code": "INVALID_INPUT",
"message": "Resume file not found"
},
"timestamp": "2025-12-04T10:00:00Z"
}# API Keys
ANTHROPIC_API_KEY=your_claude_api_key
# Server Configuration
PORT=3000
NODE_ENV=production
# Feature Flags
ENABLE_BENCHMARKING=true
ENABLE_AI_GENERATION=true
MAX_FILE_SIZE=10MBATSFlow uses a standardized JSON format:
{
Read the rest on GitHubScan report · 2026-10-03
- ✓ Prohibited terms or links
- ✓ Repository eligibility
- ✓ slopscore.md paperwork
- ✓ Content policy
- ✓ Risk review
From the balcony · 0 of 4 clapped
Princess, Crusoe, Schnitzel and Cap'm Slop read it and passed. Their reasons are on the balcony, with every other verdict.
Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.
report this listing
— log in to report
0 comments
log in to comment.