Warm Outreach logo

Warm Outreach

Community
duncan-buildroom
warm-outreach

Build a prioritized warm-network outreach list and a genuine, low-pressure first message so you can land your first customer from people who ALREADY know and trust you — before you ever touch cold outreach. Trigger whenever the user says "who should I reach out to", "I need my first customer", "warm outreach", "make an outreach list", "who do I already know", "help me start selling", "I don't know who to talk to", or "how do I get my first client without being salesy".

Overview

Publisherduncan-buildroom
Repositoryfreeskills
Skill namewarm-outreach
Stars
65
Forks
15
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by duncan-buildroom on GitHub. Read the source before you install it.

Installation

Install the Warm Outreach AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/duncan-buildroom/freeskills/tree/main/warm-outreach
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/duncan-buildroom/freeskills.git /tmp/freeskills
mkdir -p .claude/skills
cp -r /tmp/freeskills/warm-outreach .claude/skills/warm-outreach
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Warm Outreach in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Warm Outreach on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Warm Outreach is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Warm Outreach — start with people who already trust you

The fastest first customer almost never comes from strangers. It comes from someone who already knows you: a past client, an old colleague, someone in a community you're in, a person who liked your last three posts. This skill helps you dump that whole network onto paper, rank it, and write a first message that opens a conversation instead of pitch-slapping a friend.

The whole point is warm before cold, and honest before pushy. You are not blasting anyone. You are talking to real people you'd be happy to hear from yourself.

Personalization

This skill works in your brand voice. Before running, load the brand profile at ~/.claude/brand-profile.md.

  • If it doesn't exist, run the personalize skill first (or just tell me your name, niche, offer, and audience — I'll create it).
  • If a field this skill needs is blank, I'll ask one or two quick questions and save the answers back to the profile so you only answer once.
  • Never invent facts or results about the user — use only what's in the profile, or ask.

Steps

1. Brain-dump the whole network (no filtering yet)

Ask the user to list everyone who already knows them, in loose buckets — accept messy, half-remembered answers. Prompt each bucket so they don't stall:

  • Past & current clients — anyone who ever paid them, even once, even years ago.
  • Colleagues & work history — old bosses, coworkers, people from past jobs.
  • Community & peers — people in any group, cohort, Slack/Discord, mastermind, or course they're in.
  • Warm DMs & social — people who reply to their posts, DM them, or they chat with online.
  • Friends & personal — anyone who'd take their call, who might know someone even if they aren't the buyer themselves.

Tell them: don't judge fit yet, just get names down. Aim for 20–40. If they freeze, ask "who are the last 10 people you texted?" and "whose posts do you comment on?"

2. Score each person 1–3

For every name, score two quick things:

  • Fit — how likely is this person (or someone they know) to actually want the user's offer? (3 = clear fit, 2 = maybe/adjacent, 1 = unlikely buyer but a good connector.)
  • Warmth — how strong is the relationship right now? (3 = they'd reply within the hour, 2 = friendly but quiet lately, 1 = we've lost touch.)

Sort by fit + warmth combined. The top of the list (high-fit AND high-warmth) is who they message first. Low-fit-but-high-warmth people aren't wasted — they're connectors you ask for a referral, not a sale.

3. Write 3 opener variations

Using the brand voice, write three first-touch openers the user can adapt per person. Rules that keep it non-salesy:

  • Lead with them, not the pitch. Reference something real — their work, a shared moment, why they came to mind. No offer in the first message unless it's genuinely natural.
  • Ask, don't announce. End on a light question that's easy to answer, so it starts a conversation.
  • No fake urgency, no flattery bombing, no "quick question" bait. Sound like the user texting a person they respect.

Make the three distinct so different relationships get the right register:

  1. Reconnect — for someone they've lost touch with (warmth 1–2). Pure catch-up, zero pitch.
  2. Soft signal — for a warm, relevant person (fit 2–3). Mentions what they're building now and asks if it's relevant to them.
  3. Referral ask — for a connector (low fit, high warmth). Asks who they might know, not whether they want it.

Each opener should have a [bracketed] slot for the one personal detail the user fills in per person — that detail is what makes it not a template.

4. Save the artifact

Write everything to ~/warm-outreach-list.md:

  • The ranked table (Name | Bucket | Fit | Warmth | First move).
  • The three opener variations with their bracketed personalization slots.
  • A short "start here" line naming the top 5 people to message first this week.

Confirm the path and tell the user: message the top 5 today, personalize one detail each, and don't send more than a handful a day — this is a conversation, not a campaign.

Input → output example

Input: User runs the skill. Offer (from profile): "I build simple client-onboarding automations for bookkeepers, $500 setup." They brain-dump 24 names.

Output — ~/warm-outreach-list.md (excerpt):

NameBucketFitWarmthFirst move
Dana R.Past client33Soft signal (msg first)
Marcus (ex-coworker)Colleague23Reconnect → soft signal
Priya, bookkeeping groupCommunity32Soft signal
Uncle TomPersonal13Referral ask

Soft signal opener:

hey Dana — was just thinking about [the mess we untangled with your intake forms last year]. i've been building little automations that handle exactly that kind of onboarding busywork for bookkeepers now. no pitch, just curious — is client onboarding still a headache on your end?

Start here: Dana, Priya, Marcus, then two more — 5 messages this week, one personal detail each.

Notes / edge cases

  • If the user has almost no network, that's real — steer them to the "connectors" angle (referral openers) and to one warm community they're already in, rather than pushing them cold before they're ready.
  • Never write an opener that misrepresents the relationship or fabricates a shared memory. If the user can't fill the [bracket], the person isn't warm enough for the soft-signal version — use reconnect instead.
  • Keep the batch small. A huge list sent all at once reads as a blast and kills the warmth. Top 5 first.
  • Pair naturally with the dm-writer skill when they want to fully craft the message for one specific person.

Frequently asked questions

What does the Warm Outreach AI skill do?

Build a prioritized warm-network outreach list and a genuine, low-pressure first message so you can land your first customer from people who ALREADY know and trust you — before you ever touch cold outreach. Trigger whenever the user says "who should I reach out to", "I need my first customer", "warm outreach", "make an outreach list", "who do I already know", "help me start selling", "I don't know who to talk to", or "how do I get my first client without being salesy".

Why use Warm Outreach on TypingMind?

Because you install it once and use it with any model. Warm Outreach is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Warm Outreach in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/duncan-buildroom/freeskills/tree/main/warm-outreach. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Warm Outreach?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Warm Outreach?

As many as you like. As long as a model supports skills, you can use Warm Outreach with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Warm Outreach AI skill free?

It is published on GitHub by duncan-buildroom. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