npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

autotailor

v1.2.3

Published

AI-powered automated CV tailoring and job application system. Supports Claude, ChatGPT, and Gemini.

Downloads

49

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

  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)
[email protected]
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

[email protected]
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: [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


💡 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! 🎯