autotailor
v1.2.3
Published
AI-powered automated CV tailoring and job application system. Supports Claude, ChatGPT, and Gemini.
Downloads
49
Maintainers
Readme
AutoTailor - AI-Powered CV Tailoring & Job Application
Automatically tailor your CV to any job posting and send professional applications with AI
AutoTailor uses AI (Claude, ChatGPT, or Gemini) to analyze job posts, intelligently rewrite your LaTeX CV to match requirements, and generate personalized application emails - all through a simple, interactive command-line interface.
🎯 What It Does
- Analyzes job postings - Extracts required skills, keywords, seniority, and contact email
- Tailors your CV - Rewrites and reorders sections to match job requirements perfectly
- Compiles to PDF - Generates a professional PDF from your tailored LaTeX CV
- Writes the email - Creates a personalized, professional application email
- Sends it for you - Delivers your application with confirmation
You stay in control: Review everything before sending.
⚡ Quick Start
# 1. Install dependencies
npm install
# 2. Set up environment (see Setup below)
cp .env.example .env
# Edit .env with your API keys
# 3. Run the interactive CLI
npm run tailorThat's it! The CLI guides you through the entire process.
✨ Features
🧠 AI-Powered Intelligence
- Job Analysis - Extracts keywords, skills, tools, responsibilities, and seniority
- Smart Tailoring - Rewrites bullet points, reorders sections, optimizes wording
- Email Generation - Creates professional, personalized application emails
🎨 User Experience
- Interactive CLI - Beautiful, step-by-step command-line interface
- AI Model Selection - Choose your preferred AI provider and model at runtime
- Real-time Progress - See what's happening with spinners and colored output
- Email Preview - Review everything before sending
- Confirmation Required - No accidental sends
🛠️ Technical
- LaTeX Safe - Preserves formatting, ensures valid compilation
- PDF Generation - Automatic compilation using pdflatex/latexmk
- Email Delivery - Reliable sending via Nodemailer (Gmail/SMTP)
- Dual Interface - CLI for personal use, REST API for automation
📋 Requirements
- Node.js 16+ and npm
- LaTeX compiler (pdflatex or latexmk)
- AI API key - Choose one:
- Claude API (Anthropic) - Recommended
- OpenAI API (ChatGPT)
- Google Gemini API
- Email account with SMTP access (Gmail recommended)
🚀 Setup
1. Install Dependencies
npm install2. Install LaTeX Compiler
macOS:
brew install mactexLinux:
sudo apt install texlive-fullWindows: Install MiKTeX
Verify installation:
pdflatex --version3. Configure Environment
Create .env file:
cp .env.example .envEdit .env:
# AI Provider (Choose ONE - Claude recommended)
# Get Claude API key: https://console.anthropic.com/settings/keys
CLAUDE_API_KEY=your_claude_api_key_here
# OR use OpenAI (ChatGPT)
# Get OpenAI API key: https://platform.openai.com/api-keys
# OPENAI_API_KEY=your_openai_api_key_here
# OR use Google Gemini
# Get Gemini API key: https://makersuite.google.com/app/apikey
# GEMINI_API_KEY=your_gemini_api_key_here
# Email Settings (Gmail recommended)
[email protected]
SMTP_PASS=your_app_password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587Choose Your AI Provider:
- Claude (Recommended): Best results, get key at console.anthropic.com
- ChatGPT: Use OpenAI API, get key at platform.openai.com
- Gemini: Use Google's AI, get key at makersuite.google.com
Gmail Setup:
- Enable 2-Factor Authentication
- Generate App Password: https://myaccount.google.com/apppasswords
- Use the App Password (not your regular password)
🤖 AI Model Selection
New in v1.2.0: Choose your AI provider and model interactively!
When you run AutoTailor, you'll be prompted to select:
If you have multiple API keys configured:
? 🤖 Choose your AI provider:
1) Claude (Anthropic)
2) ChatGPT (OpenAI)
3) Gemini (Google)
Answer:Then choose your model:
For Claude:
? 🎯 Choose your AI model:
1) Claude Sonnet 4 (Recommended) - Balanced performance
2) Claude Opus 4 - Most capable, slower
3) Claude 3.5 Sonnet - Fast and efficient
Answer: 1For OpenAI:
? 🎯 Choose your AI model:
1) GPT-4 Turbo (Recommended) - Best balance
2) GPT-4o - Optimized and fast
3) GPT-4 - Most capable
4) GPT-3.5 Turbo - Fastest and cheapest
Answer: 1For Gemini:
? 🎯 Choose your AI model:
1) Gemini 1.5 Pro (Recommended) - Most capable
2) Gemini 1.5 Flash - Faster responses
3) Gemini Pro - Standard model
Answer: 1Note: If you only have one API key configured, it will skip provider selection and go straight to model selection.
🎮 Usage
Option 1: Global Installation (Easiest)
Install AutoTailor globally from npm:
# Install globally
npm install -g autotailor
# Create config directory
mkdir -p ~/.autotailor
# Create .env file (choose one AI provider)
cat > ~/.autotailor/.env << EOF
# Choose ONE AI provider:
CLAUDE_API_KEY=your-claude-api-key-here
# OPENAI_API_KEY=your-openai-api-key-here
# GEMINI_API_KEY=your-gemini-api-key-here
[email protected]
SMTP_PASS=your_app_password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
EOF
# Run from anywhere
autotailorOption 2: Local Development
Clone and run locally:
npm run tailorThe CLI will:
- ✅ Let you choose AI provider (if multiple configured)
- ✅ Let you choose AI model
- ✅ Ask for your CV file path
- ✅ Ask for your name
- ✅ Let you paste the job post
- ✅ Analyze the job with AI
- ✅ Tailor your CV automatically
- ✅ Compile to PDF
- ✅ Generate professional email
- ✅ Show preview of everything
- ✅ Ask for confirmation
- ✅ Send the application
See CLI-GUIDE.md for detailed CLI documentation.
REST API (For Automation)
Start the API server:
npm run devUse the REST endpoints for integration:
POST /api/tailor- Tailor CV and generate emailPOST /api/send- Send the email
See USAGE.md for API documentation.
📁 Project Structure
AutoTailor/
├── src/
│ ├── cli.ts # Interactive CLI interface (main)
│ ├── server.ts # REST API server (optional)
│ ├── agents/
│ │ ├── parseJobPost.ts # AI job post analyzer
│ │ ├── tailorCV.ts # AI CV tailoring engine
│ │ └── generateEmail.ts # AI email generator
│ ├── services/
│ │ ├── latexCompiler.ts # PDF compilation
│ │ └── emailSender.ts # Email delivery
│ └── utils/
│ └── extractEmail.ts # Email extraction utility
├── uploads/ # Working directory for CVs
├── .env # Your configuration
└── package.json🎬 Example Session
$ npm run tailor
╔═══════════════════════════════════════════════════════════╗
║ ║
║ AutoTailor - AI-Powered CV Tailoring & Job Application ║
║ ║
╚═══════════════════════════════════════════════════════════╝
? 🎯 Choose your AI model:
1) Claude Sonnet 4 (Recommended) - Balanced performance
2) Claude Opus 4 - Most capable, slower
3) Claude 3.5 Sonnet - Fast and efficient
Answer: 1
✓ Using: Claude (Anthropic) (claude-sonnet-4-20250514)
? Enter path to your CV (.tex file): ./uploads/CV.tex
? Your full name: John Doe
📋 Paste the job post below:
[Paste job description, press Enter twice when done]
✓ Job post received
✓ Job post analyzed successfully
📊 Job Analysis:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Seniority: Senior
Required Skills: Node.js, TypeScript, AWS, Docker, Kubernetes
Tools: Git, Jenkins, PostgreSQL, Redis, Terraform
Keywords: microservices, scalable, distributed, cloud-native
Email found: [email protected]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ CV loaded
✓ CV tailored successfully
✓ Tailored CV saved to: uploads/tailored-CV.tex
✓ PDF created: uploads/tailored-CV.pdf
✓ Email generated
📧 Email Preview:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
To: [email protected]
Subject: Application for Senior Backend Engineer Position
Hi Hiring Team,
I am writing to express my strong interest in the Senior Backend
Engineer position. With extensive experience in Node.js, TypeScript,
and AWS cloud architecture, I am excited about the opportunity to
contribute to your team's success...
[Full email content]
Best regards,
John Doe
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Attachment: tailored-CV.pdf
? Send this email now? Yes
✓ Email sent successfully! 🎉
✓ Application submitted successfully!
Sent to: [email protected]
Files saved in: uploads/🛠️ Tech Stack
- Node.js + TypeScript - Runtime and type safety
- AI Providers - Claude API (Anthropic), OpenAI API (ChatGPT), or Google Gemini
- Inquirer - Interactive CLI prompts
- Chalk - Terminal colors
- Ora - Loading spinners
- Nodemailer - Email sending
- LaTeX (pdflatex) - PDF compilation
- Express.js - REST API (optional)
📚 Documentation
- CLI-GUIDE.md - Complete CLI usage guide
- USAGE.md - REST API documentation
- .env.example - Environment configuration template
💡 Tips
- Keep base CV generic - Let AI tailor it for each job
- Include complete job posts - More context = better results
- Always preview - Review before sending
- Test first - Send to yourself before real applications
- Use LaTeX-compatible CVs - Avoid complex custom packages
🔧 Troubleshooting
LaTeX Errors
- Ensure pdflatex is in PATH:
pdflatex --version - Validate your .tex file compiles standalone
- Check for missing LaTeX packages
Email Issues
- Gmail: Use App Password, not regular password
- Enable 2FA first, then generate App Password
- Check SMTP settings in .env
AI API Errors
- Claude: Verify API key is correct at console.anthropic.com
- OpenAI: Check API key and credits at platform.openai.com
- Gemini: Verify API key at makersuite.google.com
- Check account has credits/quota
- Ensure no rate limiting
- The CLI will show which AI provider it's using at startup
🚀 Future Enhancements
- [ ] Browser extension for LinkedIn job posts
- [ ] Support for Word/PDF CVs (auto-convert to LaTeX)
- [ ] Multi-language support
- [ ] Job application tracking dashboard
- [ ] Skill gap analysis and suggestions
- [ ] A/B testing for CV variations
📄 License
This project is for personal use. Claude API usage subject to Anthropic's terms.
🤝 Contributing
Contributions welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
⭐ Star This Repo
If AutoTailor helps you land interviews, consider giving it a star!
Made with ❤️ and Claude AI
Happy job hunting! 🎯
