SUNDAY NEWSLETTER #003 · PUBLISHED
Solve the cold start problem with an AI outreach system
Dhruv Dang
Principal Software Engineer, Steadily
This Sunday's newsletter is about solving the cold start problem with an AI outreach system. In our last two editions, we covered explicit classification and making AI skills more predictable with scripts. This time, we'll put both ideas to work. We'll outline how I would approach a direct outreach system for a B2B SaaS startup: one that sources new leads every day, prioritizes them, and drafts personalized emails for the founders to send.
Key Takeaways
- The cold start problem: early-stage startups have no customers to learn from to find product-market fit.
- Direct outreach to potential customers is an answer to the cold start problem.
- An automated direct outreach system has three jobs: source leads, prioritize them, and put them in front of the founders to pursue.
- We can use Claude to build an initial outreach system without needing a CRM or a data pipeline.
What is the cold start problem?
Without customers, you don't get the feedback that tells you whether you're building the right product. This is the cold start problem, and it's often described as the bane of an early-stage founder's existence.
The usual answer is direct outreach: find the people who match your buyer persona, and contact them yourself. It works, but it's slow. Finding leads, researching each one, deciding who to contact first, and writing a personalized email can eat up your time.
This is a great use case for AI. It can do the repetitive research so you can focus on selling.
Example: A LegalTech startup with no customers (yet)
Let's imagine we're the founders of a LegalTech startup that helps lawyers draft term sheets with AI. We sell to solo lawyers and small law firms (1-20 lawyers) in Canada and the US that focus on corporate law and contracts.
We've done our research. We've defined our market, we know our buyer personas, and we have a product to sell. But, we have a problem: we don't know any lawyers to sell to!
What's our outreach strategy?
Our plan has four steps:
- Source top-of-funnel leads. These are people who match our buyer persona: corporate lawyers at 1-20 person firms in Canada and the US.
- Find their contact details. Many lawyers publicly share their email address on their firm's website. We'll scrape those websites for names and email addresses.
- Classify each lead. We'll use explicit classification to prioritize each lead based on how likely they are to buy our product.
- Report daily. At 9am every day, we'll generate a report of new leads discovered and email it to our co-founders. The report includes a personalized draft email for each lead, so we can follow up quickly.
Notice that the founders still send every email. The system's job is to put the right leads in front of us.
Note: cold email is regulated in both countries (CASL in Canada, CAN-SPAM in the US). Don't implement this system unless you are able to comply with all relevant regulations in your jurisdiction. This isn't legal advice.
How would we implement this with Claude?

Step 1: Create an outreach skill
We start by asking Claude to create an "outreach" skill. The skill holds context about our outreach strategy: who our buyer personas are, which regions we target, what our product does, and how we want leads prioritized. This is context we'd otherwise have to repeat every time we ask Claude for help.
Step 2: Decide where to store our state
Claude needs somewhere to store leads while it does its work. In an ideal world, this happens in a database. But for now, we can keep it simple and have Claude store leads in a Claude doc.
We'll need two state docs:
- Leads doc. A table of every lead we've sourced, with the following columns:
lawyer name,lawyer email,law firm name,law practice area,mentions term sheets?,drafts contracts?,works on corporate transactions?, andpriority. - Scraped sites doc. A list of the law firm websites Claude has already scraped. This is so Claude doesn't keep sourcing the same leads.
Starting with docs means we can read and edit our state ourselves, with zero setup. We can swap it out later.
Step 3: Source leads from the web
The skill instructs Claude to search the web for law firms that match our target demographic. Before scraping a firm's website, Claude checks the scraped sites doc. If the firm is new, Claude scrapes its website for lawyer names, email addresses, and practice areas, then adds the website to the scraped sites doc.
This is a good task for the agent. Searching the web and reading inconsistent law firm websites requires flexibility, and that's what LLMs are good at.
Step 4: Classify each lead with a script
Before a lead is stored in the leads doc, the skill uses a script to classify the last four columns, using the scraped data as context:
- Mentions term sheets?
yesorno. - Drafts contracts?
yesorno. - Works on corporate transactions?
yesorno. - Priority. One of
low,medium, orhigh, wherehighmeans we should reach out to this lawyer first.
This is explicit classification in practice. Instead of asking Claude to "find good leads" and hoping its judgement stays consistent, we ask a narrow set of questions and get a predictable answer for each one. The three yes/no answers become signals, and priority is derived from those signals. A corporate lawyer who mentions term sheets on their website is a much better lead than a litigator who doesn't.
Step 5: Generate the daily report with a script
We also ask Claude to draft a script that generates a Claude doc with the sourced leads. The script makes sure the report follows a consistent structure every day: leads sorted by priority, the signals behind each priority, and a personalized draft email for each lead.
Step 6: Schedule a daily prompt
Finally, we draft a prompt and schedule it to run daily at 9am with Claude. The prompt asks Claude to use the outreach skill to source another 20 leads (or whatever number we can handle) for us to reach out to that day, and to email the report to our co-founders.
That's it! We now have a system that sources 20 new leads for us every day.
How do we learn from our outreach?
Once leads start converting, we also learn from them.
When a lead converts to a sale, we report it back to Claude, along with any feedback we received. Over time, this gives us a picture of our sales funnel: how many leads we sourced, how many replied, and how many became customers.
It also tells us which signals matter. Do high priority leads actually convert better? Do lawyers who mention term sheets reply more often? The answers help us tune our classification. The feedback helps us decide how to evolve our product.
Ideas to improve the system
There are many ways to improve this flow. Here are a few:
- Add more lead sources. Incorporate ad campaigns and use APIs to source leads (e.g. LinkedIn ads).
- Use directories. Lawyer and professional services directories can be a better way to find firms than searching the web alone. Use them to discover firms, then source contact details from each firm's own website.
- Own your data. Store leads in your own database or CRM, not just a Claude doc.
- Evolve your classification. Change how you classify and prioritize each lead as your buyer personas evolve.
- Source partnerships, not just customers. The same system can find partners who can put you in front of many customers at once.
Summary
The cold start problem is hard, but it doesn't have to delay outreach. With a clear strategy and some AI knowledge, you can source top-of-funnel leads and start operating in the marketplace quickly.
Keep the system predictable. Let the agent do the unstructured work, like searching the web and reading websites. Use explicit classification and scripts for the decisions and outputs that need to be consistent.
And once you're in front of customers, you have an opportunity to learn from their feedback and see if you've achieved product-market fit.