# /prep-cold-outreach - Draft-Only Cold Outreach Prep
You prepare cold outreach for Conversint. You sit between `/value-signal-scan` and manual founder review.
Hard rule: **never send email**. This skill may create Gmail Drafts only. Patrick or Daniel reviews and sends manually outside the skill.
The output should be useful even when the first action is a phone call. For owner-operated local service businesses, prefer phone-first, but still land the Gmail Draft so the draft doubles as a talk script and written follow-up.
Load Context
Before preparing outreach, read:
- `./references/dependencies/conversint-current/references/org/identity.md`
- `./references/dependencies/conversint-current/references/org/pricing.md`
- `./references/dependencies/conversint-current/references/org/anti-patterns.md`
- `./references/dependencies/conversint-current/references/org/positioning.md`
- `./references/dependencies/conversint-current/references/org/value-signals.md`
- `./references/dependencies/conversint-current/references/prospect-signal-model.md`
- `./references/dependencies/conversint-current/references/sales-evidence.md` — use only after a prospect becomes a known CRM opportunity; it does not replace public prospect scoring
- `./references/dependencies/conversint-current/references/output-paths.md` — use its filename and storage rules for any local outreach artifact
- `./references/dependencies/conversint-current/references/google-workspace-access.md` — use the repo-local Google Workspace auth and `gws` conventions
- `./references/dependencies/conversint-current/references/crm-handoff.md` — route known-opportunity updates through `/crm`; this skill does not write CRM directly
- `./references/dependencies/conversint-current/references/patrick-outreach-voice.md` — especially Register A-cold for true cold first-touch; drives the give-first, no-meeting-ask posture
- `./references/dependencies/conversint-current/references/email-standards.md` — Gmail rendering mechanics for real lists, bold list prefixes, and inline links
- `./references/dependencies/conversint-current/references/sales-playbook.md` — the tactical sales motion; use for plain-English service mapping and objection language, not as permission to open with a meeting ask
- `research-thought-leadership/conversint-messaging-optimization/active-message-catalog.md` — select a current, evidence-bounded problem/value option for Conversint cold outreach; it does not replace the prospect-specific signal
- `./references/dependencies/conversint-current/references/browser-etiquette.md`
- `./references/dependencies/conversint-source/.claude/skills/gmail/SKILL.md`
Before selecting a catalog message, run:
```bash .claude/skills/marketing-learning-loop/scripts/validate_active_message_catalog.py ```
If it fails, do not use the catalog. Report that it is stale or structurally invalid and route its refresh to `/marketing-learning-loop`.
Fetch `https://conversint.ai/services` live before mapping an offer. The services page is canonical, including new services such as Fractional Staffing or AI Augmented Workforce once they are live.
Apply these constraints:
- Drafts must be outcome-oriented consulting, not "AI replacement."
- Do not use banned terms or consulting jargon listed in org references.
- Do not imply Conversint will eliminate the open role.
- Do not send, schedule-send, auto-reply, bulk-send, connect, DM, or otherwise contact anyone.
- Use first-party tooling only for Gmail drafts: the repo-local `gws` path or `.claude/skills/gmail/scripts/send_with_signature.py --draft`.
Inputs
Accept:
- A `/value-signal-scan` report path.
- One or more `customers/Discovered Opps/<Company> - Discovered Opportunity Profile.md` files.
- A pasted list of P1/P2 prospects.
- A CRM filter or company/opportunity names.
Flags:
- `--limit N` - number of opportunities to prep.
- `--priority P1|P2` - restrict by priority.
- `--phone-first` - prefer call script framing; default on for owner-operated local service businesses.
- `--drafts` - create Gmail Drafts after showing the draft plan. Drafts only; never send.
- `--dry-run` - do not create Gmail Drafts; produce scripts/drafts in Markdown only.
If the input lacks prospects, ask one concise question: *"Which scan report, discovered-opp profiles, or CRM filter should I prep outreach for?"*
Workflow
1. Select Prospects
Work P1 first, then P2. Do not prep P3 unless the user explicitly asks.
For each prospect, extract:
- Company name and website.
- Priority and drivers.
- Hiring Pain, Website Pain, and Value Signals.
- Specific evidence to personalize the opener.
- Suggested service mapping.
- Any free contact surface already found.
- Phone number if present.
2. Contact Discovery
Use web-first discovery:
- Company website contact/about/team/leadership pages.
- Job posting contact info, if public.
- Public business directories or state/local records when relevant.
- LinkedIn fallback only under `./references/dependencies/conversint-current/references/browser-etiquette.md` caps and only when browser access is available.
Prefer:
- Owner/founder/operator for owner-operated SMBs.
- COO, GM, Operations, Revenue, Sales, Marketing, Practice Manager, Office Manager, or Controller depending on signal lane.
- For SDR scans: founder, head of sales, sales manager, revenue leader.
- For internal software staffing: COO, IT/business systems leader, operations leader, or founder.
Do not use scraped private databases, guessed email blasts, or hidden/staffing-agency client identities.
3. Email Verification
If an email verification provider is configured, verify every address before creating a Gmail Draft. ZeroBounce is preferred for the early workflow if an API key is available.
If no verification provider is configured:
- Do not block phone-first scripts.
- For email drafts, mark the address as `unverified`.
- Prefer saving a draft only when the user explicitly accepts the verification gap.
Never send to unverified addresses from this skill.
4. Choose Channel
Use this default:
- **Phone-first:** owner-operated local service businesses, home services, trades, small clinics, small legal firms, local franchises, logistics/operators with public phone numbers.
- **Email-first:** professional services, B2B services, healthcare admin groups, internal software/IT staffing, marketing analyst and SDR staffing, companies with clear named contacts and verified email.
Even when phone-first, create the Gmail Draft as the call script / follow-up draft when `--drafts` is requested.
5. Draft Content
Before writing, select the message angle:
1. Match the public signal to one catalog entry. Prefer an `Active candidate` only when its qualifying evidence is present. 2. Use `Evidence-only` entries only with direct supporting evidence. Do not use one because it is a convenient generic pain. Never use `Held` or `Retired` entries. 3. If two entries fit equally well, list the recommended angle and up to two alternatives with a one-line evidence reason. For batch preparation, choose the best fit and continue; do not halt the run for a preference that can be reviewed in the draft plan. 4. If no entry fits, write from the direct public signal and report `Message: none - no catalog match`. Do not force campaign language into the email.
Then write a short plain-text first touch in `./references/dependencies/conversint-current/references/patrick-outreach-voice.md` Register A-cold:
- Subject: specific, low-friction, not clickbait.
- Body: 80-180 words unless the user asks otherwise.
- Give something real first: a tiny audit finding, 2-line fix, stack-map observation, vendor-contract question list, AI-visibility read, or other useful artifact the prospect can keep without replying.
- Write from the matched demand-model cell: detected signal -> vertical manifestation -> specific give. Do not lead with a generic pain like "your tools don't talk" when the evidence supports a concrete version.
- Mention one concrete public signal and tie it to emotional relief, time back, fewer headaches, or a clear business outcome.
- Map internally to a live Conversint service, but keep the email plain-English; do not force the service name into the first touch unless it sounds natural.
- Ask for nothing in the first message: no calendar link, no "worth 15 minutes," no "book a call." A soft closer like "hand this to whoever owns the site; no need to talk to me for it" is preferred.
- Use links only when the link is the give itself or the user asks.
- If the draft includes a list or link, follow `./references/dependencies/conversint-current/references/email-standards.md`: use real Gmail-rendered list markup, start each list item with a 1-2 word bold prefix, and inline links behind descriptive text.
For phone-first prospects, include a talk-script block:
```text Call opener: Hi <Name>, this is <Patrick/Daniel> with Conversint. I did a little homework on <specific public signal> and found <one useful finding>. I can send you the quick note even if we never talk; it looked like something your team could use.
If they ask "what do you do?": <plain-English answer mapped to the matched value-family entry and live service>
If voicemail: <one-sentence voicemail offering to send the useful finding; no calendar ask> ```
The Gmail Draft body may include the same script above the email follow-up if the user wants a call script in Drafts. Label it clearly so Patrick can use it during the call.
6. Gmail Draft Creation
Drafts are created through the existing Gmail wrapper:
```bash .claude/skills/gmail/scripts/send_with_signature.py \ --to 'recipient@example.com' \ --subject 'Subject' \ --body-file '<draft-body.txt>' \ --draft ```
If the draft includes formatted lists or inline links, create a Gmail-ready HTML body file and use:
```bash .claude/skills/gmail/scripts/send_with_signature.py \ --to 'recipient@example.com' \ --subject 'Subject' \ --body-html-file '<draft-body.html>' \ --draft ```
Rules:
- Always use `--draft`.
- Use `--body-html-file` whenever `./references/dependencies/conversint-current/references/email-standards.md` calls for real list or inline-link markup.
- Never call the wrapper without `--draft`.
- Never call `gws gmail +send` without `--draft`.
- Never call `gws gmail users drafts send`.
- Show the user the draft plan before creating multiple drafts unless the user explicitly asked to create them.
- If a dedicated cold-outreach mailbox/domain is configured as a Gmail alias, use `--from <alias>`. Otherwise draft in the currently configured Conversint mailbox and clearly note the sender/domain limitation.
Output
Return
- Prospects processed.
- Contact found / not found.
- Email verification status.
- Recommended channel: phone-first or email-first.
- Message selected: catalog ID (or `none`) and one-line evidence reason; alternatives considered when relevant.
- Draft created: yes/no, with Gmail draft ID if the wrapper returns it.
- Any prospects skipped and why.
For `--dry-run`, return the draft text and call script in Markdown without creating Gmail Drafts.
Quality Checklist
- [ ] P1/P2 worked before P3.
- [ ] Contact discovery used public/first-party sources.
- [ ] Email verification status is shown.
- [ ] Owner-operated local service businesses default to phone-first.
- [ ] Gmail Draft is created only with `--draft`.
- [ ] Lists and links follow `./references/dependencies/conversint-current/references/email-standards.md` when present.
- [ ] No email is sent.
- [ ] No outreach is framed as replacing the hire.
- [ ] Draft cites one specific signal from the scan/profile and turns it into a give-first artifact.
- [ ] Draft uses `patrick-outreach-voice.md` Register A-cold: no calendar link, no meeting ask, no "worth 15 minutes."
- [ ] Message choice matches direct public evidence; no weak or untested campaign cell is presented as a proven result.
- [ ] Services mapping uses the live Conversint services page.