playbook-first-name-cleaning

Cleans raw CRM first-name fields into greeting-ready names for cold email campaigns.

Updated May 28, 2025
One-click install
npx skills add https://github.com/meloShaya/insteltech --skill playbook-first-name-cleaning-meloshaya
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: playbook-first-name-cleaning
Source: https://github.com/meloShaya/insteltech/tree/main/crm/library/skills/playbooks/playbook-first-name-cleaning
Command: npx skills add https://github.com/meloShaya/insteltech --skill playbook-first-name-cleaning-meloshaya

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Lead databases store first names exactly as scrapers found them: "Dr Matthew", "PAUL", "👋 James", "Kathryn (Katie)", or company names sitting in the person column. Pasted into "Hi {{first_name}},", these strings produce broken greetings that expose the email as mail-merged. This playbook converts each raw first-name string into the short spoken form a person would actually be greeted by, and withholds rows that have no safe answer. ## Core Features & Use Cases - Locked LLM prompt with deterministic guards: A measured gpt-4o-mini prompt strips honorifics, credential suffixes, emoji, possessive artifacts, and appended job titles, while six deterministic guards (G1-G6) catch placeholders, company-name overlap, acronyms, run-together capitals, non-Latin scripts, and invented letters. - Explicit abstain and review contract: Outputs first_name_clean, changed, confidence, and needs_review per row; unusable rows are excluded and routed to human review rather than falling back to generic greetings like "there" or "friend". - Clay implementation specs: Includes clay-table.md (column build with JavaScript guards) and clay-workflow.md (four-node CLI workflow with Python guards) for deploying inside Clay. - Use Case: Before launching a cold email campaign, run your lead list through the playbook so "Dr Sean Li We Are Actively Hiring At Antai Global" becomes "Sean", "AAA" at company "AAA Upholstery" is excluded, and "珊" is preserved intact and flagged for a native-language campaign. ## Quick Start Give the AI a lead row with its raw first name, last name, and company name, and ask it to return the cleaned greeting-ready first name using this playbook's prompt and guards.

Frequently Asked Questions about playbook-first-name-cleaning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I clean first names for cold email personalization?

Run each lead row through the locked prompt with the raw first name, last name, and company as inputs, then apply the six deterministic guards. The output is a Title Case first_name_clean value that drops directly into "Hi {{first_name_clean}}," with zero manual edits.

How do I handle lead rows where the first name field contains a company name?

Guard G2 compares the normalized first plus last name against the company name and flags overlaps for review. It is flag-only, never an auto-abstain, because solo consultants often have companies named after themselves.

What happens to blank or unusable first name values?

The playbook abstains with an empty string, never placeholders like N/A, there, or friend, because those render into live emails. Rows with empty output or any fired guard are excluded from the campaign and routed to human review.

Does this work with Chinese, Arabic, or other non-Latin names?

Non-Latin names are kept exactly as written, never transliterated or blanked, and flagged by guard G5. The downstream gate excludes them from English-language campaigns while preserving the name so they can be routed to native-language campaigns.

Why does the playbook forbid shortening the prompt to save tokens?

Head-to-head measurement showed a short prompt saved only $0.0145 per 1,000 rows because the long prompt gets 79% of tokens at the cached rate, while producing 3 broken greetings in 30 rows that none of the guards caught.

What are the limitations of LLM-based name cleaning?

Short ALL-CAPS tokens like TVK or KSM carry no information to decide whether they are initials or a business, so no model can resolve them; they are flagged for human review. The playbook also never looks up missing names and cannot detect stale rows where the person left the company.