✍️ Personalization Agent
Automation Level: 85% AUTO
Generates a personalised email for every approved lead using their intelligence dossier. Output is sampled (10%) at [[07-Human-Review-Gates|Gate #2]] before sending.
Manifest Stage: S4 → See 01-Process-Manifest
Input: lead_intelligence_pack.json from 04-Research-Agent (post Gate #1 approval)
Output: personalized_emails.json → [[07-Human-Review-Gates|Gate #2]] → 05-Email-Sequence-Engine
🎯 Agent Objective
agent:
name: PersonalizationAgent
version: 1.0.0
model: claude-sonnet-4-6 # or GPT-4o — configurable
objective: >
Write a highly personalised first-touch email for each lead that:
1. References a specific, verifiable signal about them or their company
2. Connects that signal to a pain point we solve
3. Makes a single, clear, low-friction ask
4. Sounds like it was written by a human, not a tool
tone: conversational, direct, no fluff
length_target: 80–120 words # short is better
subject_line_variants: 2 # A/B tested via [[05-Email-Sequence-Engine]]🧠 Personalization Hook Logic
The agent selects the best hook angle based on the personalization_signals from 04-Research-Agent:
hook_priority:
1:
signal: recent_funding_event
angle: "Congrats on the raise — here's what high-growth teams use to scale outbound"
template_key: hook_funding
2:
signal: hiring_SDR
angle: "Noticed you're hiring SDRs — here's how to make each one 3× more effective"
template_key: hook_hiring_sales
3:
signal: posted_about_outbound
angle: "Saw your post on [topic] — we solved this exact thing for [similar company]"
template_key: hook_linkedin_post
4:
signal: product_launch
angle: "Congrats on [product/feature] — typically when teams need to scale outreach fast"
template_key: hook_product_launch
5:
signal: leadership_change
angle: "Saw [name] just joined as [role] — great time to rethink how you..."
template_key: hook_leadership_change
fallback:
condition: context_richness_score < 50
angle: "Role + industry pain point only — no forced personalization"
template_key: hook_generic_pain
note: "Fallback is better than fake personalization. See benchmark below."📋 Agent Prompt (Master)
This is the live prompt — update here to change agent behavior globally
You are an expert B2B sales copywriter. Write a cold email using these constraints:
**Lead:** {{first_name}} {{last_name}}, {{title}} at {{company}}
**Signal to use:** {{personalization_signal}}
**Hook angle:** {{hook_angle}}
**Pain point we solve:** {{pain_point_from_ICP}}
**Our product/service:** [insert product description]
**Ask:** 20-min discovery call
**Rules:**
- Open with the specific signal (1 sentence). Do not start with "I noticed" or "I saw".
- Sentence 2: connect their situation to a real problem
- Sentence 3–4: one outcome we delivered for a similar company
- Sentence 5: single CTA — low friction (e.g. "Worth a quick call this week?")
- Total: 80–120 words
- NO: "I hope this email finds you well", bullet lists, bold text, generic openers
- Tone: smart peer, not vendor
**Output format:**
Subject A: [subject line variant A]
Subject B: [subject line variant B]
Body: [email body]
Hook_used: [which signal was used]
Confidence: [high/medium/low — how genuine does this personalization feel?]
📤 Output Schema
{
"lead_id": "lead_001",
"personalized_at": "2026-04-01T13:00:00Z",
"subject_a": "Scaling past 50 SDRs without the chaos",
"subject_b": "Re: your recent hire in sales",
"body": "Sarah — congrats on the Series A. Teams at that stage usually find their outbound volume jumps faster than the tools holding it together...",
"hook_used": "recent_funding_event",
"confidence": "high",
"word_count": 97,
"personalization_score": 88,
"fallback_used": false,
"review_flag": false
}Auto-Flag Logic
If
confidence = lowORword_count > 140ORfallback_used = true AND batch_fallback_rate > 0.4, the email is auto-flagged for mandatory human review at Gate #2 — even outside the 10% sample.
📊 Personalization Quality Benchmarks
Tracked in 09-Metrics-and-Self-Improvement.
| Hook Type | Avg Reply Rate | Vs. Generic |
|---|---|---|
| Funding event | 8–12% | +4× |
| Hiring signal | 7–10% | +3.5× |
| LinkedIn post reference | 9–14% | +4.5× |
| Product launch | 6–9% | +3× |
| Generic pain point (fallback) | 2–3% | baseline |
Key Finding
Even a low-quality personalized hook (confidence: medium) outperforms a generic email by 2×. Never skip personalization just because context is thin — use the fallback template instead of forcing fake personalization.
🔁 Self-Improvement Loop
This agent participates in the improvement loop:
- Every email sent is tagged with
hook_usedandconfidence - Reply rates are aggregated by hook type weekly
- Low-performing hooks trigger prompt updates (proposed as draft changes, approved by COO)
- Prompt version is bumped with each approved change
prompt_versioning:
current: v1.0.0
changelog:
- version: v1.0.0
date: 2026-04-01
change: Initial prompt📎 Related Files
- 04-Research-Agent — Upstream: provides intelligence dossier
- 07-Human-Review-Gates — Gate #2: 10% sample review before send
- 05-Email-Sequence-Engine — Downstream: receives personalized emails
- 01-Process-Manifest — Stage S4 definition
- 09-Metrics-and-Self-Improvement — Hook performance tracking + prompt improvement