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.

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.
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.
Four decisions, each one learned from watching the first version make a mistake.
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.
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.
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.
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.
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.
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.
A fast model writes the personal line and classifies replies; a stronger model drafts the reply that goes out under the client’s name.
Sends from the client’s own mailbox with human spacing, watches the inbox over IMAP, and reports to the owner’s phone.
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.
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.

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.

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.

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.

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.

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.
| Action | By hand | In the system | Saved / 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 min | 0.3 min | 8 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 min | 0.2 min | 10 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 min | 0 min | 3 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 min | 1 min | 2 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 min | 0 min | 1 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 min | 1 min | 2 hrs |
| Total hours given back per year | 27 hrs | ||
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.
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.
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.
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.
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.
Pushes sends, replies, classifications, and bookings to the owner's phone, replacing the manual spreadsheet update.
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 →