Your Complete Guide to Generating High-Quality Cold Outreach Emails
Version 1.0 | Last Updated: 2024
🏠 Home | 🚀 Quick Start | 📧 Single Email | 🗺️ Lead Generation | 📦 Batch Processing | 📊 Analytics
- Getting Started
- Single Email Generation
- Lead Generation
- Batch Processing
- Analytics Dashboard
- Email History
- Custom Templates
- Portfolio Management
- Tips & Best Practices
- Troubleshooting
- Open your browser and navigate to the application URL
- You'll see the landing page with an overview of features
Screenshot: EmailCraft AI Landing Page with hero, features, and workflows
- Click "Launch App" to access the main application
The application has 5 main tabs:
| Tab | Icon | Purpose |
|---|---|---|
| New Email | ✉️ | Generate a single personalized email |
| Lead Generation | 🗺️ | Find leads and generate emails automatically |
| Batch Emails | 📦 | Process multiple emails from CSV |
| History | 🕐 | View all previously generated emails |
| Analytics | 📊 | Track performance and insights |
Screenshot: Main application interface showing all 5 tabs
Switch between Light and Dark mode using the theme toggle button in the top-right corner.
Screenshot: Light mode (left) vs Dark mode (right) comparison
Generate a personalized cold email for a specific job posting or role.
You have two input options and can customize sender details:
Screenshot: Complete email generation form with all input fields
- Find a job posting on LinkedIn, Indeed, or any job board
- Copy the URL
- Paste it into the "Job URL" field
- The system will automatically scrape:
- Job title and role
- Required skills
- Company information
- Job description
Supported platforms:
- LinkedIn Jobs
- Indeed
- Glassdoor
- Company career pages
If you don't have a job URL:
- Enter the Role (e.g., "Senior DevOps Engineer")
- Enter the Industry (e.g., "FinTech, SaaS")
- Optionally add Company Name and Recipient Name
- Your Name: How you want to sign the email
- Your Company: Your company or "Freelance"
- Your Services: What you offer (e.g., "AI development services")
- Professional: Formal, business-appropriate
- Casual: Friendly, conversational
- Enthusiastic: Energetic, passionate
- Click "Generate Email" button
- Wait 20-30 seconds while the AI:
- Scrapes job details (if URL provided)
- Analyzes recipient persona
- Retrieves relevant templates
- Matches portfolio items
- Generates personalized email
- Evaluates and optimizes
Screenshot: Generated email with quality metrics and actions
The result includes:
1. Quality Score (0-10)
- Overall email quality rating
- Higher is better (aim for 7+)
2. Email Content
- Subject Line: Attention-grabbing opener
- Body: Personalized message
- CTA: Clear call-to-action
3. Quality Metrics
- Clarity (0-10): Easy to understand?
- Tone (0-10): Appropriate tone?
- Length (0-10): Right length?
- Personalization (0-10): Tailored to recipient?
- Spam Safe (0-10): Avoids spam triggers?
4. Feedback
- Strengths: What works well
- Issues: Areas to improve
5. Alternative Subject Lines
- 3 additional subject line options
- Click to replace the current one
6. Portfolio Items
- Relevant projects automatically included
- Matched to job requirements
7. Actions
- Copy: Copy to clipboard
- Download .eml: Save as email file
- Regenerate: Create a new version
Automatically find businesses and generate personalized emails at scale.
Instead of targeting specific job postings, Lead Generation:
- Scrapes businesses from Google Maps
- Generates personalized emails for each lead
- Exports everything to Excel
Screenshot: Lead generation form with search criteria and sender info
Required Fields:
-
Business Type
- What type of businesses to find
- Examples: "software companies", "restaurants", "law firms", "real estate agencies", "marketing agencies"
-
Location
- City, state, or region
- Examples: "San Francisco, CA", "New York", "Austin, Texas", "Los Angeles"
-
Number of Leads
- How many businesses to find (5-50)
- Start with 10-20 for testing
Sender Information:
- Your Name: How you'll sign emails
- Your Company: Your business name
- Your Services: What you offer to these businesses
- Click "Generate Leads & Emails"
- Wait while the system processes (~30 seconds per lead)
- Review the results table
Screenshot: Lead results table with company info, scores, and actions
Results Table Shows:
| Column | Description |
|---|---|
| # | Lead number |
| Company Info | Name, website, email, contact |
| Subject | Email subject line (truncated) |
| Score | Quality score (0-10) |
| Metrics | C/T/L/P/S scores |
| Status | Success or Failed |
| Actions | View, Copy buttons |
Success Card:
- Total leads found
- Successful emails generated
- Summary statistics
View Individual Emails:
- Click "View Email" (👁️ icon) to see full details
- Includes lead information, full email content, quality metrics, and portfolio items
Processing Time:
- ~30 seconds per lead
- 10 leads = ~5 minutes
- 20 leads = ~10 minutes
Click "Download Results (Excel)" to export all data:
Screenshot: Excel export showing all lead data
Excel file includes all lead data:
- Lead information (company, website, phone, address, category, rating, reviews)
- Email content (subject, body, CTA)
- Quality scores and metrics (overall score + 5 individual metrics)
- AI feedback (strengths, issues, alternative subjects, portfolio items)
Use cases:
- Import to CRM
- Add contact emails manually or use email finder tools
- Send via email marketing tool
- Manual review and editing
- Track outreach campaigns
Note: Email addresses are not automatically found. You'll need to add them manually or use external email finder services.
Process multiple emails at once from a CSV file.
- You have a list of job URLs or companies
- Need to generate 10-200+ emails
- Want to process overnight
- Exporting to CRM or email tool
Download Template:
- Click "Download Template" button
- Open the CSV file
Template columns:
| Column | Required | Description | Example |
|---|---|---|---|
job_url |
Yes* | Job posting URL | https://linkedin.com/jobs/... |
role |
Yes* | Job title | Senior DevOps Engineer |
industry |
No | Industry/sector | FinTech, SaaS |
company_name |
No | Company name | Stripe |
recipient_name |
No | Contact name | John Smith |
*Either job_url OR role is required
Fill Your Data:
Option 1 - Job URLs:
job_url,role,industry,company_name,recipient_name
https://linkedin.com/jobs/123,,,Stripe,
https://indeed.com/job/456,,,Airbnb,Option 2 - Manual Roles:
job_url,role,industry,company_name,recipient_name
,Senior DevOps Engineer,FinTech,Stripe,John Smith
,Product Manager,SaaS,Notion,Sarah JohnsonUpload & Configure:
Screenshot: CSV upload area with drag-drop and file preview
Two ways to upload:
- Drag & Drop: Drag CSV file onto the upload zone
- Click to Browse: Click and select file
File requirements:
- Format:
.csv - Size: Up to 10MB
- Rows: 10-200 recommended
Configure Settings:
- Sender Information (Your Name, Company, Services)
- Tone (Professional recommended for batch)
- Rate Limiting (Automatic, ~30 seconds per email)
- Click "Start Batch Processing"
- Monitor progress in real-time
- Review results when complete
Screenshot: Batch processing results with progress and summary
Progress shows:
- Current email being processed
- Percentage complete
- Estimated time remaining
- Success/failure count
- Live log of each email
Summary Statistics:
- Total emails processed
- Successful generations
- Failed attempts
- Average quality score
Results Table:
- All emails with scores
- Status indicators
- Quick actions (view, copy)
Error Handling:
- Failed emails shown separately
- Error messages for debugging
- Can retry failed items
Export Options:
- Download Excel - All emails in spreadsheet with metrics
- Download CSV - Plain text format compatible with all tools
Track performance, trends, and insights across all your email generation activities.
Screenshot: Complete analytics dashboard with stats, charts, and activity
Key Metrics Cards:
-
Total Emails Generated
- All-time count
- Growth trend
-
Average Quality Score
- Mean score across all emails
- Target: 7.5+
-
Success Rate
- Percentage of successful generations
- Should be 95%+
-
Total Leads Sourced
- From lead generation feature
- Unique businesses found
Performance by Role:
- Most common roles targeted
- Average score per role
- Number of emails per role
- Use to identify best-performing roles and optimize targeting
Score Distribution:
- Histogram showing email count in each score range
- Distribution pattern analysis
- Quality consistency tracking
- Ideal: Most emails in 7-9 range, few below 6
Template Performance:
- Which templates are used most
- Average score per template
- Template effectiveness comparison
- Use to identify best templates and remove underperforming ones
Recent Activity Timeline:
- Latest emails generated
- Scores and timestamps
- Quick access to view details
Trends Over Time:
- Line chart showing score trends by day/week
- Improvement tracking over time
- Seasonal patterns identification
- Use to measure optimization impact
Access and manage all previously generated emails.
Screenshot: Email history page with search, filters, and email list
History shows:
- All emails ever generated
- Sorted by date (newest first)
- Quick preview of each email
Search by:
- Company name
- Role/position
- Keywords in email
Filter by:
- Date range
- Quality score
- Status (success/failed)
- Source (single/batch/lead gen)
Click any email to view:
- Original input parameters
- Generated email content
- Quality metrics
- Timestamp
- Source (which feature used)
For each email:
- View: See full details
- Copy: Copy to clipboard
- Regenerate: Create new version
- Delete: Remove from history
Export options:
- All history to Excel
- Filtered results only
- Date range selection
Add your own email templates to improve personalization.
- Industry-specific: Create templates for your niche
- Brand voice: Match your communication style
- Proven patterns: Use what works for you
- Better results: More relevant templates = better emails
See the complete guide: Custom Templates Guide
Quick Steps:
-
Open template file:
data/email_templates.json -
Add your template:
{ "id": "my_template_1", "title": "My Custom Template", "industry": "Technology", "use_case": "Product demo", "subject_line": "Subject with {placeholders}", "body": "Email body...", "cta": "Book a call", "performance_score": 8.0 } -
Restart application
Available placeholders:
| Placeholder | Replaced With |
|---|---|
{name} |
Recipient name |
{company} |
Company name |
{role} |
Job role |
{industry} |
Industry |
{product} |
Your product/service |
{your_name} |
Sender name |
View how your templates perform in the Analytics dashboard under "Template Performance" section.
Manage your portfolio items for automatic inclusion in emails.
The system automatically:
- Analyzes job requirements
- Searches your portfolio
- Includes relevant projects in emails
Edit portfolio file: data/portfolio.json
Or use CSV: data/my_portfolio.csv
{
"title": "E-commerce Platform",
"description": "Built scalable platform handling 1M+ users",
"tech_stack": "React, Node.js, PostgreSQL, AWS",
"link": "https://github.com/username/project",
"category": "Web Development"
}Example:
Job requires: React, Node.js, AWS
Your portfolio:
- ✅ "E-commerce Platform" (React, Node.js, AWS) - Matched!
- ❌ "Mobile App" (Flutter, Firebase) - Not matched
- ✅ "API Service" (Node.js, AWS) - Matched!
Result: Top 2 matched projects included in email
✅ DO:
- Use job URLs when possible (more accurate)
- Fill in company and recipient name
- Review and customize before sending
- Test different tones
❌ DON'T:
- Use generic roles without context
- Skip sender information
- Send without reviewing
- Ignore quality scores below 7
✅ DO:
- Start with 10-20 leads to test
- Use specific business types
- Include location for better targeting
- Review a few emails before bulk sending
❌ DON'T:
- Generate 50+ leads without testing
- Use vague business types
- Send without reviewing samples
✅ DO:
- Validate CSV before uploading
- Include as much data as possible
- Process during off-hours
- Export and review before sending
❌ DON'T:
- Upload without previewing
- Process 200+ without testing
- Ignore failed emails
- Send directly without review
| Score | Quality | Action |
|---|---|---|
| 9-10 | Excellent | Send as-is |
| 7-8.9 | Good | Minor tweaks |
| 5-6.9 | Fair | Review and edit |
| Below 5 | Poor | Regenerate |
High personalization:
- Mention specific company achievements
- Reference job requirements
- Include relevant portfolio items
- Use recipient's name
Low personalization:
- Generic templates
- No company research
- Missing context
- Copy-paste approach
Causes:
- Invalid URL
- Job posting removed
- Website blocking scraper
Solutions:
- ✅ Verify URL is correct
- ✅ Try manual input instead
- ✅ Use a different job posting
Causes:
- Template file missing
- Vector database not initialized
Solutions:
- ✅ Check
data/email_templates.jsonexists - ✅ Restart application
- ✅ Check logs for errors
Causes:
- Tech stack mismatch
- Incorrect keywords
- Portfolio file format error
Solutions:
- ✅ Use exact technology names
- ✅ Add more keywords to tech_stack
- ✅ Validate JSON format
Causes:
- Too specific search criteria
- Location has no results
- API key issues
Solutions:
- ✅ Broaden business type
- ✅ Try different location
- ✅ Check Apify API key
Causes:
- API rate limits
- Network issues
- Invalid CSV data
Solutions:
- ✅ Wait for rate limit reset
- ✅ Check internet connection
- ✅ Validate CSV format
Causes:
- Insufficient input data
- Poor template match
- Generic content
Solutions:
- ✅ Provide more details
- ✅ Add custom templates
- ✅ Include company/recipient info
Check logs:
# View application logs
tail -f logs/app.logCommon log messages:
| Message | Meaning |
|---|---|
✅ Email generated |
Success |
❌ Error generating |
Failed |
⚠️ Rate limit |
Too many requests |
📚 Retrieved templates |
Templates found |
Need more help?
- Check README.md for setup
- Review CUSTOM_TEMPLATES_GUIDE.md
- Check LEAD_SOURCING_GUIDE.md
| Shortcut | Action |
|---|---|
Ctrl/Cmd + K |
Focus search |
Ctrl/Cmd + N |
New email tab |
Ctrl/Cmd + B |
Batch tab |
Ctrl/Cmd + H |
History tab |
Ctrl/Cmd + A |
Analytics tab |
Ctrl/Cmd + T |
Toggle theme |
Single email: 20-30 seconds Lead generation: ~30 seconds per lead Batch processing: ~30 seconds per email
Yes! Copy the email and edit in your email client or text editor.
No hard limit, but recommended:
- Single: Unlimited
- Lead Gen: 50 per batch
- Batch: 200 per file
Yes! All emails are saved in the History tab.
Currently English only. Multi-language support coming soon.
Yes! All data is:
- Stored locally in SQLite
- Not shared with third parties
- Encrypted in transit
Export to Excel/CSV and import to any CRM. Direct integrations coming soon.
- Start with Single Email - Learn the system
- Try Lead Generation - Test automated prospecting
- Add Custom Templates - Improve personalization
- Use Batch Processing - Scale your outreach
- Monitor Analytics - Track and optimize
- 🎨 Visual template editor
- 🔗 CRM integrations
- 📧 Email sending directly from app
- 🤖 A/B testing
- 📱 Mobile app
- 🌍 Multi-language support
Need help? We're here for you!
- 📧 Email: support@emailcraft-ai.com
- 💬 Discord: Join our community
- 📖 Docs: Full documentation
- 🐛 Issues: GitHub Issues
Made with ❤️ by the EmailCraft AI Team
