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.
- 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.
# 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.
- 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
- 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
- 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
- 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)
npm installmacOS:
brew install mactexLinux:
sudo apt install texlive-fullWindows: Install MiKTeX
Verify installation:
pdflatex --versionCreate .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)
SMTP_EMAIL=your.email@gmail.com
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)
New in v1.2.0: Choose your AI provider and model interactively!
When you run AutoTailor, you'll be prompted to select:
? ๐ค Choose your AI provider:
1) Claude (Anthropic)
2) ChatGPT (OpenAI)
3) Gemini (Google)
Answer:
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: 1
For 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: 1
For 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: 1
Note: If you only have one API key configured, it will skip provider selection and go straight to model selection.
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
SMTP_EMAIL=your.email@gmail.com
SMTP_PASS=your_app_password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
EOF
# Run from anywhere
autotailorClone 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.
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.
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
$ 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: careers@company.com
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CV loaded
โ CV tailored successfully
โ Tailored CV saved to: uploads/tailored-CV.tex
โ PDF created: uploads/tailored-CV.pdf
โ Email generated
๐ง Email Preview:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
To: careers@company.com
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: careers@company.com
Files saved in: uploads/- 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)
- CLI-GUIDE.md - Complete CLI usage guide
- USAGE.md - REST API documentation
- .env.example - Environment configuration template
- 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
- Ensure pdflatex is in PATH:
pdflatex --version - Validate your .tex file compiles standalone
- Check for missing LaTeX packages
- Gmail: Use App Password, not regular password
- Enable 2FA first, then generate App Password
- Check SMTP settings in .env
- 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
- 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
This project is for personal use. Claude API usage subject to Anthropic's terms.
Contributions welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
If AutoTailor helps you land interviews, consider giving it a star!
Made with โค๏ธ and Claude AI
Happy job hunting! ๐ฏ