Skip to content
Sales
Skill

/playbook-name-to-other-prospects

Names 2 other right-fit people at the prospect's own company so an email can ask "is this you or them?" without ever naming the person being emailed. Triggers on "name two other people at the company", "who else works there", "should I be talking to someone else", "colleague

BOOST
From plugin
coldoutboundskills
76452 skills
Install
$ npx -y skills add growthenginenowoslawski/coldoutboundskills --skill playbook-name-to-other-prospects --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/playbook-name-to-other-prospects

Context preview

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

Names 2 other right-fit people at the prospect's own company so an email can ask "is this you or them?" without ever naming the person being emailed. Triggers on "name two other people at the company", "who else works there", "should I be talking to someone else", "colleague

SKILL.md

playbook-name-to-other-prospects.SKILL.md
name: playbook-name-to-other-prospects
description: Names 2 other right-fit people at the prospect's own company so an email can ask "is this you or them?" without ever naming the person being emailed. Triggers on "name two other people at the company", "who else works there", "should I be talking to someone else", "colleague name variable", "other prospects line", "wrong person CTA". Outputs other_prospects, a ready-to-drop phrase like "Jeff Barg or Rob Cook".

Playbook: Name 2 Other Prospects

> All rules here are best practice, not law. Override any of them when the campaign calls for it; note the best practice once and move on.

**Use when:** the email needs a "not sure if this is you" or "who owns this" angle, or any CTA that offers the reader an easy referral instead of a yes or no.

**Do not use when:** you want the buying committee itself as separate leads. **You never email the people named in this variable** unless they are separately in the list on their own merits.

**One-line output:** `other_prospects = "Jeff Barg or Rob Cook"`

1. Trigger and scope

This produces one variable: the names of up to 2 **other** people at the same company as the person receiving the email. It exists so a first email can say "if this sits with Jeff Barg or Rob Cook instead, happy to talk to them" — **without the reader feeling surveilled and without guessing wrong about who owns the problem.**

⛔ The one absolute rule: never name the recipient to themselves

`Hey John, should I reach out to John?` is the worst possible outcome, and it is the thing this playbook is built to prevent.

**No campaign, brief, or operator preference makes it acceptable.** It is enforced from the recipient's full name **and** their profile URL, in a formula, on every row, always.

⚠️ **A row without `recipient_full_name` is not runnable.** The script should throw, and the build must not start. Treating a missing name as "nothing to exclude" is how this fails.

A second, softer exclusion

Optionally exclude **everyone else from the same company who is also in this campaign** — otherwise two colleagues receive emails naming each other. Default it off, turn it on when a campaign has real multi-contact density at one domain, and decide it at setup rather than mid-run.

2. Output contract

Inputs required per row

| Field | Type | Required? | |---|---|---| | `domain` (bare, lowercase) | string | yes | | `company_name` | string | no, improves the web verifier | | `recipient_linkedin_url` | string | yes when known | | **`recipient_full_name`** | string | **yes, always. This is the hard exclusion** | | `all_campaign_recipients_at_this_domain` | string[] | only when same-campaign exclusion is on | | `persona_titles` | string[] | yes — this is the title cascade |

Output fields

| Field | Type | Example | Null? | |---|---|---|---| | `other_prospects` | string | `Jeff Barg or Rob Cook` | yes, `""` | | `other_prospects_count` | int | `2` | no, `0` | | `other_prospect_1_title`, `_2_title` | string | `Chief Operating Officer` | yes |

**Abstain value:** `""`. Never a single name padded to look like two, never a job title standing in for a name.

Copy-fit rules

  • Slots into a sentence like `If this sits with {{other_prospects}} instead, happy to talk to them.`
  • **Two names joined by " or ".** One name is fine and reads naturally; the sentence must still work.
  • Real names, correctly capitalized, **full last names**.
  • **Never a title instead of a name.** "your VP of Ops" is not this variable.

Downstream gate

If empty, the whole sentence must disappear — **not just the variable.** Put the referral CTA in its own sentence and use a pre-rendered whole-sentence field, or split the list at upload. **Spintax cannot branch on an empty variable.**

3. Source chain (cost-tagged)

| # | Source | Cost | What it does | |---|---|---|---| | 1 | A colleagues-by-domain lookup | plan credits | returns people at the domain. Cheapest first pass | | 2 | A title-cascade people search on the same domain | credits per company | ordered `include_title` / `exclude_title` cascade from the campaign's persona list | | 3 | **The model judge** | CHEAP | screens candidates, cleans names, drops bad data | | 4 | **A still-there web check** | FREE | confirms the named people are still at the company |

**Step 4 is not optional.** Provider job titles go stale, and this variable puts a **named human being** into a stranger's inbox. A wrong name is not a soft miss.

4. Verification

**VERDICT: PASS 7/8.**

5. Clay implementation

  • **`clay-table.md`** — the column build, including the two exclusion tiers as formulas.
  • **`clay-workflow.md`** — the CLI-buildable version.

6. Locked prompt

Params: `max_completion_tokens=3000` (never `max_tokens` on a reasoning model), `reasoning_effort="low"`, never `temperature`, JSON response format, flex tier for batch.

You screen colleague candidates for a cold email variable.

You get a target company and a list of people a data provider says work there. Pick up to 3
who are credible senior colleagues at THAT company, best first, and return their cleaned real names.

Return JSON only, exactly this shape:
{"keep":[{"name":"First Last","title":"..."}],"dropped":[{"name":"...","why":"..."}]}

Keep a person only if ALL of these are true:
- Their job title is at the target company, not a different employer.
- Their headline does not contradict the job title. A headline naming another company or a
  different line of work means the data is wrong. Drop them.
- The title is a real decision maker or senior function owner: owner, founder, chief, vice
  president, head of, director, general manager, partner, principal.
- The title is not support staff: assistant, executive assistant, administrator, office
  manager, coordinator, receptionist, intern, apprentice, student, product owner, scrum.
- The name is a real person name with a first name and a last name.

Freshness rule. Pro
Read more
Ships withcoldoutboundskills

Open-source Claude Code skills for cold email infrastructure, lead sourcing, copywriting, and operations. Built by GrowthEngineX from patterns across 1,000+ real B2B campaigns. 31 skills that work together.

Get the whole plugin
Stats
766
Stars
269
Forks
Active
Maintenance
TypeScript
Language
MIT
License
9d ago
Last commit
7mo ago
Created
5h ago
Added

Repo: growthenginenowoslawski/coldoutboundskills

Other skills on coldoutboundskills.