Skip to content
Automation
Skill

/email-personalization

Write hyper-personalized cold email icebreakers for B2B leads using their company intelligence and LinkedIn

From plugin
benai-skills
77152 skills17 agents1 hook4 MCP

Claude Code

$ npx -y skills add naveedharri/benai-skills --skill email-personalization --agent claude-code

SKILL.md

email-personalization.SKILL.md
name: email-personalization
description: Write hyper-personalized cold email icebreakers for B2B leads using their company intelligence and LinkedIn
  data. Use this skill whenever the user says "write icebreakers", "personalize emails", "email personalization",
  "cold email first lines", "write opening lines", "personalize outreach", "create email openers", or has
  enriched leads and wants to write the first line of a cold email for each. Also trigger when the user has
  a CSV with lead intelligence columns and wants to generate personalized outreach copy. This skill produces
  icebreakers that sound human, reference real observations, and tie back to the user's product/service.
disable-model-invocation: true

Email Personalization

You are writing hyper-personalized icebreakers (the first 1-3 sentences of a cold email) for B2B leads. Each icebreaker must demonstrate that real research was done, reference a specific observation about the lead, and tie it back to why the email is worth their time.

Before You Start

You need three things:

1. **The enriched lead list** - a CSV or JSON with lead intelligence data (company info, LinkedIn profile, LinkedIn posts, general web intelligence) 2. **The user's product/service** - what are they selling? You need to understand this deeply so you can tie observations to relevance. Ask: "What exactly are you selling, and why would these leads care?" 3. **The user's ICP context** - who are these leads? What niche, what vertical, what role? This shapes what observations matter.

If the user has already provided this context earlier in the conversation, don't ask again. But if you're starting fresh, get all three before writing a single icebreaker.

The Process

Step 1: Understand the Product

Before writing anything, internalize what the user is selling and why it matters to the leads. Ask yourself:

  • What problem does this product solve for these specific leads?
  • What signals in their data would indicate they need this?
  • What would make a lead think "this person actually understands my business"?

This understanding shapes EVERY icebreaker. A good icebreaker connects an observation to a reason the email matters. Without understanding the product, you're just flattering people.

Step 2: Write 2 Test Icebreakers

Always do this first. Pick the first 2 leads, write icebreakers for each, and present them to the user for approval. This calibrates the tone, style, and angle before you scale.

Present multiple options per lead (2-3 variations) so the user can pick the style they prefer.

Step 3: Get Approval and Adjust

The user will give feedback. Common adjustments:

  • "Too formal" / "Too casual"
  • "Don't reference X, reference Y instead"
  • "I like option A's style, apply it everywhere"
  • New rules to follow

Incorporate ALL feedback before scaling.

Step 4: Spawn Sub-Agents

Once approved, spawn `icebreaker-writer` sub-agents to handle the remaining leads. Each sub-agent handles 5 leads.

**Every `icebreaker-writer` sub-agent must receive:** 1. The batch of leads (all columns: name, company, general intelligence, LinkedIn data) 2. The full set of writing rules (copy them verbatim from the rules section below plus any user-added rules) 3. The approved example icebreakers (the 2 you wrote plus any the user provided) 4. The user's reference examples (if they provided any) 5. Clear context on what the user is selling and why it matters

**Critical: Spawn ALL `icebreaker-writer` sub-agents in a single message.** If there are 38 remaining leads, that means 8 sub-agents spawned simultaneously. For 500 leads, that's 100 sub-agents in one shot. Every sub-agent launches at once for maximum parallelism.

**Never batch sub-agents sequentially.** Do not spawn 5, wait, spawn 5 more. Spawn ALL in one message. The Task tool supports unlimited concurrent sub-agents.

Step 5: Compile and Quality Check

After sub-agents complete: 1. Collect all icebreakers 2. Scan for rule violations (see Quality Checks below) 3. Fix any violations programmatically 4. Add an `Email Personalization` column to the CSV 5. Match icebreakers to leads by name 6. Handle name mismatches (MBA suffixes, middle names, etc.)

Writing Rules

These rules are non-negotiable. Every icebreaker must follow ALL of them.

Tone and Style

  • Write like a real person. Casual, direct, no corporate speak.
  • Keep it to 1-3 sentences. No fluff, no filler.
  • The icebreaker should feel like it was written by someone who actually looked at their stuff, not by an AI that scraped their LinkedIn.
  • Use contractions. Write "you're" not "you are", "we've" not "we have".
  • Slight imperfections are fine and even desirable. A typo-free, perfectly structured sentence can read as AI-generated.

Conciseness and Punch

  • Be concise and punchy. Every word must earn its place.
  • Remove filler phrases like "I thought I'd reach out because", "reason I'm reaching out is". Get to the point.
  • Don't pad icebreakers with generic context. If the observation is specific, the reader will understand why you're emailing.

Make It Personal, Not Company-Level

  • **Write about the PERSON, not just their company.** Reference things they personally said, posted, or did. Not just "your company does X" but "saw you talking about X" or "I know you've been focused on X."
  • If there's LinkedIn post data, personal interests, or role-specific info, USE IT. The icebreaker should feel like it's written to a human, not to a company.
  • Only fall back to company-level observations when there's genuinely no personal data available.
  • Generic company descriptions like "content for cause-driven brands in the detroit area" are NOT acceptable. That's what an AI scraper would write. Be specific or don't mention it.

Assumptive Tone

  • Be assumptive, not tentative. Say "I know you're doing SEO for X in Y" not "Since you're doing SEO and..."
  • Don't hedge. Don't say "I was wondering if..." or "thought this might
Read more
@naveedharri
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

77152 skills17 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
77
Star history of naveedharri/benai-skills on GitHub, a chart by star-history.com

Other skills on benai-skills.

ads-audit

ads-audit

Full multi-platform paid advertising audit with parallel subagent delegation. Analyzes Google Ads, Meta Ads, LinkedIn Ads, TikTok…

ads-budget

ads-budget

Budget allocation and bidding strategy review across all ad platforms. Evaluates spend distribution, bidding strategy…

ads-competitor

ads-competitor

Competitor ad intelligence analysis across Google, Meta, LinkedIn, TikTok, and Microsoft. Analyzes competitor ad copy, creative…

ads-creative

ads-creative

Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms. Detects creative…

ads-google

ads-google

Google Ads deep analysis covering Search, Performance Max, Display, YouTube, and Demand Gen campaigns. Evaluates 74 checks across…

ads-landing

ads-landing

Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n11d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about email-personalization.

Which coding agents can use email-personalization?
email-personalization installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.