Vernon Tech & MediaCase Study
All case studies · Agent build: hospitality client
Agent build // restaurant client

An outreach agent that books the table itself.

For a family-owned restaurant we built an agent that finds local food creators, writes each one a personal note, sends from the restaurant’s own mailbox, reads every reply, and books the visit. A human only steps in when the agent decides the stakes call for it. In its first nine-day run it contacted 137 creators, and one in five wrote back.

137 creators contacted21.2% reply rate5 visits booked3-touch cadence, auto-stopped on reply2 models Haiku + Opus
Outreach agent approval card on a phone in a restaurant
The problem

Creator outreach was a part-time job nobody had time for.

Finding local creators means scrolling hashtags, opening profiles, checking they are actually in town, and digging an email out of a bio. Then a personal note to each, sent at a human pace, then remembering to follow up, then reading replies and not double-booking a Saturday. Agencies charge a retainer for it; a VA does it slowly; the owner never gets to it.

Modash (influencer discovery, vetting, contact data, tracking)
Performance (mid tier of Essentials / Performance / Enterprise)
$5,988 / yr · $499/mo
Instantly (cold email sending, sequencing, inbox rotation)
Growth
$451 / yr · $38/mo
Part-time virtual assistant (outreach labor: sourcing, vetting, writing, sending, reply handling, follow-ups, reporting)
US VA at $25/hr, 160.7 hours/yr (6 campaigns x 100 prospects x 26.78 h)
$4,018 / yr · $335/mo
Annual cost of the stack, mid-tier plans$10,457 / yr
→
consolidated
into one
V

AI Outreach Agent

One agent, four scheduled jobs: discover, send, read and reply, report. It runs at 9 AM and 3 PM, every 15 minutes, every 5 minutes, and at 5 PM, whether anyone is watching or not.

Apify discoveryGeo + follower filterPersonal lineOwn mailboxReply classifierDate anchoringTelegram approvals
The approach

How we thought about the problem.

Four decisions, each one learned from watching the first version make a mistake.

01 / Voice

Personal, not generated.

Each email is a hand-written frame with one short, model-written clause grounded in the creator’s own bio, capped at fourteen words. Subject and paragraph variants are picked by a seeded hash of the recipient, so retries are identical and no two leads get the same body.

02 / Judgment

Read the room before replying.

Every reply runs through a classifier that outputs a pipeline stage and a geo flag. An “unusual ask” detector (buyouts, private events, group size, allergies, payment specifics) hard-routes to a human, because the model once answered a question nobody asked.

03 / Time

Anchor every date to when they wrote.

The reply drafter is handed a computed date table so “this Saturday” resolves against the creator’s send time, not today. If a draft still contains an unresolved relative date, auto-send is blocked.

04 / Control

Human where it counts, nowhere else.

Safe replies auto-send under a daily cap. Everything else becomes a Telegram card with Send, Skip and Edit. Booking confirmations and phone numbers volunteered mid-thread are extracted and written back to the pipeline automatically.

The stack

What it’s built on, and how the pieces talk.

No dashboard is required to run it day to day; the operator’s interface is a Telegram notification. The pipeline itself is four cron jobs against one Postgres schema.

Layer 1

Discovery

Two-stage Apify scrapes by a curated list of local hashtags, with a follower window that shifts by time of day, then email recovery for profiles without one.

Apify TikTok + Instagramemail findergeo filterdedup
discover · 9 AM and 3 PM
Layer 2

Reasoning

A fast model writes the personal line and classifies replies; a stronger model drafts the reply that goes out under the client’s name.

Claude Haiku 4.5Claude Opusrules tabledate anchor
send every 15 min · read every 5 min
Layer 3

Delivery + ops

Sends from the client’s own mailbox with human spacing, watches the inbox over IMAP, and reports to the owner’s phone.

