auto-research-public
Autonomous cold email campaign launcher. Takes one target company domain, scrapes their…
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
$ npx -y skills add growthenginenowoslawski/coldoutboundskills --skill playbook-name-to-other-prospects --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/playbook-name-to-other-prospectsContext 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
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".
> 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"`
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.**
`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.
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.
| 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 |
| 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.
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.**
| # | 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.
**VERDICT: PASS 7/8.**
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. ProOpen-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.
Repo: growthenginenowoslawski/coldoutboundskills
Autonomous cold email campaign launcher. Takes one target company domain, scrapes their…
Use the Blitz API to find decision-makers at specific companies when you already have a list…
Creates cold email copy through a stepwise confirmation process. Use when writing email…
Generates 15-25+ cold outbound campaign ideas with targeting strategies, AI personalization…
Single "start here" orchestrator for new cold email operators. Asks infrastructure-status…
Complete beginner-friendly cold email toolkit. Walks from zero to launched campaign — domain…