# Email Personalization

> Draft a 90-word personalized first-touch cold email for a [COMPANY] prospect. Takes one company row (from leads_scored.csv or leads_enriched.csv) plus an optional buying signal, and produces a draft that follows the v1 sequence pattern. Use when drafting Email 1 of the 4-touch sequence (outreach/sequence-v1.md). Also triggers on "draft outreach email", "write cold email", "personalize email for {…

- **Type:** Skill
- **Install:** `agentstack add skill-vivekkhimani-gtm-tools-template-email-personalization`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [vivekkhimani](https://agentstack.voostack.com/s/vivekkhimani)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [vivekkhimani](https://github.com/vivekkhimani)
- **Source:** https://github.com/vivekkhimani/gtm-tools-template/tree/main/.agents/skills/email-personalization

## Install

```sh
agentstack add skill-vivekkhimani-gtm-tools-template-email-personalization
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Email personalization

Generate a personalized Email-1 cold outreach draft for a [COMPANY] ICP target, matching the v1 sequence pattern in `outreach/sequence-v1.md`.

## When to use

- Drafting first-touch emails for the top tier (T1/T2) of `pipeline/leads/leads_scored.csv`.
- Re-drafting after a signal changes (new buying signal, leadership change, compliance event).
- NOT for follow-up emails (2, 3, 4) — those are thread replies with simpler templates already in the sequence doc.

## Inputs

| Input | Required | Source |
|---|---|---|
| Company row | Yes | A single row from `pipeline/leads/leads_scored.csv` or `leads_enriched.csv`. At minimum: Company Name, Short Description, Keywords, Company Country, # Employees. |
| Recipient name + title | Yes | First name, title, ideally verified via Findymail/Hunter |
| Buying signal | Optional but recommended | One-sentence specific fact:  |
| Angle | Optional | One of: `[ANGLE_A]`, `[ANGLE_B]`, `[ANGLE_C]`. Default: pick the one best-matched to the signal.  |

## Process

1. **Read** `positioning/messaging.md`, `positioning/ICP.md`, and `outreach/sequence-v1.md`. The skill must conform to the voice and structural conventions already defined there. Do not invent claims that aren't in messaging.md.

2. **Classify segment** for the company (A/B/C per `ICP.md`). If unclear, infer from Short Description + Keywords, but prefer to ASK rather than guess on segment.

3. **Choose angle.** Pick the angle that maps to:
   - The provided signal. 
   - The segment (Segment A favors `[ANGLE_A]`; Segment B favors `[ANGLE_B]`; Segment C favors `[ANGLE_C]`).

4. **Generate signal sentence.** This is the *most important* sentence — first line of the email. It must reference a specific, verifiable fact about the company. Source it from:
   - The provided signal input (preferred).
   - The Short Description column (less specific but better than nothing).
   - A recent news snippet if web search is available.
   - DO NOT make up a signal. If you don't have one, return an explicit "needs signal research" output instead of a fabricated email.

5. **Draft.** Follow the structure in `outreach/sequence-v1.md` Email 1. Constraints:
   - 80–95 words in the body.
   - First sentence is the signal reference + the pain hook.
   - One proof point (citing the canonical traction: "[METRIC_DEPLOYMENTS] / [METRIC_USERS]" — or "replaced [INCUMBENT] at [ANCHOR_CUSTOMER]" if a switch-out proof lands harder for the segment).
   - One soft CTA ("worth a 15-min call?").
   - Plain text, no HTML, no formatting.
   - Lowercase, no exclamation marks, no "Hope this finds you well" or similar dead opens.

6. **Subject line.** Generate 3 candidate subject lines following the patterns in `outreach/sequence-v1.md`. ≤8 words. Lowercase. No question marks at the end unless it's a real question. Reference a specific token (a product/category term, company name, role) — don't go generic.

7. **Output as YAML** so it slots cleanly into Smartlead/Instantly imports:

```yaml
to: {recipient_email}
recipient_name: {FirstName} {LastName}
recipient_title: {Title}
company: {Company}
segment: {A|B|C}
angle: {[ANGLE_A]|[ANGLE_B]|[ANGLE_C]}
signal_used: "{one-sentence signal}"
subject_options:
  - {subject 1}
  - {subject 2}
  - {subject 3}
body: |
  Hi {FirstName},

  {body 80–95 words}

  — [FOUNDER]
  [DOMAIN] · [CALENDLY]
qc_checks:
  word_count: {N}
  has_signal: true|false
  has_one_cta: true|false
  no_banned_phrases: true|false  # checks "hope this finds you", "circling back", "just checking in", "synergy", "leverage", "solution", "platform"
```

## Banned phrases (never use)

- "Hope this finds you well"
- "Just checking in"
- "Circling back"
- "Touching base"
- "Synergy", "leverage", "solution" (as nouns), "platform" (generic)
- "10x", "best-in-class", "world-class"
- "I noticed you on LinkedIn..." (we are not on LinkedIn for this audience)
- Any subject line that's only "{Company}" with no other context

## Voice constraints

- Use specific [INDUSTRY] terms when they fit. 
- The reader is a [INDUSTRY] operator, not a SaaS buyer. Match their register.
- Honest claims only — canonical traction is **[METRIC_DEPLOYMENTS], [METRIC_USERS], [METRIC_COMPLETION]**, anchor customer **[ANCHOR_CUSTOMER]** with the incumbent replaced (name them only if cleared for external use). Don't inflate beyond these. Keep the wedge framing in cold email (the budgeted entry pain) — do NOT cold-open with "[PRODUCT_ONELINER]"; "platform" stays a banned generic noun here.

## Failure modes (return explicitly rather than fake it)

- **No signal available:** return `status: needs-signal-research` with a list of 3–5 specific signal queries to run. 
- **Segment ambiguous:** return `status: needs-segment-decision` with two interpretations and your recommendation.
- **Recipient title doesn't match [COMPANY]'s buyer personas:** return `status: wrong-persona` with a recommended persona to find instead.

## Example invocation

> Draft an Email-1 for [TARGET_COMPANY] (row in leads_scored.csv) targeting their [BUYER_TITLE]. Signal: 

Expected output: a YAML block as specified above, with the angle matched to the signal, 3 subject candidates, and a body that opens with the signal reference.

## Integration

This skill is invoked manually per email during the first weeks (we want human review of every draft). Once you've shipped ~50 drafts and feel confident the voice is right, wrap it in `scripts/draft_emails.py` to batch-process the top 20 weekly.

Track each draft in `outreach/drafts/_template/{company-slug}.yaml` (copy `_TEMPLATE.yaml` per prospect). Drafts are .gitignored if they include recipient emails; the templates without recipient emails are fine to commit for voice tuning.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [vivekkhimani](https://github.com/vivekkhimani)
- **Source:** [vivekkhimani/gtm-tools-template](https://github.com/vivekkhimani/gtm-tools-template)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-vivekkhimani-gtm-tools-template-email-personalization
- Seller: https://agentstack.voostack.com/s/vivekkhimani
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
