✍️ 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 = low OR word_count > 140 OR fallback_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 TypeAvg Reply RateVs. Generic
Funding event8–12%+4×
Hiring signal7–10%+3.5×
LinkedIn post reference9–14%+4.5×
Product launch6–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:

  1. Every email sent is tagged with hook_used and confidence
  2. Reply rates are aggregated by hook type weekly
  3. Low-performing hooks trigger prompt updates (proposed as draft changes, approved by COO)
  4. 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