Cold Email Icebreaker
The Cold Email Icebreaker agent generates highly personalized 7-email cold outreach sequences for a specific contact using deep research on the person and their company.
Overview
Agent ID: cold-email-icebreaker
Output: Self-contained HTML document with complete 7-email sequence, research summary, and personalization tags.
Execution Time: 30-60 seconds (extensive research phase)
Accepts: LinkedIn URL or email address
Sample Output
See it in action: Josh Aborwitz Email Sequence
This sample shows a complete 7-email sequence with person insights, company context, icebreaker hooks, and anti-AI detection guidelines.
Value Proposition
Creates cold email sequences that actually get responses by:
- Deep personalization from contact research (posts, career history, interests)
- Company-specific hooks (not generic value props)
- Human-sounding copy that avoids AI tells
- Full 7-email sequence with varied approaches
Quick Start
1. Start an Email Sequence Generation
curl -X POST "https://phoenix.hginsights.com/api/agents/v1/agents/cold-email-icebreaker/runs" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"contactIdentifier": "https://linkedin.com/in/username"
},
"params": {
"campaignGoal": "meeting",
"productContext": "Sales intelligence platform",
"tonePreference": "conversational"
}
}'
Response:
{
"run_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued"
}
2. Poll for Completion
curl "https://phoenix.hginsights.com/api/agents/v1/runs/{run_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
3. Retrieve the HTML Sequence
curl "https://phoenix.hginsights.com/api/agents/v1/runs/{run_id}/artifacts" \
-H "Authorization: Bearer YOUR_API_KEY"
Input Parameters
Required: Contact Identifier
| Field | Type | Description |
|---|---|---|
contactIdentifier | string | LinkedIn URL (e.g., https://linkedin.com/in/username) OR email address |
Optional: Context Parameters
| Field | Type | Default | Description |
|---|---|---|---|
senderContext | object | {} | Info about sender (name, title, company, mutualConnections) |
campaignGoal | string | meeting | Goal: meeting, reply, or referral |
productContext | string | - | What you're selling (for relevance) |
tonePreference | string | conversational | Tone: formal, conversational, bold, or casual |
Example with Full Context
{
"input": {
"contactIdentifier": "https://linkedin.com/in/sarahchen-revops"
},
"params": {
"senderContext": {
"name": "Alex",
"title": "Account Executive",
"company": "HG Insights",
"mutualConnections": ["Mike at Gong"]
},
"campaignGoal": "meeting",
"productContext": "Sales intelligence data to improve pipeline quality",
"tonePreference": "conversational"
}
}
7-Email Sequence Structure
| Purpose | Day | Length | |
|---|---|---|---|
| 1 | Icebreaker - Personal hook, establish relevance | 1 | 50-80 words |
| 2 | Value - One specific pain point you solve | 3 | 60-100 words |
| 3 | Social proof - Brief case study or name drop | 6 | 50-80 words |
| 4 | Different angle - New hook or approach | 10 | 60-100 words |
| 5 | Quick bump - Short, casual follow-up | 14 | 30-50 words |
| 6 | Resource share - Offer something valuable, no ask | 18 | 50-80 words |
| 7 | Breakup - Respectful close, leave door open | 23 | 40-60 words |
HTML Output
The agent produces a self-contained HTML document that includes:
- Contact Header - Name, title, company, LinkedIn URL, email
- Research Summary - Person insights and company insights
- Icebreaker Hooks - Best personalization opportunities identified
- 7-Email Cards - Each with:
- Subject line
- Email body
- Personalization tags used
- Word count and CTA type
- Sequence Strategy - Primary hook, backup angles, best send times
- Do Not Say List - AI tells specific to this prospect
Anti-AI Detection
The agent follows strict guidelines to avoid AI-sounding copy:
Banned Phrases
- "I hope this email finds you well"
- "I wanted to reach out"
- "I came across your profile/company"
- "Revolutionary/game-changing/cutting-edge"
- "Please let me know if you're interested"
Human-Sounding Patterns
- Start mid-thought sometimes
- Use "you" more than "I" or "we"
- One ask per email, max
- Vary sentence structure and length
- End with questions, not statements
Personalization Depth Levels
| Level | Example | Quality |
|---|---|---|
| None | "Companies like yours..." | Bad |
| Surface | "I see you're at Acme" | Weak |
| Company | "With your EMEA expansion..." | Okay |
| Personal | "Your post about pipeline quality..." | Good |
| Specific | "When you said 'quality > quantity' last week..." | Best |
Use Cases
AE Outbound Prospecting
Generate personalized sequences for high-value prospects before cold outreach.
BDR High-Volume Prospecting
Create varied, personalized emails that avoid the spam folder and AI detection.
Account-Based Marketing
Develop multi-touch sequences tailored to specific accounts and personas.
Re-engagement Campaigns
Create fresh approaches for prospects who've gone cold.
Error Handling
| Scenario | Behavior |
|---|---|
| LinkedIn URL invalid | Returns HTML error page with format guidance |
| Contact not found | Proceeds with web search only, notes limited personalization |
| No personalization found | Flags as "low personalization risk," uses company-level hooks |
| Company unknown | Proceeds with contact-only personalization |
MCP Tools Used
| Tool | Purpose |
|---|---|
contact_search | Find contact from LinkedIn URL or email |
contact_enrich | Get full profile (career history, skills) |
web_search | Find posts, talks, articles by the person |
company_firmographic | Company context (size, industry) |
company_technographic | Tech stack for relevance (optional) |
Example: Python Integration
import requests
import time
API_KEY = "phx_your_api_key_here"
BASE_URL = "https://phoenix.hginsights.com/api/agents"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
def generate_cold_email_sequence(
contact_identifier: str,
product_context: str = None,
campaign_goal: str = "meeting"
) -> str:
"""Generate a 7-email cold outreach sequence."""
# 1. Start the run
payload = {
"input": {"contactIdentifier": contact_identifier},
"params": {"campaignGoal": campaign_goal}
}
if product_context:
payload["params"]["productContext"] = product_context
response = requests.post(
f"{BASE_URL}/v1/agents/cold-email-icebreaker/runs",
headers=headers,
json=payload
)
response.raise_for_status()
run_id = response.json()["run_id"]
print(f"Started run: {run_id}")
# 2. Poll for completion
while True:
status_response = requests.get(
f"{BASE_URL}/v1/runs/{run_id}",
headers=headers
)
status = status_response.json()
print(f"Status: {status['status']}")
if status["status"] == "succeeded":
break
elif status["status"] == "failed":
raise Exception(f"Run failed: {status.get('error')}")
time.sleep(5)
# 3. Get artifacts
artifacts_response = requests.get(
f"{BASE_URL}/v1/runs/{run_id}/artifacts",
headers=headers
)
artifacts = artifacts_response.json()["artifacts"]
html_artifact = next(a for a in artifacts if a["artifact_type"] == "html")
return html_artifact["url"]
# Usage
sequence_url = generate_cold_email_sequence(
"https://linkedin.com/in/username",
"Sales intelligence platform"
)
print(f"Sequence available at: {sequence_url}")
Best Practices
- Provide product context - Helps the agent tailor messaging to your specific solution
- Include sender context - Mutual connections and sender info improve personalization
- Review and customize - Use the sequence as a starting point, add your personal touch
- Test different tones - Try
boldfor senior executives,casualfor peers - Use the "Do Not Say" list - These phrases will trigger spam filters and AI detection
Next Steps
- Account Research Brief - Comprehensive account intelligence before outreach
- Buying Committee Mapper - Identify all stakeholders
- API Reference - Complete endpoint documentation