AI Cold Outreach Personalization
Pricing
from $0.01 / 1,000 results
AI Cold Outreach Personalization
Transform cold outreach with AI-powered personalization. This Actor scrapes lead data from websites and generates highly personalized cold emails, LinkedIn DMs, and WhatsApp messages at scale. Stop sending generic messages—let AI research each lead and craft personalized outreach for you.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer

HappiTap
Actor stats
1
Bookmarked
1
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
AI Cold Outreach Personalization Actor
Transform cold outreach with AI-powered personalization. This Actor scrapes lead data from websites and generates highly personalized cold emails, LinkedIn DMs, and WhatsApp messages at scale. Stop sending generic messages—let AI research each lead and craft personalized outreach that actually gets responses.
What is AI Cold Outreach Personalization Actor?
AI Cold Outreach Personalization Actor is an AI-powered sales automation tool that researches your leads and generates personalized outreach messages across multiple channels. Simply provide a list of company websites, and the Actor will:
✅ Scrape their website to understand their business (homepage, pricing, features, about pages)
✅ Extract structured facts using GPT-4 (what they do, who they serve, pain points, tech stack)
✅ Score lead fit based on your offering
✅ Generate personalized cold emails, LinkedIn DMs, and WhatsApp messages
✅ Deliver results to Apify dataset and optionally to your CRM via webhook
Perfect for sales teams, agencies, founders, and SDRs who need to personalize 100+ outreach messages per day without manual research.
Why use AI Cold Outreach Personalization Actor?
The Problem with Cold Outreach
Generic cold emails get 1-3% response rates. Personalized outreach gets 15-30% response rates. But personalizing each message manually takes 15-20 minutes per lead. That's where this Actor comes in.
How This Actor Helps
- Save 15-20 minutes per lead - No more manual website research
- 10x your outreach volume - Process 100+ leads per day instead of 5-10
- Increase response rates - Personalized messages that reference specific facts from their website
- Multi-channel ready - Get email, LinkedIn, and WhatsApp messages in one run
- Compliance built-in - Automatic spam word filtering and best practices
Business Use Cases
- B2B Sales Teams: Research and personalize outreach for 100+ leads daily
- Marketing Agencies: Manage cold outreach campaigns for multiple clients
- Founder-Led Sales: Scale outreach without hiring an SDR team
- Event Follow-Up: Personalize follow-up messages after conferences or webinars
- Partnership Outreach: Research potential partners and craft personalized pitches
What can AI Cold Outreach Personalization Actor do?
This Actor combines web scraping, AI extraction, and message generation into one automated workflow:
🔍 Multi-Source Data Collection
- Scrape company websites (homepage, pricing, about, features pages)
- Extract text content, headings, and key information
- Collect evidence and quotes for personalization
- LinkedIn and Google Maps scraping coming soon
🧠 AI-Powered Fact Extraction
- What they do (business description)
- Who they serve (target customers)
- Pricing signals (free trial, pricing tiers)
- Tech stack signals (integrations, tools used)
- Trust signals (customer count, testimonials)
- Pain points and recent updates
📊 Intelligent Lead Scoring
- Rule-based + AI scoring for lead fit
- Confidence scores for each lead
- Personalization opportunity detection
- Automatic filtering of low-fit leads
✉️ Multi-Channel Message Generation
- Cold emails (140 words max) with 5 subject line options
- LinkedIn DMs (70 words max) for social outreach
- WhatsApp messages (45 words max) for direct messaging
- 3 variants per channel for A/B testing
- Compliance-first: No spam words, guarantees, or medical claims
🔗 Apify Platform Advantages
- Scheduled runs: Automate daily lead processing
- API access: Integrate with your existing tools
- Webhook delivery: Send results directly to your CRM
- Proxy rotation: Reliable scraping without blocks
- Monitoring: Track Actor performance and costs
- Dataset storage: Access results anytime via API
What data can AI Cold Outreach Personalization Actor extract?
The Actor extracts structured data from company websites and generates personalized messages. Here's what you get for each lead:
| Data Point | Description | Example |
|---|---|---|
| Company Description | What the company does | "AI-powered analytics for B2B sales teams" |
| Target Customers | Who they serve | "Mid-market B2B companies with 50-500 employees" |
| Pricing Signals | Pricing model and tiers | "Starts at $99/month, has free trial" |
| Tech Stack | Tools and integrations they use | "Salesforce, HubSpot, Stripe integrations" |
| Trust Signals | Social proof and credibility | "Used by 500+ companies, 4.8/5 on G2" |
| Pain Points | Challenges they mention | "Manual data entry, lack of insights" |
| Personalization Hook | Best angle for outreach | "Recently launched new dashboard feature" |
| Fit Score | How well they match your offer | 0.78 (0-1 scale) |
| Cold Email | Personalized email (3 variants) | Full email with subject lines |
| LinkedIn DM | Short LinkedIn message (3 variants) | Conversational opener |
| WhatsApp Message | Ultra-short message (3 variants) | Direct, friendly approach |
How to use AI Cold Outreach Personalization Actor to generate personalized messages
Step-by-step tutorial
-
Prepare your lead list
Create a list of companies with their website URLs. You can export from LinkedIn Sales Navigator, Apollo, or any lead database. -
Set up your OpenAI API key
Get an API key from platform.openai.com/api-keys. Choosegpt-4o-minifor best cost/performance. -
Configure your business information
Add your company name, what you offer, social proof points, and your call-to-action. -
Run the Actor
Click "Start" and the Actor will process each lead automatically. Processing takes 30-60 seconds per lead. -
Review results in the dataset
Download personalized messages in JSON, CSV, or Excel format. Or send directly to your CRM via webhook. -
Copy messages to your outreach tool
Use the generated messages in your email tool, LinkedIn, or WhatsApp. Test different variants to see what works best.
Video tutorial
Coming soon - subscribe to get notified when the video tutorial is ready
How much will it cost to generate personalized cold outreach messages?
Pricing breakdown
This Actor uses Apify compute units and OpenAI API tokens. You provide your own OpenAI API key, so you pay OpenAI directly for AI usage.
Estimated cost per lead: $0.02 - $0.05
- Apify platform: ~$0.01 per lead (web scraping and processing)
- OpenAI API: ~$0.01-$0.04 per lead (depends on model and pages scraped)
Example costs:
| Leads Processed | Apify Cost | OpenAI Cost (gpt-4o-mini) | Total Cost |
|---|---|---|---|
| 10 leads | $0.10 | $0.10-$0.40 | $0.20-$0.50 |
| 100 leads | $1.00 | $1.00-$4.00 | $2.00-$5.00 |
| 1,000 leads | $10.00 | $10.00-$40.00 | $20.00-$50.00 |
Free tier: Apify offers $5 free credit per month, which covers approximately 100-250 leads.
Cost factors:
- Pages scraped: More pages = higher cost (default: 5 pages per site)
- OpenAI model:
gpt-4o-miniis 10x cheaper thangpt-4o - Message variants: More variants = slightly higher OpenAI cost
Cost optimization tips:
- Use
gpt-4o-minifor 90% of leads (fast & cheap) - Limit
maxPagesPerSiteto 3-5 pages - Set
onlySendIfScoreGteto 0.6 to skip low-fit leads - Use
gpt-4oonly for high-value leads
Input
Minimal example
{"leads": [{"id": "lead_001","companyName": "Example Corp","websiteUrl": "https://example.com","contactName": "John Doe","role": "CEO"}],"business": {"yourCompanyName": "Your Company","yourOffer": "We help B2B companies generate qualified leads using AI","proof": ["Helped 50+ companies", "Average 3x ROI"],"cta": "Open to a quick call this week?"},"openaiApiKey": "sk-..."}
Full Configuration
{"leads": [{"id": "lead_001","companyName": "Example Corp","websiteUrl": "https://example.com","linkedinUrl": "","contactName": "John Doe","role": "CEO","email": "","location": "USA","notes": "Met at conference"}],"collect": {"sources": {"website": true,"linkedin": false,"googleMaps": false},"maxPagesPerSite": 5,"includePaths": ["/", "/pricing", "/features", "/about"],"excludePatterns": ["privacy", "terms", "cookie"],"timeoutMs": 45000},"extract": {"mode": "facts","fields": ["whatTheyDo","whoTheyServe","pricingSignals","techStackSignals","trustSignals","painPointsHints"]},"generation": {"language": "en","tone": "professional","personalizationLevel": "high","templates": {"coldEmail": true,"linkedinDm": true,"whatsapp": true},"variants": 3,"maxWords": {"coldEmail": 140,"linkedinDm": 70,"whatsapp": 45},"include": {"subjectLines": 5,"openingLines": 5,"ctaOptions": 3},"compliance": {"noMedicalClaims": true,"noGuarantees": true,"noSpammyWords": true}},"business": {"yourCompanyName": "Your Company","yourOffer": "What you're selling and how it helps","proof": ["Social proof 1", "Social proof 2"],"cta": "Open to a quick call?"},"delivery": {"webhookUrl": "https://your-crm.com/webhook","onlySendIfScoreGte": 0.55},"openaiApiKey": "sk-...","openaiModel": "gpt-4o-mini"}
Output
What you get for each lead
Each lead produces a comprehensive structured output with all research and generated messages:
{"leadId": "lead_001","companyName": "Example Corp","inputs": {"websiteUrl": "https://example.com","contactName": "John Doe","role": "CEO"},"collection": {"pagesFetched": 5,"sourcesUsed": ["website"],"evidence": [{"type": "quote","text": "AI-powered analytics for B2B teams","sourceUrl": "https://example.com"}]},"extractedFacts": {"whatTheyDo": "Provides AI-powered analytics for B2B sales teams","whoTheyServe": "Mid-market B2B companies with 50-500 employees","pricingSignals": "Starts at $99/month, has free trial","techStackSignals": "Uses Salesforce, HubSpot integrations","trustSignals": ["Used by 500+ companies", "4.8/5 on G2"],"painPointsHints": ["Manual data entry", "Lack of insights"],"bestPersonalizationHook": "Recently launched new dashboard feature"},"scoring": {"fitScore": 0.78,"confidence": 0.85,"reasons": ["Clear business description","Target customer identified","Strong personalization angle"],"opportunities": ["Recently launched new feature - good timing","Uses Salesforce - integration opportunity"]},"messages": {"coldEmail": [{"variant": 1,"subject": "Quick idea for Example Corp's new dashboard","body": "Hi John,\n\nSaw you just launched a new dashboard feature...","cta": "Open to a 15-min call this week?"}],"linkedinDm": [{"variant": 1,"text": "Hey John, noticed Example Corp just launched..."}],"whatsapp": [{"variant": 1,"text": "Hi John! Saw your new dashboard launch. Quick idea for you..."}],"subjectLines": ["Quick idea for Example Corp","Noticed your new dashboard feature","Thought of you after seeing your launch"],"openingLines": ["Saw you just launched a new dashboard feature","Noticed Example Corp serves mid-market B2B teams"],"ctaOptions": ["Open to a quick call?","Worth a 15-min chat?","Can I share a quick idea?"]},"metadata": {"timestamp": "2025-12-23T05:00:00.000Z","model": "gpt-4o-mini","runId": "abc123"}}
Advanced configuration options
Data Collection
- maxPagesPerSite: How many pages to scrape per website (default: 5)
- includePaths: Specific paths to prioritize (e.g.,
/pricing,/about) - excludePatterns: Patterns to skip (e.g.,
privacy,terms) - timeoutMs: Timeout per page in milliseconds (default: 45000)
Message Generation
- tone:
professional,friendly, ordirect - variants: Number of message variants to generate (default: 3)
- maxWords: Word limits for each channel
- compliance: Automatic filtering of spammy words and guarantees
Delivery
- onlySendIfScoreGte: Minimum fit score to generate messages (default: 0.55)
- webhookUrl: Optional webhook to send results to your CRM
OpenAI API key setup
Step 1: Get an API key
- Go to platform.openai.com/api-keys
- Sign up or log in to your OpenAI account
- Click "Create new secret key"
- Copy the key (starts with
sk-)
Step 2: Add to Actor input
- Paste the key in the "OpenAI API Key" field
- Choose your model (we recommend
gpt-4o-mini) - The key is stored securely and never logged
Step 3: Monitor usage
- Check your OpenAI usage at platform.openai.com/usage
- Set up billing alerts to avoid surprises
- Typical cost: $0.01-0.04 per lead with
gpt-4o-mini
Best practices for cold outreach personalization
Tips for best results
- Provide context about each lead - Add notes field with any information you have (e.g., "Met at conference", "Uses Salesforce")
- Set realistic fit score thresholds - Start with 0.5, then adjust based on results
- Use specific offers - "We help B2B SaaS companies reduce churn by 30%" works better than "We help companies grow"
- Include social proof - Add 2-3 specific proof points ("Helped 50+ companies", "Average 3x ROI")
- Limit pages scraped - 5 pages per site is usually enough for good personalization
- Test message variants - Use the 3 variants for A/B testing to find what works
- Review before sending - Always review AI-generated messages before sending
Compliance and best practices
✅ What the Actor does:
- Automatically removes spammy words ("free", "guarantee", "limited time")
- No guarantees or medical claims in generated messages
- References only factual information found on their website
- Follows email deliverability best practices
- Respects robots.txt and rate limits
❌ What you should NOT do:
- Send messages without reviewing them first
- Use the Actor to scrape personal data (emails, phone numbers)
- Send unsolicited messages in jurisdictions where it's illegal
- Make false claims about your product or service
Integration with CRM and outreach tools
Webhook integration
Send results directly to your CRM or outreach tool using webhooks:
{"delivery": {"webhookUrl": "https://hooks.zapier.com/hooks/catch/123456/abcdef/","onlySendIfScoreGte": 0.6}}
Zapier integration
Connect to 5,000+ apps using Zapier:
- HubSpot: Create contacts and add to sequences
- Salesforce: Create leads with personalized notes
- Pipedrive: Add deals with custom fields
- Google Sheets: Log all leads and messages
- Slack: Get notifications for high-fit leads
API integration
Fetch results programmatically using Apify API:
const ApifyClient = require('apify-client');const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });// Get dataset itemsconst { items } = await client.dataset('YOUR_DATASET_ID').listItems();// Process resultsitems.forEach(lead => {console.log(`${lead.companyName}: Fit score ${lead.scoring.fitScore}`);console.log(`Email: ${lead.messages.coldEmail[0].body}`);});
Export formats
Download results in multiple formats:
- JSON: For programmatic processing
- CSV: For Excel and Google Sheets
- Excel: For business users
- HTML: For easy viewing
FAQ and troubleshooting
Is it legal to scrape websites for cold outreach?
Yes, when done ethically. This Actor:
- Only extracts publicly available information
- Does not scrape personal data (emails, phone numbers)
- Respects robots.txt and rate limits
- References factual information from public websites
However, you are responsible for how you use the generated messages. Make sure you:
- Comply with GDPR, CAN-SPAM, and other regulations
- Have a legitimate business reason for outreach
- Include unsubscribe options in emails
- Don't send unsolicited messages where prohibited
Legal disclaimer: This Actor extracts only publicly available business information. You are responsible for ensuring your outreach complies with applicable laws and regulations. When in doubt, consult your legal team.
How accurate are the AI-generated messages?
The Actor uses GPT-4 for fact extraction and message generation, which is highly accurate but not perfect. We recommend:
- Always review messages before sending
- Verify facts mentioned in messages
- Test with a small batch first (10-20 leads)
- Adjust tone and personalization level based on results
Typical accuracy: 85-95% for fact extraction, 90-95% for message quality.
What if a website blocks scraping?
The Actor uses:
- Playwright for JavaScript rendering
- Rotating proxies to avoid blocks
- Rate limiting to be respectful
- Retry logic for failed requests
If a website consistently blocks scraping, the Actor will:
- Skip that lead and continue with others
- Log the error in the dataset
- Return partial results if some pages were scraped
Can I use this for LinkedIn or email scraping?
No. This Actor does not scrape:
- Email addresses
- Phone numbers
- LinkedIn profiles (coming in v2)
- Personal data
It only scrapes publicly available business information from company websites.
How do I improve response rates?
- Use high fit score threshold - Only message leads with 0.6+ fit score
- Test message variants - A/B test the 3 variants to find what works
- Personalize the offer - Make your offer specific to their industry/pain points
- Follow up - Send 3-5 follow-ups over 2 weeks
- Multi-channel approach - Use email + LinkedIn for best results
- Time your outreach - Send Tuesday-Thursday, 10am-2pm in their timezone
What OpenAI model should I use?
| Model | Speed | Cost | Quality | Best For |
|---|---|---|---|---|
| gpt-4o-mini | Fast | $0.01-0.02/lead | Good | High-volume outreach (100+ leads) |
| gpt-4o | Medium | $0.05-0.10/lead | Excellent | High-value leads, complex personalization |
| gpt-4-turbo | Medium | $0.03-0.06/lead | Very Good | Balance of cost and quality |
| gpt-3.5-turbo | Very Fast | $0.005-0.01/lead | Decent | Budget-conscious, simple personalization |
Recommendation: Start with gpt-4o-mini for 90% of leads. Use gpt-4o for high-value prospects.
Can I customize the message templates?
Currently, the Actor uses built-in templates optimized for response rates. Custom templates are coming in v2.
For now, you can:
- Adjust tone (professional, friendly, direct)
- Set personalization level (low, medium, high)
- Configure max words for each channel
- Customize CTA in business settings
How do I handle API rate limits?
OpenAI has rate limits based on your account tier:
- Free tier: 3 requests/minute, 200 requests/day
- Paid tier: 60 requests/minute, 10,000 requests/day
The Actor automatically:
- Respects rate limits with exponential backoff
- Retries failed requests
- Logs rate limit errors
For high-volume processing (100+ leads), we recommend:
- Use a paid OpenAI account
- Process leads in batches of 50
- Use gpt-4o-mini for faster processing
Where can I get help?
- Issues: Report bugs on GitHub Issues
- Questions: Contact support@apify.com
- Feature requests: Open an issue with
[Feature Request]tag - Documentation: See Apify Docs
Known limitations
- Language: Currently English only (multi-language coming in v2)
- Data sources: Only website scraping (LinkedIn/Google Maps coming in v2)
- Custom templates: Built-in templates only (customization coming in v2)
- Rate limits: Limited by OpenAI API rate limits
- Accuracy: AI-generated content should always be reviewed before sending
Related Actors and tools
Check out these related Actors for your sales automation workflow:
- Web Scraper - Extract data from any website
- LinkedIn Profile Scraper - Scrape LinkedIn profiles (coming soon: direct integration)
- Google Maps Scraper - Find local businesses (coming soon: direct integration)
- Email Finder - Find email addresses for leads
License
Apache-2.0
Built with
- Apify SDK - Actor development framework
- Playwright - Web scraping and automation
- OpenAI API - AI-powered fact extraction and message generation
- Cheerio - HTML parsing