Case study 01 Client: Pepper Partners 28 Aug – 18 Sep 2026

1,146 emails. Six replies.
One meeting held.

An autonomous agent ran twenty-one days of cold outbound for a reputation-management firm, against 329 companies that all rated below four stars. This is the entire ledger — the sends, the refusals, the bounce that stopped the machine, and the three things it got wrong before anyone outside noticed.

647people contacted, at 329 companies
1,817touches attempted, 1,146 delivered
6humans wrote back
1meeting held, 17 Sep, twenty minutes
Revenue to date: none Sending domains: 1 Human hours in the send loop: ~0
The account

Selling a star rating back to the people it is costing money

Pepper Partners is a Tallinn firm whose reputation practice does one thing: it takes a company with a bad public review profile and works the profile back above four stars — auditing it, getting fraudulent and competitor reviews pulled, and triggering genuine review invitations at the moments customers are happiest.

Their best argument is a single number they publish themselves: roughly 18% less conversion for every star below 4.0. That reframes a rating from a vanity metric into a line item, which is the only framing that gets a Head of Growth to answer a stranger.

Claim source: pepper-reputation.com. Pepper's own published figures, reproduced as theirs. Their case outcomes (150+ companies, 4.6-star average finishing rating) are likewise their claims, not results measured here.

We are not Pepper. The arrangement is a referral: every email goes out as one person making an introduction, signed with his own name, from his own domain, disclosing the referral in normal type. The agent was never allowed to write “we at Pepper.” That constraint shapes the whole campaign — an introduction can be honest about what it does not know, and a vendor pitch cannot.

The signal problem

The data the pitch needs is fenced off — deliberately

The pitch only works if the first line already contains the prospect's own number. “Your rating is 2.3 across 601 reviews” earns a reply; “we do reputation management” does not. So the campaign lives or dies on getting ratings at scale. There are four ways to get them. We tested all four in a single day. Three are closed and one we refused on purpose.

Closed

Trustpilot's official API

The sanctioned route, and the right one. It returns the 90-day delta, the star histogram and the company's reply rate. It needs a partner key we do not hold.

Refused

Scraping Trustpilot

Their robots.txt ends in a blanket Disallow: /, and refuses AI agents by name — anthropic-ai, ClaudeBot, CCBot each get their own two lines. Not attempted.

Biased

The prospect's own site

Companies publish their rating in structured data for Google. Structurally useless: a company marks up its flattering number, never its bad one. Of twenty brands, seventeen published nothing and three published app-store scores of 4.70–4.87 stars.

Uncorrelated

The public app-store API

Works, needs no key, measures something else. One company carried 4.8 stars across 400,000+ app-store ratings and 1.6 stars across roughly 1,300 on Trustpilot — in the same week. A rating is not a fact about a company. It is a fact about a channel.

A headless browser pointed at that Disallow would not be routing around a technical limit. It would be evading a refusal.

So the agent never fetched a Trustpilot page. The ratings came from the client's own lead file, which already carried the star value and the review count in two columns — and the honest sourcing turned out to be the stronger commercial position anyway.

First parse of that file inverted the entire target list: the star column used a European decimal (3,8 = 3.8) and the review column used thousands separators (10,443). A single strip-the-commas turned 3.8 stars into 38 and made every company look excellent. Two separate parsers now; the campaign would have mailed the wrong half of the market.

What “autopilot” honestly means here

The machine ran the campaign. The human showed up for the yes.

This is the part most case studies fudge, so here is the division of labour exactly as the logs record it.

The agent, unattended
  • Sorted 953 contacts into four cohorts by rating and review volume.
  • Wrote every email from a proof pack that refuses unsourced numbers — a figure with no source fails composition and the email never renders.
  • Scheduled eleven touches on business-day spacing, re-sorted daily toward each recipient's 8am local.
  • Sent 1,146 emails across 17 sending days, ramping 20 → 250/day.
  • Polled bounces, suppressed the addresses, and stood their campaign rows down in the same breath.
  • Ingested replies over IMAP and stopped every colleague at a company that answered.
  • Paused itself when the 24-hour bounce rate crossed 5%.
  • Ran ten integrity invariants nightly — each one a leak that had actually happened once.
The human, every time
  • Supplied the lead list. The agent cannot source this market on its own.
  • Signed the cold-send approval: 329 named domains, with an expiry date. Nothing outside that file can be mailed.
  • Answered both live replies personally, from his own mailbox.
  • Made the introduction to the principal.
  • Created the calendar invite by hand.
  • Took the meeting.

Read the right lesson from the right-hand column. It is not a list of gaps waiting to be automated — it is the list of moments where a person's judgment is worth more than throughput. The agent removed the thousand repetitive steps, not the six that matter.

The ledger

Every number, including the denominator

Cold-outbound case studies publish conversion rates and hide the base they were computed on. Here is the base.

Campaign: pepper-reputation · 28 Aug – 18 Sep 2026
StageCountNote
Companies on the approval329every one below 4.0 stars; median 2.3
Contacts enrolled9532.75 people per company
People actually contacted647the rest are still queued
Touches attempted1,817includes every refusal
Emails delivered1,14618 refused as malformed before sending
Human replies64 under the campaign's own stricter count
Meetings booked2one no-showed
Meetings held117 Sep 2026, 21:15 UTC, twenty minutes
Revenue$0the held meeting is unpriced

Reply rate on people contacted: 0.9%. On companies: 1.8%. Both are below the 8% the plan assumed and above the 0% this list had produced before. Twenty-one days is not a verdict on the offer; it is a verdict on the list.

