Smart draft guide

Practical guides to install and use the app effectively.

Smart Draft — AI-Powered Application Generation

Smart Draft transforms job descriptions into personalized application emails using advanced AI. This guide covers the complete workflow, supported providers, optimization techniques, and quality assurance.

How Smart Draft Works

┌─────────────────────────────────────────────────────────────────┐
│                    SMART DRAFT ARCHITECTURE                    │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  INPUT LAYER                                                    │
│  ├── Job Description (full text)                               │
│  ├── Company Context (name, website, industry)                 │
│  └── CV Selection (auto-matched or manual)                    │
│                          │                                      │
│                          ▼                                      │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │              INTELLIGENCE LAYER                         │   │
│  │  ┌─────────────────┐  ┌─────────────────┐              │   │
│  │  │ Language        │  │ Tone Detection  │              │   │
│  │  │ Detection       │  │                 │              │   │
│  │  │ (langid.py)     │  │ (rule-based)    │              │   │
│  │  └─────────────────┘  └─────────────────┘              │   │
│  │  ┌─────────────────┐  ┌─────────────────┐              │   │
│  │  │ Entity          │  │ CV Matching     │              │   │
│  │  │ Extraction      │  │ Algorithm       │              │   │
│  │  │ (spaCy NER)     │  │ (TF-IDF + NLP)  │              │   │
│  │  └─────────────────┘  └─────────────────┘              │   │
│  └─────────────────────────────────────────────────────────┘   │
│                          │                                      │
│                          ▼                                      │
│  PROMPT ENGINEERING                                             │
│  ├── System Instructions (tone, language, format)               │
│  ├── Context Injection (CV highlights)                        │
│  └── Constraints (length, style, requirements)              │
│                          │                                      │
│                          ▼                                      │
│  AI EXECUTION                                                   │
│  ├── Provider Selection (DeepSeek/OpenAI/Anthropic)            │
│  ├── Model Routing (complexity-based)                         │
│  └── Response Generation                                      │
│                          │                                      │
│                          ▼                                      │
│  OUTPUT                                                         │
│  ├── Subject Line                                             │
│  ├── Personalized Body                                        │
│  └── Confidence Score                                         │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Supported AI Providers (15+)

Standard API Providers

ProviderModelsBest ForCost
DeepSeekdeepseek-chat, deepseek-reasonerCost-effective, strong reasoning$
OpenAIgpt-4o, gpt-4o-mini, o3-miniIndustry leader, high quality$$$
Anthropicclaude-3.5-sonnet, claude-3.5-haikuLong context, nuanced output$$
Googlegemini-2.0-flash, gemini-2.0-proFast inference, multilingual$$
Groqllama-3.3-70b, mixtral-8x7bUltra-fast (< 100ms)$
Mistralmistral-large, mistral-mediumEuropean data residency$$
xAIgrok-2Alternative perspective$$
Coherecommand-r, command-r-plusEnterprise features$$
AI21jamba-1.5-largeLong document processing$$
Perplexitysonar, sonar-proResearch-backed outputs$$

OAuth/Subscription Providers

ProviderSetupCost Model
Google OAuthLink Google accountExisting Google AI access
GitHub CopilotCopilot subscriptionIncluded in Copilot Pro
ChatGPT PlusOpenAI accountIncluded in Plus subscription
Claude ProAnthropic accountIncluded in Pro subscription

Local/Proxy Options

OptionUse CaseSetup
OllamaPrivacy-first, offlineLocal LLM server
Gemini CLI ProxyGoogle CLI integrationTerminal-based access
Antigravity ProxyCustom proxy endpointAdvanced users

Provider Configuration

Setting Up API Keys

  1. Navigate to Settings → AI Providers
  2. Select your preferred provider
  3. Enter API key (stored in system keyring)
  4. Select default model
  5. Set cost limits and alerts

Model Selection Strategy

Use CaseRecommended ModelWhy
Standard applicationsdeepseek-chat / gpt-4o-miniBalanced cost/quality
Executive/C-level rolesclaude-3.5-sonnetNuanced, sophisticated
Creative industriesgemini-2.0-flashDynamic, engaging
Research-heavy roleso3-mini / sonar-proAnalytical depth
High-volume campaignsgroq-llama-3.3-70bSpeed, cost efficiency

The Auto-Detection Engine

Language Detection

Smart Draft automatically detects the job posting language:

# Example detection flow
job_description → langid.classify() → confidence_score
                                    ↓
                           if confidence > 0.8:
                               use_detected_language
                           else:
                               fallback_to_cv_language

Supported Languages:

  • English (en) — 99.2% accuracy
  • French (fr) — 98.7% accuracy
  • Spanish (es) — 97.9% accuracy
  • German (de) — 97.5% accuracy
  • Arabic (ar) — 96.8% accuracy
  • Italian (it) — 97.1% accuracy
  • Portuguese (pt) — 96.9% accuracy
  • Dutch (nl) — 95.4% accuracy
  • And 100+ more

Tone Analysis

The system analyzes job description tone via keyword matching:

Tone IndicatorKeywordsSuggested Tone
Formal"corporate", "enterprise", "regulatory"Formal
Startup"fast-paced", "disruptive", "agile"Friendly
Creative"design", "innovation", "passion"Enthusiastic
Traditional"established", "professional", "industry"Professional

Entity Extraction

Smart Draft extracts key entities using spaCy NER:

  • ORG (Organization): Company names
  • POSITION: Job titles, role names
  • GPE (Geopolitical Entity): Locations
  • SKILL: Technologies, tools, methodologies
  • DATE: Posting dates, deadlines

Example:

Input: "Google is hiring a Senior ML Engineer in London"

Extracted:
- ORG: Google
- POSITION: Senior ML Engineer
- GPE: London