nodemailer SMTPimapflow IMAPVercel cron ×4Telegram Bot API
Wired in
Apify
Anthropic Claude
SMTP + IMAP
Vercel cron
Supabase Postgres
Telegram Bot API
Seeded variants
Guardrails
It has been rebuilt three times with increasing ambition: a Claude Code skill run by hand, then an always-on cron agent, then a reusable outreach module inside the CRM so any client can run it.
Where it stands todayThe numbers in this study come from the campaign’s real send and reply history. The fully unattended cron version is deployed and its schema is live, but the results cited belong to the agent’s first generation, run from a Claude Code session. We say that so the claim holds up if you ask.
Inside the product

The five surfaces of an agent that emails people.

The pipeline board lives in the CRM. The rest is what the creator and the owner actually see: the email, the reply and its verdict, the approval card, and the 5 PM digest. All invented names.

Pipeline

Every prospect on a seven-stage board.

Queued, sent, replied, interested, booked, posted, passed. The agent moves cards as replies come in and pauses automation the moment a human takes over a thread.

crm_outreach_prospects · stage · needs_you · automation_paused
Outreach · Pipeline
Outreach · Pipeline
The email

One personal line, a real offer, sent at a human pace.

A short note from the owner with a single clause written about that creator, an offer of a comped tasting for two in exchange for one post, and a mention that top performers get paid. Sent from the restaurant’s own domain with 35 to 75 seconds between sends.

templates.ts · SUBJECT_VARIANTS · personal_line · seeded PRNG
Gmail · the cold email
Gmail · the cold email
The reply

Classified, date-anchored, drafted, and sent if it is safe.

The classifier tags the stage, checks geography and scans for unusual asks. The drafter resolves “this Saturday” against the day the creator wrote, confirms the visit, and auto-sends because the stage is safe and the daily cap has room. The booking is written back to the pipeline.

classify() · hasUnusualAsk() · date anchor · AUTO_SEND_SAFE_STAGES
Reply · classified and drafted
Reply · classified and drafted
Approval card

When the agent is unsure, it asks, with buttons.

A private-event question trips the unusual-ask detector, so instead of guessing, the agent sends the owner a card: the message, why it was routed, the proposed draft, and Send, Skip, Edit. Batches get an Approve-all.

bot_drafts · Telegram inline keyboard · webhook callbacks
Telegram · needs you
Telegram · needs you
Daily digest

The whole day in one message.

Leads scraped, cold emails sent, replies in and out, visits today, the pipeline funnel, and the next seven days of bookings, delivered to the owner’s phone at 5 PM.

cron-daily-digest · bot_daily_stats
Telegram · 5 PM digest
Telegram · 5 PM digest
Why clients switch

The math a client sees before they say “I want this.”

Replaces $10,456.70 a year of software and outreach labor with $528 a year of running cost, gives back 26.8 hours for every 100 creators contacted, and it already produced 137 contacted, 29 replies, a 21.2% reply rate, 5 bookings at 1.28 touches per lead, and paid collabs closed.

Software you stop paying for
$10,457
per year, at mid-tier plans, across 3 tools. $31,370 over three years.
Hours given back
27 hrs
per year at 100 prospects, across 6 everyday actions. Worth about $1,339 at $50/hr.
Net position
$9,929
year one, after Agent running cost (build included in the marketing retainer) ($528). $29,786 over three years, before counting the hours.

The stack this replaces

