01 The problem
Breez needed qualified leads at scale. What they had was a capacity ceiling.
The team was researching prospects by hand, hours every day. Contact information was scraped manually, one profile at a time. Outreach was written one personalized message at a time, because personalized messages were the ones that got answered. Proposals took hours each to assemble. Add it all up and the operation topped out at 10 to 20 touches a day.
That number is not a Breez problem. It is the human maximum. A person who researches a prospect properly, writes something that prospect would actually answer, and assembles a proposal worth opening can only do that so many times before the day ends. Every hour spent on research was an hour not spent closing.
The two standard escape routes both lead somewhere bad. Hire more people, and cost scales in a straight line with output, forever. Switch to templates, and volume goes up while the thing that made the outreach work, the research, disappears from every message. Most teams pick one, live with the trade, and quietly accept the ceiling.
That math does not scale. It does not matter how good the messaging is when the bottleneck is human hours.
02 Who Breez is and why capacity matters
Breez is a lead generation company. Pipeline is not their overhead. It is their product.
For most businesses, prospecting capacity decides how fast they grow. For a lead generation business it decides whether the business works at all. Every constraint in the section above sat directly on the revenue line: hours per prospect set the cost of doing the work, touches per day set the ceiling on output, and messaging quality set the reply rate that everything else depends on.
That last one matters most. Breez's edge was that their outreach did not read like outreach. It read like someone had done the work, because someone had. The asset was quality. Any system that scaled volume by burning that asset would have made the company worse, faster.
So this was not an automation project with a nice-to-have attached. It was a bet that the slow parts, the research and the personalization, the parts everyone assumes need a human, could run at machine scale without dropping the standard.
If outbound matters to your business model, the ceiling Breez hit is the same one you will hit. The only question is what you trade to get past it.
03 What had to be true first
Before anything was built, three constraints were fixed. They shaped every architecture decision that follows.
Messaging quality could not drop. Not "should not". Could not. Reply rates were the business. The system had to write from real research, never from a template with a first-name token, and every message had to clear the same bar a hand-written one did. Wherever quality and volume came into conflict, quality won by rule.
The team had to run it themselves. Breez was not hiring an engineering department, and they were not signing up for a vendor dependency where every tweak waits in our queue. Day-to-day operation, message tone, targeting changes: all of it had to be in their hands after handoff.
Weeks, not quarters. A capacity ceiling costs money every day it stands. A system that arrives in nine months solves last year's problem. The first version had to be live and producing inside weeks, then improve in production. It went live in two to four weeks and has been iterated on ever since.
Constraint one ruled out every blast tool on the market. Constraint two ruled out a black box only we could operate. Constraint three ruled out a research project. What was left was a pipeline of small, reliable, inspectable stages. That is what got built.
04 What we built
A full-stack automated lead generation platform. One pipeline, raw lead in, delivered proposal out.
Each stage runs without a human in the loop:
- Lead sourcing. Automated sourcing from multiple data sources, continuously, matched to the target profile, instead of one-at-a-time manual research.
- Enrichment. Contact and company data gathered, verified and merged into one clean record per lead. No more hand-scraping.
- AI strategy. A custom analysis generated for every single lead: who they are, what they need, why Breez fits. This layer is the difference between personalization and mail merge.
- Personalized outreach. Messages built from the strategy layer, so every line traces back to something true about the prospect. Not templates with a first-name token.
- Deck creation. Proposals generated automatically through PandaDoc, with 40+ personalized data points per prospect.
- Reply detection. Responses caught the moment they land and routed to a human, so nothing goes cold in an unwatched inbox.
- Follow-up. Sequences that continue until there is a reply or a deliberate close-out. Never a forgotten thread.
Enrichment is where most outbound systems quietly fail. Different sources disagree about the same company, contacts go stale, and half-complete records leak into campaigns. Here, every source feeds one record per lead, conflicts get resolved before anything downstream runs, and every later stage reads the same truth.
The strategy stage is where the build earns the word engine. For every lead, the system reads the full enriched record and produces an actual analysis: what this prospect's situation looks like, what they are likely trying to fix, and why Breez is the right answer. The outreach and the proposal are both generated from that analysis, which is why a thousand messages can go out without one of them reading like the other nine hundred and ninety-nine.
The whole pipeline reports into Slack, with dedicated channels for research-ready, strategy-ready, deck-ready and reply-detected. The team watches deals move through stages in real time and steps in exactly where a human matters.
Delivery is warmed up and throttled rather than blasted, every message identifies the sender, and unsubscribes work. The engine is built to respect CASL.
05 The technologies behind it
Every tool in the build earned its place by doing one job better than the alternatives. The short version:
- Claude runs the strategy and personalization layer. The job is long-context reasoning: take everything the pipeline knows about a lead and turn it into an argument for why Breez fits. That is a judgment-shaped task, and Claude is the strongest model we have benchmarked for it.
- Apify-class sourcing tools feed the top of the pipeline. Scrapers and structured data sources pull prospects continuously, which is what replaces the hours of manual list building.
- Instantly and HeyReach handle delivery, email and LinkedIn respectively. Sending at volume is its own discipline, with warm-up, ramps and monitoring, so we use tools built for exactly that instead of rebuilding it badly.
- Supabase is the single store for lead state. Every stage reads from it and writes back to it, which is most of the reason the pipeline can be debugged at all.
- PandaDoc assembles the proposals. Structured data in, finished deck out, which let us treat proposal creation as a pipeline stage instead of an afternoon of work.
- Slack is where the system talks to people. The team already lived there, so the system reports there. New tools lose. Existing habits win.
The full stack, with the reasoning behind every choice, is documented at /stack.
06 The engineering decisions that made it reliable
A demo pipeline and a production pipeline look identical in a screenshot. The difference is what happens when something breaks. Five decisions carried this one to production.
Stages are isolated. Each stage runs independently and hands its result to the next through the data store. A failed enrichment call never blocks the pipeline: the one lead that failed waits for a retry while every other lead keeps moving. Without this, one bad API response can cost a day of throughput. With it, failure is a line item, not an outage.
Supabase holds the single lead state. A lead's stage, history and data live in one record in one store. No lead can exist in two states at once, any stage can crash and restart without losing track of where things were, and when something looks wrong there is exactly one place to look.
Humans checkpoint at reply detection. The pipeline is fully automated up to the moment a prospect shows intent. Then it stops being automated, on purpose. A reply routes to a person within the team's working channel, and the machine never negotiates, never improvises with a live deal on the line.
Behavior lives in directive files. Tone, targeting rules, follow-up logic and qualification criteria sit in plain-text directives the team can read and edit. Changing how the system behaves is a text edit, not a deploy. This is the DOE architecture, directives, orchestration, execution, and it is the single biggest reason the handoff in section 08 worked.
Cost is controlled per stage. The expensive model calls sit in the one stage where they pay for themselves: strategy. Sourcing, enrichment and delivery run on cheap, deterministic tooling. Each stage carries its own budget and reports its own spend, so scaling the volume up never shows up as a surprise invoice.
07 Before and after
Before: a day's output was 10 to 20 touches, each carrying hours of research. After: hundreds to thousands of touches a day, each still carrying the research, because the research is now a pipeline stage instead of a person's morning.
The thing to notice is what did not change. The work per prospect is the same work: research, strategy, a personal message, a proposal. It dropped from hours to minutes per prospect because machines took over the assembly, not because the standard moved. Quality held. Throughput multiplied.
08 How the team runs it
This was not build-and-leave. Under our Build + Educate model, the Breez team learned the system while we shipped it.
They understood the pipeline end to end. They learned the DOE architecture it runs on, which means they change system behavior by editing plain-text directives, no engineering ticket required. They picked up prompt engineering and learned how to evaluate AI output instead of trusting it blindly. The education is what made the second constraint in section 03 real: the team runs this without us.
Then the compound effect kicked in. Once the team understood how the system worked, they started seeing automation opportunities everywhere. They identified three or more additional processes worth automating and started asking "what if we applied this to X?" The build created value. The education created the ability to see what to build next.
That loop is why scope expanded here, and it is not unique to Breez.
09 Results
Manual prospecting is 10 to 20 touches a day. The automated pipeline handles hundreds to thousands, end to end, with research and personalization attached to every one. Per prospect, the work dropped from hours to minutes.
- ~1,000x prospecting capacity
- Full automation from lead sourcing to deck delivery
- Minutes per prospect instead of hours
- 40+ personalized data points in every proposal
- Significant weekly time savings
- Scope expansion requested by the client
First version deployed within weeks, then continuous iteration to production-ready. The technology mattered, but the combination made it work. Breez did not just get a lead generation system. They got the system and the understanding of how it works and where to take it next. That is the difference between a project and a transformation.
10 What to know before building this
If you are evaluating an outbound engine, from us or from anyone else, three questions separate engines from blast tools.
Where is the strategy layer? Ask what the system knows about a prospect before it writes to them, and where that knowledge comes from. If the honest answer is a template plus merge fields, you are buying volume at the cost of the one thing that makes outreach convert. Raw sending capacity is easy. Capacity with research attached to every message is the build.
What happens on reply? Trace the exact path. How is a reply caught, who gets notified, where, and how fast? What happens when that person is away? Replies are the entire point of the system, and they are the stage most tools treat as out of scope. If the answer is "you check the inbox", the most valuable event in the pipeline depends on someone happening to look.
Who can change it after handoff? Six months in, you will want a different tone, a new segment, a tighter follow-up rule. If every change is a vendor ticket, you do not own a system, you rent one. Ask to see exactly what your team would edit and what happens after they edit it. Our answer is plain-text directives, and the Breez team uses them.
One more honest note: the build is the smaller half. This system still works because the team running it understands it. Whatever you build and whoever builds it, budget for the education, not just the engineering.
11 Related work
This build is productized as the outbound engine: the same seven-stage pipeline, scoped and priced for your business.
For the same discipline pointed at a different problem, read the PE deal desk case study. It is research-at-scale aimed at deals instead of leads, built for a fund whose partners were the bottleneck. The pattern also maps directly onto brokerage prospecting: AI for real estate walks through that translation.
The tools behind both builds, with the reasoning for each choice, are documented at /stack. And if you want the capacity math on your own pipeline before committing to anything, start with the free audit.