Skip to content
Sales
Skill

/personalize-email

Cold email personalization skill for Claude Code and Codex: assemble an intent and firmographic signal pack for one prospect so a downstream LLM can compose a truly personalized outbound email. Pulls company firmographics, recent business events, funding, workforce trends,

BOOST
From plugin
explorium-public-skills
25822 skills
Install
$ npx -y skills add explorium-ai/gtm-skills --skill personalize-email --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/personalize-email

Context preview

The summary Claude sees to decide when to auto-load this skill.

Cold email personalization skill for Claude Code and Codex: assemble an intent and firmographic signal pack for one prospect so a downstream LLM can compose a truly personalized outbound email. Pulls company firmographics, recent business events, funding, workforce trends,

SKILL.md

personalize-email.SKILL.md
name: personalize-email
description: "Cold email personalization skill for Claude Code and Codex: assemble an intent and firmographic signal pack for one prospect so a downstream LLM can compose a truly personalized outbound email. Pulls company firmographics, recent business events, funding, workforce trends, LinkedIn posts, website changes, and intent topics. Returns a structured signal brief ready for cold outreach, follow-up, re-engagement, or expansion emails. Use for outbound, lead generation, account-based selling, and signal-led email personalization. Triggers on 'personalize an email', 'draft outreach', 'outbound to X', 'find a hook for this contact', 'build me a personalization brief'. Works in Claude Code, Codex, and Hermes-Agent."

Personalize Email

Gather every personalization signal for a single prospect and their company so the calling model can write a sharp, specific email. This skill does NOT draft the email: it returns a structured brief; the calling model composes copy.

Input

  • Prospect identifier (required): full name + company, full name + company domain, LinkedIn URL, email, or a role at a company ("CFO at Notion") with no name.
  • Use case (default `cold_outbound`): one of `cold_outbound`, `discovery_follow_up`, `demo_recap`, `re_engagement`, `renewal`, `expansion`, `objection_handling`. Drives which signals matter most.
  • Recency floor (optional): days. Defaults: 14 for intent topics, 30 for executive moves, 90 for company events.
  • Sender / offering note (optional): one line on what the user sells, used only to rank signals.
  • Prior touchpoint summary (optional, recommended for follow-up, recap, renewal): what was last discussed, when, who was involved.

Workflow

1. Resolve the prospect. If a LinkedIn URL or email is supplied, match the person directly. Otherwise match the business first to anchor the company, then match the person by full name plus the resolved company. On miss, retry first plus last name. Capture prospect_id, business_id, full_name, job_title, linkedin_url. If either id fails, stop and surface the gap. 2. Resolve-by-role path (the user named a seat, not a person). Matching by full_name="CFO" silently returns nothing: do NOT use that path. Instead match the business, then sample prospects at that account filtered by canonical job title and seniority. This is the dominant cold-outbound shape when the user knows the seat but not the person. 3. Domain-variant sanity check at match time. After firmographics land, if the input was a major brand but the resolved entity has headcount 1-50 and looks like a registered-agent shell, retry with the alternate domain (.so vs .com) or the company-name string. Do not proceed with the wrong account. 4. Discover canonical values for any free-text dimension the user named (industry, technology, city) before applying a filter. Show top matches and wait for the user to pick. 5. Enrich the company. Firmographics first (industry, size, headcount, revenue range, HQ, age). Then pull recent signals broadly: funding and acquisitions, workforce trends, LinkedIn posts, website changes, stated challenges and strategic priorities. Add technographics only when the offering implies a tech-stack pitch. Add competitive landscape only for objection_handling or competitive displacement framing. 6. Fetch business events on the last 90 days. Keep every event with a date; drop those older than the use-case recency floor during scoring. Event-attribution sanity check: ensure events tie to the matched business, not blended across a parent / subsidiary tree. 7. Enrich the prospect. Profile (seniority, department, tenure in seat, last 2 prior employers). Pull contacts only when the user intends to send outreach: default email-only (cheaper), switch to email + phone only when phone is required (SDR dialer flows). Skip contacts entirely otherwise. Fetch prospect events for job-change or promotion moves. Per-prospect post history is a current gap; pull the employer's recent posts as a substitute for company voice. 8. Score and rank signals. Stamp each with age in days and a source tag. Score recency x persona relevance x use-case fit. Recency: 0-14d = 1.0, 15-30d = 0.7, 31-60d = 0.4, 61-90d = 0.2, older = drop. Persona: CFO maps to funding / earnings / M&A; CRO and VP Sales map to hiring surges, product launches, GTM posts; CTO and VP Eng map to website changes, technographics, engineering hires; CEO maps to all. Use case: cold outbound and re-engagement lean on fresh events; follow-up, recap, renewal, expansion lean on prior touchpoint plus role and company posts; objection handling leans on competitive landscape and strategic insights. Rank top 5; mark the highest `anchor_candidate`, next `runner_up`. 9. Build the persona cue block. Seniority, department, tenure in seat, last 2 prior employers. Tone hint by seat: executive (outcome first, numeric), director / manager (problem then approach then outcome), IC (workflow friction then concrete benefit). Pull 1-3 direct quotes or themes from recent posts when available. 10. Assemble the proof hook list. Suggest peer-segment framings by industry and size band. Do not invent customer names or stats; flag only categories where the calling model could later plug real customer proof. 11. Flag gaps and refuse conditions. For cold_outbound or re_engagement, if zero events pass the recency floor and zero relevant posts exist, mark `signal_layer: thin` and recommend warming via another channel. For follow-up family without a prior touchpoint summary, surface the gap and ask; do not fabricate. If profile last update is older than 12 months or the resolved company does not match the user-named company, add `stale_record: true` and recommend verifying.

Output Format

  • TL;DR: one paragraph with prospect name, title, company, the single strongest anchor signal with age, and the persona tone hint.
  • Prospect: full name, job title, company name, company domain, LinkedIn URL, prospect_i
Read more
Ships withexplorium-public-skills

Open-source B2B data enrichment, prospecting, and outbound skills for Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, Grok, OpenCode, Windsurf, Hermes-Agent, OpenClaw, Claude Cowork, and 60+ other agents — powered by Explorium and Vibe Prospecting.

Get the whole plugin

Other skills on explorium-public-skills.