Current published list prices, mid-tier plans, billed annually.
Modash (influencer discovery, vetting, contact data, tracking)Performance (mid tier of Essentials / Performance / Enterprise)$5,988 / yr
Instantly (cold email sending, sequencing, inbox rotation)Growth$451 / yr
Part-time virtual assistant (outreach labor: sourcing, vetting, writing, sending, reply handling, follow-ups, reporting)US VA at $25/hr, 160.7 hours/yr (6 campaigns x 100 prospects x 26.78 h)$4,018 / yr
Annual stack$10,457
AI Outreach Agent$528 once
Apify Starter $19/mo x 12 = $228 (https://apify.com/pricing), Anthropic API budgeted at $60/yr, Vercel Pro $20/mo x 12 = $240 (https://vercel.com/pricing). No separate build fee: the agent is delivered inside the monthly retainer, so only this pass-through runs.

Time saved at 100 prospects

Minutes to do it by hand in the old tools versus inside the system, scaled to a year.
ActionBy handIn the systemSaved / yr
Find and vet a local creatorOpen the hashtag or location feed, scroll to a post, open the profile, eyeball follower count, read the bio for a city or a neighborhood, scan the last few posts to confirm they actually live and shoot locally, check that engagement is not bought, tap the email button or copy the address out of the bio, paste name plus handle plus email into a spreadsheet. Roughly two or three profiles get opened for every one that survives vetting, and 5 minutes is the blended cost per kept prospect.5 min0.3 min8 hrs
Write a personalized first emailRe-open the creator's profile, find something real to reference (a recent dish, a venue, a series they run), write an opening line that proves you looked, paste the offer body, adjust the subject so it does not read like a blast, proofread. Six minutes is the low end of the realistic 6 to 8 minute range.6 min0.2 min10 hrs
Send with spacing and log itPaste into the mail client, set the subject, send, deliberately wait so the sends do not land in a burst, then go back to the sheet and log the date, mark the row contacted, and check the person was not already emailed from an older list.2 min0 min3 hrs
Read and classify a reply, then draft a response with correct datesOpen the reply, work out whether it is interested, a question, a rate request, or a no, pull up the calendar to find real open dates, check the offer terms, write a reply that answers the actual question and proposes specific days, proofread, send. Eight minutes is the conservative end of the realistic 8 to 10 minute range.8 min1 min2 hrs
Run 3-touch follow-ups on timeScan the sheet for who was emailed and when, work out who is due for touch two or touch three, re-read the original thread so the follow-up is not a copy-paste, write it, send it, update the row. In practice this is the step that quietly stops happening when the week gets busy.3 min0 min1 hrs
Daily reportingOpen the sheet, count what went out, count what came back, check the inbox for replies that were never logged, update the booked column, and write the day's status somewhere the owner will see it.10 min1 min2 hrs
Total hours given back per year27 hrs
Runs while you sleep
⚡
Geo-filtered creator discovery

Scrapes hashtag and location feeds through Apify, filters to the follower band and the service-area radius, and recovers public business emails, so the list arrives already vetted instead of arriving as raw handles.

On demand at campaign start, then on a refresh cadence as new local creators post.
⚡
Personalized first-touch composer

Haiku writes an opening line from the creator's actual recent content and the agent selects a seeded template variant, so 100 emails read as 100 emails rather than one blast.

Immediately before each send.
⚡
Human-paced sender with dedup

Sends over SMTP with randomized 35 to 75 second spacing, writes an IMAP copy into Sent so replies thread naturally in the real mailbox, and blocks any address already contacted.

Continuously through the sending window.
⚡
Reply classifier and auto-responder

Reads each reply, classifies intent, and has Opus draft a response anchored to the real current date and live availability, auto-sending when the classification is safe and escalating when it is not.

On every inbound reply.
⚡
Follow-up cron

Runs the 3-touch sequence on schedule and suppresses anyone who has already replied, which is the step that reliably gets dropped when a human owns it.

Daily, on the schedule set per lead.
⚡
Daily Telegram digest

Pushes sends, replies, classifications, and bookings to the owner's phone, replacing the manual spreadsheet update.

Once a day.
What it adds up to

One system, measured.

137
Creators contacted in nine days
21.2%
Reply rate on cold email
5
Visits booked, plus paid collabs
1.28
Touches per lead to get an answer
The takeaway

An agent that does the outreach, not a tool that helps you do it.

This is the difference between software you operate and software that operates. If your business grows by people reaching out to other people, we can build the agent that does the reaching.

Build one for your business →
Vernon Tech & Media