B2B cold outreach · Automated prospecting
A system that finds clients on its own and brings warm leads to a sales rep.
The client supplies housekeepers, cooks, and waiters to hotels and restaurants in a southern region. The system builds the company database on its own, detects who is hiring right now, sends a personalized offer, answers first questions, and hands interested prospects to a sales rep.
Sales relied on manual calls: the database grew at the pace of one sales rep, and nobody knew whom to contact
The system builds a database of hotels and restaurants, finds those hiring, messages them and hands interested ones to a sales rep
~5% of the database becomes warm leads with no sales rep involved: the system prospects, writes and hands over interested companies
By the numbers
The problem
Why cold sales hit a ceiling.
- Sales relied on manual calls. The rep searched for hotels, found contacts, wrote, and followed up alone. The database grew at the speed of one person.
- No way to tell who needs the offer today. A fully staffed hotel and a hotel urgently looking for ten housekeepers look the same on a list.
- Search returns junk instead of the company website: booking aggregators, directories, job boards, company check services. One aggregator turned out to be the "website" of 135 companies.
- Template outreach doesn't work. An email not tied to the specific company and its openings goes to the trash, and the domain goes to spam.
- No developer on staff. A sales rep has to run the system through a spreadsheet and a simple web panel, without a console or tickets to a contractor.
How it works
Five steps from a registry to a warm lead.
-
The system builds the company database
The foundation is the government hotel registry. A search API finds websites by name and city, and a crawler pulls emails and phone numbers, prioritizing HR addresses. Existing databases are imported too. Everything merges into one record on four keys: company registry number, domain, phone, and name plus city.
-
Filters out junk and finds who is hiring
A registry of nearly a hundred directory domains filters out aggregators and listings; a language model resolves borderline cases. A job site shows who is hiring right now and for which positions.
-
Sends a personalized offer
Each email combines the client's copy with the company's data. Only companies with open positions get the paragraph about them. Three emails in one thread, then one message in each of two messengers.
-
Reads replies and answers first questions
The inbox is checked every minute. A reply in any channel stops the sequence. The model answers the first one or two messages from the client's fact base.
-
Hands the warm lead to a sales rep
Interest, a pricing question, or low model confidence triggers a handoff to the rep with a messenger notification. From there a person runs the conversation with the full history in front of them.
Features
What the system includes.
A database from four sources
Registry: 8,489 records; search: 5,956; job listings: 237; import: 158. After deduplication: 8,754 companies, 2,388 with a website, 1,615 with email, 1,994 with a phone number.
"Hiring now" signal
230 companies with 1,920 open positions. The model cleans up job titles, so the email names the company's actual positions instead of generic phrases.
Copy stays under the client's control
The model fixes grammar but doesn't rewrite the meaning. An anchor system checks that the signature, phone number, links, and numbers stay in place.
A three-channel sequence
Email and two messengers. At the end: a "not responding" status, or occasional nurturing for those who replied "not now".
Careful sending
Per-mailbox limits, 45–180 second pauses, a 9–18 sending window, one-click unsubscribe, a stop list, and stop words. Only public corporate contacts. Domains are warmed up over 4–6 weeks, starting with a low limit that grows on schedule.
Inbound reply sorting
Auto-replies and bounces are filtered out before the model sees them. Categories: interest, question, rejection, "not now", "wrong contact", auto-reply.
The model doesn't make up prices
It answers only from the client's fact base. If a fact is missing or confidence is low, the conversation goes to a sales rep.
A panel that needs no developer
A Google Sheet as the data view, plus a web panel with three buttons, conversations, manual replies, and copy editing with live preview. Daily and weekly reports; the operator guide is built in as help.
Economics
Before and after in one table.
| What changes | Before | After |
|---|---|---|
| Finding clients | manual calls from lists | 8,754 companies in a single database |
| Who to contact first | guesswork | 230 companies with open positions |
| First touch | the rep writes to each one manually | a sequence across email and two messengers |
| First replies to the client | whenever the rep gets to it | checked every minute, answered from the fact base |
| Sales management | no unified system | spreadsheet, web panel, daily and weekly reports |
Who it's for
Where the system works.
Anywhere clients are numerous and scattered across public registries and websites, and the right moment for an offer shows up as an external signal: job openings, tenders, new locations.
What's different
Why this isn't just an email service.
Data first, outreach second
Deduplication and directory filtering took longer than the sending itself. A hotel chain sharing one email, one aggregator covering 135 companies: without this layer, outreach misses the target.
No silent losses
A disabled channel doesn't report a send, a reply isn't lost when flagged as an auto-reply, and a lead counts as handed off only after it reaches the rep.
Product-grade reliability
A task queue with idempotency keys, 3,808 automated tests, a contract test for every external adapter, encrypted backups, and external uptime monitoring.
We'll build a system like this for your niche in 3–4 weeks.
Free audit: in 30 min, we'll work out which sources to build your database from and which signal points to clients ready to buy now.
Quiz · 6 questions · 1 minute
Or right away: Telegram · @one_lab_support → · hello@1-lab.dev