CV Matching Algorithm

Job Requirements
       │
       ├──→ Keyword Extraction (TF-IDF)
       │
       ├──→ Skill Matching
       │      ├── Exact match: weight 2.0
       │      ├── Related tech: weight 1.0
       │      └── Domain match: weight 1.5
       │
       ├──→ Experience Comparison
       │      ├── Years alignment: weight 1.5
       │      └── Level match: weight 2.0
       │
       └──→ Calculate Similarity Score
              │
              ▼
       Compare with all CVs
              │
              ▼
       Return Best Match + Confidence

Input Quality Optimization

Best Practices

DO:

  • ✅ Paste the complete job description
  • ✅ Include requirements section
  • ✅ Add company context (mission, size)
  • ✅ Mention specific technologies

DON'T:

  • ❌ Use truncated descriptions
  • ❌ Omit salary/location if relevant
  • ❌ Copy only responsibilities (missing requirements)

Input Templates

Standard Job Posting:

Company: [Company Name]
Position: [Job Title]
Location: [City/Remote]

About the Role:
[Full description]

Requirements:
- [Requirement 1]
- [Requirement 2]

Tech Stack:
- [Technology 1]
- [Technology 2]

LinkedIn Job Posting:

  • Click "Show more" to expand full description
  • Copy entire text including "About the job" and "Qualifications"
  • Include "About the company" section

Tone Selection Guide

Professional (Default)

Best for: Most applications, balanced industries

Characteristics:

  • Clear, confident language
  • Balanced enthusiasm
  • Structured paragraphs
  • Appropriate formality

Example opening:

"I am writing to express my interest in the Senior Python Engineer position at [Company]. With 5 years of experience building scalable backend systems..."

Formal

Best for: Finance, legal, enterprise, government

Characteristics:

  • Structured, traditional format
  • Respectful deference
  • Precise language
  • Conservative tone

Example opening:

"I wish to submit my application for the position of Senior Python Engineer at [Company]. I am confident that my extensive experience..."

Friendly

Best for: Startups, creative agencies, small teams

Characteristics:

  • Warm, approachable
  • Conversational style
  • Shows personality
  • Enthusiastic but natural

Example opening:

"I was excited to come across the Senior Python Engineer role at [Company]! Your mission to simplify developer workflows really resonates with me..."

Enthusiastic

Best for: Dream companies, mission-driven roles, career transitions

Characteristics:

  • High energy
  • Strong alignment with mission
  • Passionate about opportunity
  • Forward-looking

Example opening:

"I've been following [Company]'s journey for years, and the Senior Python Engineer opening feels like the perfect convergence of my skills and my passion for..."

Review & Quality Assurance

The 4-Point Check

Before sending, verify:

  1. Accuracy Check

    • Job title matches the posting
    • Company name spelled correctly
    • Referenced skills are in your CV
    • Dates and experience levels align
  2. Tone Alignment

    • Matches company culture
    • Appropriate for industry
    • Consistent throughout
  3. Language Consistency

    • Same language as job posting
    • No mixed language fragments
    • Correct grammar/spelling
  4. Completeness

    • Subject line present
    • Opening hook engaging
    • Body explains fit
    • Call to action included

Common Issues & Fixes

IssueCauseSolution
Wrong company namePoor entity extractionManual edit, re-generate
Mismatched skillsCV mismatchSelect correct CV, regenerate
Wrong languageDetection failureOverride language setting
Too genericVague job descriptionAdd more company context
Too longComplex requirementsRegenerate with "concise" prompt

Advanced Techniques

A/B Testing Templates

Generate multiple versions with different tones:

  1. Generate draft with "Professional" tone
  2. Save as Template A
  3. Generate draft with "Friendly" tone
  4. Save as Template B
  5. Send to similar roles, track response rates
  6. Identify winning approach for your industry

Custom Instructions

Add specific requirements to the prompt:

"Generate a cover letter that:
- Mentions my experience with [specific project]
- Highlights leadership in [specific context]
- Addresses the [specific requirement] directly
- Keeps to 3 paragraphs maximum"

Batch Generation

For high-volume campaigns:

  1. Import job descriptions as CSV
  2. Select default CV and tone
  3. Run batch generation
  4. Review outputs individually
  5. Queue approved drafts to Outbox

Cost Tracking & Optimization

Cost Per Generation

ProviderModelApprox. Cost/Gen
DeepSeekdeepseek-chat$0.002
OpenAIgpt-4o-mini$0.003
OpenAIgpt-4o$0.015
Anthropicclaude-3.5-haiku$0.005
Groqllama-3.3-70b$0.001

Budget Controls

Set in Settings → AI Providers:

  • Daily limit: Maximum daily spend
  • Monthly limit: Monthly budget cap
  • Alert threshold: Warning at % of budget

Troubleshooting

Generation Fails

  1. Check API key validity
  2. Verify provider status (some have outages)
  3. Reduce input size (try trimming job description)
  4. Switch to alternative provider
  5. Check cost limits not exceeded

Low Quality Output

  1. Improve input quality (see Best Practices)
  2. Try different tone setting
  3. Switch to higher-quality model
  4. Add more CV context
  5. Manually edit and save as template

Language Detection Errors

  1. Manually select language in Settings
  2. Include language hint in input
  3. Regenerate with corrected settings

Integration with Other Features

→ CVs

  • Auto-selects best matching CV
  • Embeds CV highlights in prompt
  • Suggests CV improvements based on gaps

→ Company Lookup

  • Pulls company data for context
  • Personalizes based on company size/industry
  • References company mission/values

→ Analytics

  • Tracks generation count by provider
  • Monitors cost per generation
  • Identifies most effective tones

Next: Learn about Job Search strategies and Profile Management.