← Back to the library
Sales and customer relationships

Outreach writing

Prepare founder-reviewed cold outreach for Conversint prospects. Use after /value-signal-scan when the user wants to work P1/P2 opportunities, find a contact, verify email, create a phone-first talk script, or save personalized cold outreach to Gmail Drafts. This skill NEVER sends email. It only creates drafts/scripts for manual review and manual sending.

Works with the context you provideVersion 2.0.1Historical revision

# /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
  • `./references/dependencies/conversint-current/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:

  1. Company website contact/about/team/leadership pages.
  2. Job posting contact info, if public.
  3. Public business directories or state/local records when relevant.
  4. 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.