Skip to content

NourNafea/autotailor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

  1. Analyzes job postings - Extracts required skills, keywords, seniority, and contact email
  2. Tailors your CV - Rewrites and reorders sections to match job requirements perfectly
  3. Compiles to PDF - Generates a professional PDF from your tailored LaTeX CV
  4. Writes the email - Creates a personalized, professional application email
  5. 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 tailor

That'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 install

2. Install LaTeX Compiler

macOS:

brew install mactex

Linux:

sudo apt install texlive-full

Windows: Install MiKTeX

Verify installation:

pdflatex --version

3. Configure Environment

Create .env file:

cp .env.example .env

Edit .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=587

Choose Your AI Provider:

Gmail Setup:

  1. Enable 2-Factor Authentication
  2. Generate App Password: https://myaccount.google.com/apppasswords
  3. 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: 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.


๐ŸŽฎ 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

SMTP_EMAIL=your.email@gmail.com
SMTP_PASS=your_app_password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
EOF

# Run from anywhere
autotailor

Option 2: Local Development

Clone and run locally:

npm run tailor

The CLI will:

  1. โœ… Let you choose AI provider (if multiple configured)
  2. โœ… Let you choose AI model
  3. โœ… Ask for your CV file path
  4. โœ… Ask for your name
  5. โœ… Let you paste the job post
  6. โœ… Analyze the job with AI
  7. โœ… Tailor your CV automatically
  8. โœ… Compile to PDF
  9. โœ… Generate professional email
  10. โœ… Show preview of everything
  11. โœ… Ask for confirmation
  12. โœ… Send the application

See CLI-GUIDE.md for detailed CLI documentation.

REST API (For Automation)

Start the API server:

npm run dev

Use the REST endpoints for integration:

  • POST /api/tailor - Tailor CV and generate email
  • POST /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: 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/

๐Ÿ› ๏ธ 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


๐Ÿ’ก Tips

  1. Keep base CV generic - Let AI tailor it for each job
  2. Include complete job posts - More context = better results
  3. Always preview - Review before sending
  4. Test first - Send to yourself before real applications
  5. 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


๐Ÿš€ 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! ๐ŸŽฏ

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors