5.7 · Going Outbound Without a Sales Team

JetThoughts blog cover showing a cold-outbound pipeline funnel from filtered list through Loom and Calendly to a signed Stripe invoice

Module 5 · Lesson 5.7 · [OPTIONAL] - the systematic path when warm intros run out · From Idea to First Paying Customer

Input: network exhausted, ~10 customers in from Lesson 5.5 and Lesson 5.6

Output: 30 cold messages sent, 3-5 demo calls booked, 1-2 paid pilots cleared once replies mature

Progress: M5 · 7 of 7 · [OPTIONAL] - the systematic cold path; run it only after the warm-network pass in 5.3-5.5


Four paid pilots close from your personal network over six weeks, then the warm names run out at customer five. The default move is to book a launch coach or sign an ad-agency contract - six weeks and a few thousand dollars, neither designed for your B2B vertical. The four-line cold message below is what customer five answers in week three for under $40 of tooling.

Stop here if you have not exhausted your personal network. This lesson covers cold outbound to strangers - it assumes you have already converted the people who know you through Lesson 5.5.

If you still have warm names in your network who fit your ICP (ideal customer profile - the specific buyer you’re targeting), close them first. Cold outbound is harder, slower, and lower-converting than warm outreach. Reading this lesson before your network is dry is the most common sequencing mistake founders make in Module 5 - it feels like progress, but you are skipping the higher-converting path for the lower one.


Customers 11-20 come from filtered cold outbound, not from launch events. Product Hunt converts at 3.1% per launch (387 launches, OpenHunts 2024) and 89% of its founders said they would not launch again; a sustained cold motion is what puts B2B buyers on the calendar. The full Product Hunt vs Indie Hackers data is in the full reference.

Two stat cards, separate metrics: Product Hunt 3.1% per launch event (one-day spike, 89% would not launch again) vs Indie Hackers 23.1% per engaged post (sustained motion) - OpenHunts 2024

Run the whole pipeline in six stages with off-the-shelf tools - no engineer, no $1,200/month sales stack. Ship it for under $100/month on Apollo’s free tier:

  1. Filter - LinkedIn Sales Navigator or Apollo.io. Pull 100-150 raw rows, strip to 30 clean names.
  2. Personalize - 60-90 seconds per name. Read the profile and the last post, find one specific reference.
  3. Loom - Same product Loom from Lesson 5.4. No re-record per prospect.
  4. Send - LinkedIn DM or 4-line email. One personalized opener + the same body for everyone.
  5. Calendly - 15-min demo slot, auto-confirm. No back-and-forth scheduling.
  6. Stripe - DPA + deposit from Lesson 5.6. Money on the table before you start work.

The message is four lines: a specific reference earns the open, one sentence on what you built, one specific ask with friction removed, one currency anchor. Anything longer reduces the reply rate. The B2B SaaS variant:

Subject: shipped MVP last month - your post on [topic]

Hi [first name],

Saw your post on [topic, paraphrased in their words] last [Tuesday]. I shipped my MVP for [the same problem] last month using [Lovable + Supabase + Stripe] after 10 interviews with people who flagged the exact issue you described. I built [a tool that does X for Y].

Worth 15 minutes to walk through? Paid design partner spots, [$ deposit] credited toward year one. Calendly: [link]

[Your name]

The B2B services and B2C app variants, the full tooling stack, domain warmup, and the filter/personalization detail all live in the full reference.

Read the reply rate as a signal: expect 3-8% on a realistic first batch (1-2 replies per 30 messages); 10-15% is the ceiling a tightly filtered, heavily personalized batch reaches.

Stop / continue / accelerate, by reply rate band.

  • <5% reply rate → STOP after batch 1. Diagnose before batch 2: filter is wrong, domain reputation is dead, or script reads generic. Sending batch 2 over a broken upstream stage wastes the next 30 best-fit names on the same broken funnel.
  • 5-10% reply rate → CONTINUE but rotate one element of the script for batch 2 (subject line, opening reference, or CTA). One variable per batch so you can read which change moved the rate.
  • >10% reply rate → ACCELERATE. You have a hot channel. Run batch 2 same-shape and same-cadence. Resist the temptation to “scale” the batch size past 30 - the personalization budget per message is the load-bearing input, and 30 is the practical ceiling for one founder doing it by hand.

Do this now:

  1. Open the Module 5 cold seed tab - the same filter you saved as the Module 5 cold seed tab in your Lesson 2.3-2.4 outreach spreadsheet. Top up to 30-50 high-fit names using the same filter. Drop the bottom 20 into a “later batch” tab.
  2. Personalize the top 30. One specific reference per name (recent post, hire milestone, role change) - 60-90 seconds each, ~45 minutes total.
  3. Send via LinkedIn DM or a cold-email tool (Smartlead, Instantly). Same four-line body, one custom opener each.
  4. Track replies in your Sheet. Book demos. Follow up with non-responders once only.
  5. Success check: 30 messages sent, 1-4 replies logged, 2-3 demo calls booked from the batch.

If this fails: the batch returns 0-1 replies.

  • Why: for a new founder on a new sending domain, the cause is usually mechanical, not the product - the messages did not deliver, the domain has no warmup history, or the “specific reference” read generic.
  • Fix: check bounce rate (above 10% = dirty list, re-warm the domain), re-read three profiles from your sent list to confirm the filter, and check that your reference sentence names something verifiable (a date, a post title). Fix the root cause before batch 2. A 0-1 reply rate on batch 1 is the median first-batch outcome, not a failure signal.

The 30-message batch is not a one-time event. Run fresh batches until you have 20 customers - the second and third outperform the first by 30-50%, because you learn which reference patterns earn replies.


Done: 30 cold messages are sent, replies are tracked in your spreadsheet, and 1-2 paid pilots are booked from the replies.

You have now: the full arc in hand - a validated hypothesis, a signed problem statement, a one-page brief, a live MVP, and at least one paying customer, plus a repeatable cold-outbound motion for customers 11-20. That is the whole course: idea → validated problem → brief → live MVP → paying customer. File the lot in your Founder OS folder - the Founder OS pack index is the printable cover sheet.

Next: Course landing page - the core course is complete. When a problem shows up, the Going further chapters cover churn triage, pivot decisions, and hiring. Keep the First-Paying-Customer Operating Kit open to keep the build honest as you ship past customer 10.

If blocked: see “If this fails” above. If reply rate stays under 5% after a clean batch 1, the fix is upstream of the script - filter or domain, not the message.

Deeper reference: Product Hunt data, the full tooling stack, domain warmup, the funnel math, all three script variants, the stage cadence, and the no-reply diagnostic

Module 5 closes here. Before calling the course complete, you should have: (1) a passed Sean Ellis 40% must-have test against your early users (Lesson 5.1), (2) a 50-name network list sorted into 4 outreach buckets (Lesson 5.3), (3) 4 outreach message variants plus a 90-second Loom (Lesson 5.4), (4) at least one signed Design Partner Agreement with a Stripe deposit (Lesson 5.6), and (5) a 30-message filtered cold-outbound batch sent with replies tracked once the network list ran dry (this lesson). All five in your Founder OS folder. Missing one? Go back - customer 11-20 depend on the same motion, and a broken step upstream (an untested must-have signal, an unsent batch, an unsigned DPA) breaks every batch that follows it.


See it in action: Module 5 walkthrough: Mia gets paid

Built by JetThoughts as part of the From Idea to First Paying Customer curriculum.