Lead Generation Case Study: How a 6-Person Team Hit 42 Demos
A full teardown of a real B2B outbound build: 14,200 raw contacts, a 62% data-waste problem, and the fixes that turned 0.9% reply rate into 42 booked demos in 90 days.

TL;DR
- A 6-person B2B SaaS team went from 0.9% reply rate to 4.7% in 90 days without hiring, without a new sequencer, and without increasing send volume.
- The single biggest lever was data hygiene: 62% of their original 14,200-contact list was stale, role-mismatched, or undeliverable. Cutting it to 5,380 verified contacts raised replies and dropped bounce rate from 11.4% to 1.6%.
- Second biggest lever: narrowing ICP from "any company 50-500 employees" to three concrete trigger events. Same messaging, 2.3x the reply rate.
- Final numbers: 42 booked demos, 11 opportunities, $186 blended cost per demo — down from $611 in the baseline quarter.
- The parts that did not matter as much as expected: subject-line A/B tests, sending time optimization, and adding a fourth follow-up.
Most lead generation content shows you a framework. This one shows you a P&L. What follows is a teardown of an actual 90-day outbound rebuild at a mid-market B2B SaaS company — anonymized as "Northbeam Ops" at their request — including the numbers that got worse before they got better.
What Does This Lead Generation Case Study Actually Cover?#
Northbeam Ops sells workflow software to operations teams at logistics and 3PL companies. ACV is roughly $14,000. Sales cycle averages 71 days. The team: two AEs, two SDRs, one marketer, one founder who still closes.
Before the rebuild, their outbound looked like most teams':
- One giant list scraped from a data provider and a LinkedIn Sales Navigator export
- A 3-step sequence in their sending tool
- ~1,800 emails sent per month across two SDRs
- 0.9% reply rate, 0.2% positive reply rate, 7 demos in the quarter
They were not failing because of effort. They were failing because they were pouring good copy into a bad list and a vague ICP. That is the most common failure mode in B2B outbound, and it is almost never diagnosed correctly — teams blame the messaging first because messaging is the most visible variable.
The rebuild ran from a Monday in Q1 through the end of Q2, with weekly measurement. Everything below is reconstructed from their sequencer exports, CRM records, and a shared spreadsheet the team kept.
Why Did the Original List Fail?#
Because volume was the only metric anyone optimized for. The 14,200-contact list had been assembled over 14 months from four sources with no deduplication and no verification pass.
Here is the audit breakdown after the team ran the full list through a verification and enrichment pass:
| List segment | Contacts | % of total | Disposition |
|---|---|---|---|
| Valid, ICP-matched, verified | 5,380 | 37.9% | Kept |
| Invalid / hard bounce risk | 1,624 | 11.4% | Removed |
| Catch-all, unresolvable | 2,109 | 14.9% | Quarantined |
| Job-changed / role mismatch | 2,847 | 20.0% | Removed |
| Duplicates across sources | 1,102 | 7.8% | Merged |
| Wrong company size / geo | 1,138 | 8.0% | Removed |
Two findings are worth dwelling on.
Job change decay is brutal. 20% of the list had moved roles or companies. B2B contact data decays at roughly 2-2.5% per month, which compounds fast — a list untouched for a year is meaningfully broken by the time you send to it. LinkedIn's own workforce data and vendor churn studies both put annual job mobility in white-collar roles in the 20-30% band, so this number was not an anomaly.
Catch-all domains are not automatically garbage. 14.9% of the list sat behind catch-all servers that accept every address at the SMTP layer, which standard verification tools mark as "unknown." Northbeam initially deleted all of them. That was a mistake — those domains skewed enterprise, meaning they deleted their highest-ACV segment. They recovered them later using a catch-all verifier that scores catch-all addresses on pattern confidence rather than returning a blanket "risky."
The team rebuilt the retained segment using a domain search workflow — start from target company domains rather than from people — then verified every result before import. Building from domains instead of from person-lists is the structural fix here: you control the company universe, and the contact discovery is downstream of an ICP decision instead of upstream of it.
How Did Fixing the ICP Change the Numbers?#
The original ICP was a size filter with a industry tag bolted on: "logistics or 3PL, 50-500 employees, US." That describes roughly 19,000 companies. It is a market definition, not a targeting definition.
The rebuild replaced it with three trigger-based segments, each with an observable signal:
- New ops leadership hire — a VP Ops or Director of Operations who started in the last 90 days. New leaders have budget latitude and an explicit mandate to change something.
- Warehouse or facility expansion — announced new DC, new location, or a hiring spike in warehouse roles. Capacity change forces a systems conversation.
- Competitor stack signal — companies running a legacy TMS or a specific incumbent tool, identified from job postings and site technology.
That is the entire segmentation. No personas, no scoring model, no 40-field matrix. Each trigger produces a list of 200-600 companies at any given time, which is the right order of magnitude for two SDRs.
The effect on reply rate, holding copy constant during the first four weeks:
| Segment | Contacts emailed | Reply rate | Positive reply rate | Demos |
|---|---|---|---|---|
| Baseline (size + industry) | 1,812 | 0.9% | 0.2% | 7 |
| Trigger 1: new ops hire | 640 | 6.1% | 2.8% | 14 |
| Trigger 2: expansion | 511 | 4.4% | 1.9% | 11 |
| Trigger 3: competitor stack | 724 | 3.6% | 1.5% | 12 |
| Blended post-rebuild | 1,875 | 4.7% | 2.0% | 37 |
Same team. Same product. Roughly the same send volume. The difference is that every email had a reason to exist, and the recipient could tell within the first line.
Trigger 1 outperforming by a wide margin is consistent with what most outbound teams find once they measure it: a leadership change is the single highest-intent freely observable signal in B2B. Gartner's research on B2B buying behavior points at the same thing from the buyer side — buying groups form around a change event, not around a vendor's calendar.
What Did the Rebuilt Workflow Look Like Step by Step?#
The operational loop ran weekly and took roughly six hours of one person's time:
- Source companies by trigger. Pull the week's new-hire announcements, expansion news, and job-post signals into a single sheet. Target: 120-180 new companies per week.
- Map the buying group. For each company, identify 2-3 roles: the operations owner, the finance approver, and one practitioner. Single-threading was the team's old habit and it cost them deals at the approval stage.
- Find and verify contacts. Run domain-level discovery, then verify every address before it touches the sequencer. Anything scoring below the accept threshold goes to a hold list, not the send list.
- Enrich for personalization inputs. Pull the one fact each email will reference — the hire date, the new facility, the tool in the stack. If there is no fact, the contact does not get sequenced.
- Sequence in small cohorts. 60-90 contacts per cohort per SDR, four steps over 12 days, one clear ask.
- Kill and recycle weekly. Non-responders after step four go to a 90-day nurture, not the trash. 6 of the 42 demos came from recycled contacts.
Step 3 is where most teams cut corners, and it is the step with the highest downside. Every undeliverable address is a direct hit to sender reputation, and reputation damage is slow to accrue and slower to repair. Google and Yahoo's 2024 bulk sender requirements formalized what was already true operationally: sustained spam complaint rates above 0.3% and sloppy list hygiene get you throttled regardless of how good your copy is.
Northbeam ran the pre-send verification through a bulk email verifier as a scheduled job, and kept a standing rule: no list enters the sequencer without a verification timestamp less than 14 days old.
Which Tools Did the Team Use and What Did They Cost?#
Tool consolidation was part of the story. The baseline stack had five paid tools with overlapping functions and a combined $1,040/month bill. The rebuilt stack had four and cost less.
| Layer | Baseline stack | Rebuilt stack | Monthly cost change |
|---|---|---|---|
| Contact discovery | Broad database seat, $199/mo | Domain-first email finder, $99/mo | -$100 |
| Verification | Bolted on, pay-as-you-go ~$140/mo | Included in finder credits | -$140 |
| Sequencing | Sequencer, $97/mo | Same sequencer, $97/mo | $0 |
| Signals / triggers | None (manual) | News + job-post monitoring, $89/mo | +$89 |
| CRM | HubSpot Starter, $90/mo | Unchanged | $0 |
| Redundant seats | 2 unused seats, $514/mo | Cancelled | -$514 |
| Total | $1,040/mo | $375/mo | -$665/mo |
A note on how they picked the discovery layer, since this is the question every team asks. They ran a 500-contact head-to-head across three vendors on the same target domains and scored on three axes: match rate (how many of the 500 returned an address at all), verified accuracy (how many survived independent verification), and cost per verified contact. That is the only benchmark that matters — a high match rate with low accuracy is worse than no data, because it puts bad addresses into your sender reputation.
Their shortlist included BookYourData, which they rated strongest for pre-built, pay-as-you-go list purchases where you want a verified file without running your own enrichment loop, and Tomba, which they chose for the ongoing weekly loop because domain-first discovery plus built-in verification fit the workflow in step 3. Both are legitimate picks for different buying modes: one-time list acquisition versus a recurring build. Public review data on G2 shows the same split in practice — teams tend to run one of each rather than treating them as substitutes.
On pricing, the discovery layer sat on Tomba's Growth plan at $99/mo after starting on the free tier (25 searches) for the pilot and Starter at $49/mo for month one. Full Tomba pricing is public, which mattered to them during procurement — the two vendors they dropped required a call to see numbers.
What Were the Final 90-Day Results?#
| Metric | Baseline quarter | Rebuild quarter | Change |
|---|---|---|---|
| Emails sent | 5,436 | 5,625 | +3.5% |
| Contacts in active rotation | 14,200 | 5,380 | -62% |
| Bounce rate | 11.4% | 1.6% | -9.8 pts |
| Reply rate | 0.9% | 4.7% | +422% |
| Positive reply rate | 0.2% | 2.0% | +900% |
| Demos booked | 7 | 42 | +500% |
| Opportunities created | 2 | 11 | +450% |
| Tooling spend (90 days) | $3,120 | $1,125 | -64% |
| Blended cost per demo | $611 | $186 | -70% |
Two caveats before anyone treats this as a template.
Sample size is small. 42 demos is enough to see a direction, not enough to be statistically confident about the gap between Trigger 2 and Trigger 3. Do not over-fit to the ranking.
The baseline was bad. Going from 0.9% to 4.7% reply rate is a large multiple partly because 0.9% is close to the floor. A team already running 3% reply rates will not see a 5x from the same changes. Expect the same directional result at a smaller magnitude.
What Didn't Work?#
The things that did not move the needle are more useful than the things that did, because they are where most teams spend their time.
- Subject line A/B tests. 11 tests over the quarter. Best variant beat worst by 3.1 points of open rate and showed no measurable difference in reply rate. Open rate is a near-useless metric post-MPP anyway.
- Send-time optimization. Tested 6am, 8am, 11am, and 2pm local. Spread of 0.4 points in reply rate. Noise.
- A fourth and fifth follow-up. Step 5 produced 0.3% incremental reply rate and a measurable uptick in unsubscribe and complaint rate. They cut back to four steps.
- Video personalization. 80 contacts, ~4 minutes of production each, 1 demo. The math does not survive contact with an ACV of $14k.
- Buying an "intent data" feed. $600/mo trial, 30 days. The accounts it flagged overlapped 71% with what the free trigger monitoring already surfaced. Cancelled.
The pattern across all five: they are optimizations at the margin of a message that is already going to the right person, or they are expensive substitutes for observation. When the list and the trigger are wrong, none of them help. When the list and trigger are right, most of them are rounding errors.
How Should You Replicate This?#
Run it in this order, because each step makes the next one cheaper:
- Audit before you build. Export your current list, verify it, and find out what percentage is actually reachable and role-correct. Most teams discover a number between 40% and 70% waste. That audit costs one afternoon.
- Pick three triggers, not a persona document. Each trigger needs an observable public signal and a plausible reason the buyer cares this month.
- Build from domains, not from people. Decide the company universe, then find the contacts inside it with a domain-based email finder. This keeps the ICP decision upstream where it belongs.
- Verify every address on a fresh timestamp. Not once at import — on a rolling window. Data decays whether you look at it or not.
- Multi-thread by default. 2-3 contacts per account, different roles, staggered by a few days.
- Measure positive reply rate and cost per demo. Open rate and total reply rate will both lie to you.
- Recycle, don't discard. A no-reply at month one is frequently a yes at month four when the trigger matures.
The one piece most teams skip is step 1, because auditing your own list means admitting the last two quarters of pipeline math were built on sand. It is also the step with the highest ROI per hour spent in this entire case study.
Ready to Rebuild Your Own List?#
Start where Northbeam started: with the data. Point Tomba Email Finder at the company domains inside your three triggers, let it return verified contacts with confidence scores, and send only to what survives verification. The free tier gives you 25 searches to test match rate against your own target accounts before you commit to anything, and Starter runs $49/mo if the pilot holds up. Audit first, build second, send third — in that order, the 4.7% is reachable.
Related guides#
Ready to find emails that actually work?
Join 150,000+ professionals who stopped guessing and started sending. Free credits on signup — no credit card required.
Get the Tomba newsletter
Practical outbound tactics and product updates — once every two weeks.
About the author