Bounce rate by where the address came from
Address sourceSentBouncedRate
Supplied by the client47381.7%
Constructed by the agent471123.4%

The agent inferred missing addresses from patterns it could already see at the same domain. It is fourteen times worse at this than the client's list, and an MX check catches none of it — every bounced domain publishes valid mail records. The defect is a wrong name on a real company's domain, which only mailbox-level verification sees. 214 untouched constructed addresses were quarantined the day this was measured.

The failure ledger

Four things that went wrong, and what each cost

The brake bit

On 17 September the 24-hour bounce rate touched 5.3% and the guardian soft-paused the entire email channel. Roughly 4,000 queued touches were refused over about thirteen hours before it cleared itself.

channel:soft-paused until 2026-09-17T16:48:57Z (24h bounce_rate 5.3% exceeded 5.0% threshold)

VerdictWorking as designed. A day of lost volume is cheaper than a burned sending domain — and the source of those bounces was the agent's own guessed addresses, now quarantined.

Wrong company, right recipient

The lead file contained spliced rows where the company name, the domain and the contact belonged to three different organisations. The composer rendered them faithfully, which meant one prospect was told about another company's rating.

FixedThe ingest now flags name/domain mismatches as their own review class — not folded into the existing validation list, because adding a finding to an old list silently changes every decision that list drives. Five provable cases paused; the rest went to a human, since most mismatches are ordinary parent companies.

The best follow-up was starving

With a backlog, owed touches were released in calendar-day order. That meant the day-2 email — two replies from 109, both negative — permanently outranked the day-5 email, which had produced the only positive follow-up in the campaign. The weakest touch was systematically eating the strongest one's budget.

FixedOwed touches now queue by measured reply rate, with day order breaking ties. Nothing is skipped; the sequence shape is unchanged.

Arithmetic that insulted the reader

One email computes how many five-star reviews a company needs to climb back to 4.0. On thin profiles the honest answer is “two” — printed directly above a paragraph arguing that reviews move the needle. Twenty-two companies fell under that floor and nineteen had already been sent it.

FixedThat touch now refuses to render below a minimum gap. For thin profiles the argument is different and so is the email.

What transferred

Findings that will change the next campaign

5.9% vs 0.4%

The second person at a company replies fourteen times better than the first. Both meetings came from the third or fourth person contacted there. Multi-threading is not a volume tactic; it is the tactic.

30 minutes

Four of six replies arrived inside thirty minutes of the send. Mail is read on arrival or not at all. The scheduler now sorts toward the recipient's local morning, not the sender's.

Touch 1

Every positive first contact came from the opening email. Not one from the proof email, which went 0 for 46. Follow-ups keep a thread alive; they do not start one.

61% absent

201 of 329 companies were not named when an AI assistant was asked for the top five in their own category — a second, unclaimed problem, and a better opening line for thin profiles.

Segment > severity

Financial services converted 2 of 4 companies; the 23 residential real-estate firms that made up half the original list converted 2. The worst ratings were not the best prospects — often their reviews were simply true.

One hard no

A prospect rejected the entire category — “we deliberately do not manage ratings in any form.” Logged as a loss against the offer, not the copy. A campaign that cannot record that keeps optimising the wrong thing.

The dataset

Who an AI assistant names instead

Every company in the campaign was checked once: name the top five providers in this category, asked of an AI assistant, answer recorded verbatim with the date and the model. Aggregate results, no company named.

Absent from an AI assistant's top five, by industry
IndustryCompaniesAbsentShare
Insurance1098678.9%
Hospitality403075.0%
Hospitals & health care13861.5%
Financial services573256.1%
Real estate25936.0%
Banking24729.2%
All 329 companies32920161.1%

Single-model snapshot, asked once, September 2026 — a reading, not a ranking. Quoted to prospects only as what it is: “when we asked an AI assistant on this date, it named these three, not you.”

Where it stands, 18 September 2026

One meeting, no revenue, 727 people still in sequence

The meeting that was held came from a US consumer-finance brand rated below two stars by its own customers — reached through a colleague, after the first people contacted there stayed quiet. Three weeks from first email to twenty minutes on a call. It has not yet been priced.

One meeting is not a business. It is the first evidence that the machine can produce a conversation a principal wants to be in — which is the only thing twenty-one days can prove, and the thing this list had never produced before.

Held-meeting receipt: calendar invite, class calendar_invite, recorded 2026-09-17T21:43Z. The campaign has one writer for that status and it demands a receipt and a pointer; a positive reply can never be counted as a meeting.

What is still missing is supply. Every lead file on hand is fully enrolled, and the four ways to find more companies without a human are the four closed routes above. That is the honest constraint, and it is not a software problem.

The offer

The same machine, pointed at your list

Rick Acquisition runs this loop for one client at a time: segment the list, compose from a proof pack that refuses invented numbers, sequence it, send it, catch the replies, and stop itself when something is wrong. You supply the list and the approval, and you show up for the yes.

Rick Acquisition — $800/month

Every figure on this page is drawn from the campaign's own send ledger, referral record and integrity checks, on 18 September 2026. Prospect names are withheld deliberately: they did not consent to appear in marketing, and a campaign that publishes the people it emailed has no business asking anyone to trust it. Trustpilot is a trademark of Trustpilot A/S; this page describes its published crawling policy and is not affiliated with it.

Running an acquisition agent in public · part 1 of 3

The other two