Trigger-based outreach means you write to a company only when a recent, dated event gives you a reason, such as a new location, a job post for the problem you solve, or a new leader. A person approves every message before it sends. You judge it by how many good-fit buyers reply wanting to talk, not by messages sent.
A Detroit homebuilder kept asking recent buyers what finally made them move. Couple after couple gave the same answer. They had just come home from a friend's funeral.
So the builder moved its newspaper ads from the real estate pages to the obituaries. Traffic rose 37 percent and ad costs fell 70 percent, Bob Moesta reports in Demand-Side Sales 101. He calls the close rate on those leads unbelievable.
The houses did not change. The timing did.
Trigger-based outreach is the same move for cold email. You write to a company only when a recent, dated event gives it a reason to talk this week.
We hold every message to one check, the Because Test. Finish the sentence "I am writing because" with a fact from the last few weeks. No fact, no send.
We draw one line first. The builder put ads where grieving people looked. We never write to a person about their private life.
Company events are fair. Funerals are not.
Moving the ads to where the trigger happened cut their cost by 70 percent
Source: Bob Moesta with Greg Engle, Demand-Side Sales 101 (2020). The author's reported result, not audited.
A list tells you who might buy. A signal tells you when.
Moesta describes a buying timeline. First comes a nagging thought that something is wrong. Then comes passive looking, which can last for years.
Passive lookers notice things but plan nothing. An event pushes them into active looking, where they spend time and money on a fix. A deadline then pushes them to decide.
One case in the book is a friend who bought a mattress on a Saturday shopping trip and called it an impulse buy. How long had he slept badly? Two years.
So what does a cold list do? It mails passive lookers at a random moment.
Most of them are not ignoring you. They are not shopping yet.
Lists still matter. In Traction, Gino Wickman tells how his sales training firm counted every company that fit its target: 525 presidents and CEOs. Over time it won more than half of them as clients.
Keep that list. It is the universe you watch, and it tells you how many companies you could ever win.
The signal decides which name on it gets a message this week. A list with no timing is a phone book.

People shop only after an event pushes them
Source: Demand-Side Sales 101 (2020), the first four of its six buying stages and the events between them.
A list says who could buy. A signal says when
| A list | A signal |
|---|---|
| Tells you who could buy | Tells you when they might buy |
| Refreshed now and then | Dated, and stale in weeks |
| The same message to everyone | A first line only this account earns |
| Most names are not shopping | This account just got a reason to look |
Anar's rule. Keep the list as the universe; let the signal pick the week.
Before any outbound message sends, finish the sentence "I am writing because" with a dated fact about the company from a source you are allowed to use: a funding filing, a job post for the problem you solve, a new location, a new leader in the buying seat, a run of reviews naming the failure you fix. If the only honest ending is "you are in our target market," the message does not go. Never use a person's private life.
Score the account on fit, signal strength and freshness, draft only at 6 of 8, and let a named person approve every send. Then count qualified replies by signal, hold back one in five accounts as a check, and keep only the signals that bring buyers.
A buying signal is a dated event that suggests a company just moved from passive to active looking. It earns a message only if it passes three checks.
You are allowed to collect it. It is still fresh. It earns a specific first line.
Some of the best signals are public records. A private company that raises money under a common exemption files a Form D, a short notice to the SEC with the offering size and the date of first sale.
Others you see by reading: a job post for the role your service supports, a second location opening, or three recent reviews that name the failure you fix.
The best ones are already yours. A trial that stalls at the same step. A contact who backed you at a past customer, now announcing a new job.
Two hard lines. We never buy lists of people, and we never point software at a site whose terms ban scraping.
Code can watch public records and your own data. A person reads everything else. If you cannot write the first line, the signal is noise.
Six signals, where you see them, and the first line each one earns
| Signal | Where you see it | Fresh for (our start) | First line it earns |
|---|---|---|---|
| Funding filed | Form D on the SEC's public database | 60 days | "You filed a new funding round last month." |
| Hiring for the problem you fix | Their own careers page | While the post is open | "You are hiring a billing clerk." |
| New location | Their site or a public business listing | 60 days either side of opening | "Your second office opens in June." |
| New leader in the buying seat | Their announcement page | First 90 days | "You started as operations director this month." |
| Reviews naming the failure you fix | Public review pages, read by a person | 3 or more in 30 days | "Three recent reviews mention long hold times." |
| Stalled trial or open question | Your own CRM | 14 days | "Your trial stopped at the import step." |
Signal list and freshness windows are Anar's starting points; tune them on your own replies. Form D: Investor.gov (SEC).
Marketing engineering began as a way to make exactly this call. Gary Lilien and Arvind Rangaswamy put the term on a textbook first published 1998, as the history of the field shows. They meant decisions made with data, a model and a manager's judgment.
Their textbook has a worked example every outbound team should copy. Expected profit is the chance a customer buys, times how much they buy, times the margin. Contact only the customers whose expected profit beats the cost of reaching them.
In the example, reaching each customer cost $3.50. Contacting the four with the best expected profit made $9.29. Contacting all ten made $2.20.
And the three biggest buyers? Contacting them lost $5.02. Big did not mean likely.
A marketing engineer, as we define the role in what a marketing engineer is, builds the system that makes this call every day. A fresh signal raises the chance someone buys. So we score each account before any draft is written.
Fit with your best customers, 0 to 3. Signal strength, 0 to 3. Freshness, 0 to 2.
Draft only at 6 or more. Move the cutoff once replies show which scores pay.
Contacting the likeliest buyers made four times the profit of contacting everyone
Ten customers, $3.50 to reach each one. Expected profit = chance of buying x purchase size x margin.
| Who gets contacted | Profit after the cost to reach them |
|---|---|
| The 4 with the highest expected profit | $9.29 |
| All 10 customers | $2.20 |
| The 3 biggest buyers | A loss of $5.02 |
Source: Lilien, Rangaswamy and De Bruyn, Principles of Marketing Engineering and Analytics, Exhibit 3.12.
Draft only for accounts that score 6 or more out of 8
| Mark | What it measures | Range |
|---|---|---|
| Fit | How close the company is to your best customers | 0 to 3 |
| Signal strength | How directly the event points at the problem you fix | 0 to 3 |
| Freshness | How recent the event is, inside its window | 0 to 2 |
| Cutoff | Draft at 6 or more; move it once replies show what pays | 6 of 8 |
Anar's rule, a rough stand-in for the textbook's chance-of-buying column.
The Because Test is our rule that every outbound message opens with a true, dated reason to write now. It takes ten seconds to run.
Write "I am writing because" and end it with a fact. If the honest ending is "you are in our target market," the message dies.
If the ending is "your second office opens next month," it may live. That fact becomes the first line. The ask is one small next step.
Why so strict? The first message has one job. It earns a reply, not a sale.
Every draft also carries the source link in the log. If the approver cannot click through to the fact, the fact does not exist.
No because, no send.
A dated fact in the first line, or the message does not go
| Fails | Passes |
|---|---|
| "I am writing because you are in our target market." | "I am writing because your second office opens next month." |
| "I loved your recent post." (Nobody read it.) | "You posted a job for a billing clerk on Monday." |
| "Just checking in." | "Three reviews this month mention long hold times." |
| Asks for a 30-minute demo | Asks one small question about the event |
Anar's rule. Examples are made up.
One AI agent told to find prospects, invent offers and email them will fail in a known way. John Berryman and Albert Ziegler walk through that failure in Prompt Engineering for LLMs.
They gave an all-purpose agent web search and email tools. It ran a lazy search. Then it wrote form letters with the placeholder [your_name] still in them.
Their fix was a workflow. Each task is small, with a clear input and a clear output, and code moves the work between tasks.
We build the engine the same way, as seven jobs: watch, check, research, score, draft, approve, log. The chart below shows what goes in and out of each.
Their book asks a question we put on every job: can this task run without an AI? If yes, use plain code. It is cheaper and more reliable.
Watching a filings feed is code. Checking freshness is code. Writing the first line is where the AI earns its place.
Write each job's brief the way a job spec for an AI agent shows. Keep the briefs, the scores and the banned phrases in your growth repo.
Seven small jobs, each with one input and one output
Anar's workflow, built on the task-and-workflow design in Prompt Engineering for LLMs.
One big agent fails quietly; a workflow fails one job at a time
| One big agent | A workflow of small jobs |
|---|---|
| One long instruction for everything | One short brief per job |
| A lazy search and form letters | Each job returns a checked output |
| When it fails, nothing obvious to fix | When it fails, you fix one job |
| No queue for the accounts | Each account moves through in order |
Source: Berryman and Ziegler, Prompt Engineering for LLMs, chapter on workflows.
Lilien and Rangaswamy drew the line on automation long before AI agents. Automate a decision when a wrong call is cheap, like a product recommendation. Keep a person in it when a wrong call is costly.
A cold email is the costly kind. It puts your name in front of a stranger. It cannot be unsent.
Chains make it worse. Chip Huyen's AI Engineering does the math: a step that is right 95 percent of the time, chained ten times, ends right about 60 percent of the time.
So the AI researches and drafts. A named person approves, edits or kills every message.
Each kill gets a reason. The reasons go into a banned-language file. The drafting job reads it every time.
Start with a cap of 20 approved messages a day. Read every reply yourself for two weeks. Raise the cap only when complaints stay flat and replies stay good.
The agent drafts. A person sends.
Ten steps that are each 95 percent right end right about 60 percent of the time
Chance the whole chain is right, by number of steps at 95 percent each
Our arithmetic (0.95 to the power of the number of steps), after the example in Chip Huyen, AI Engineering.
Cheap mistakes run alone; a message to a stranger waits for a person
| Job | Cost if it goes wrong | Who decides |
|---|---|---|
| Watch and check | A missed or extra event | Code |
| Research and score | A weak draft gets made | AI, checked by rules |
| Draft | A bad line someone must catch | AI |
| Send | Your name on a false or rude email to a stranger | A named person |
Anar's rule, after the automation rule in Lilien, Rangaswamy and De Bruyn, Principles of Marketing Engineering and Analytics.
A person sees the signal, the source, the score and the draft, then clicks

Example page built for this article with a made-up brand. Business, people, domain and address are made up; .example is a reserved domain.
How to burn a sending domain in four easy steps:
1) Buy a list of 5,000 people who never heard of you.
2) Tell an agent to "personalize" by praising each profile.
3) Send 500 a day from your main company domain.
4) Count messages sent and call it pipeline.
That is not outreach. That is spam with a damn dashboard.
Polite replies, but nobody books. The signal is real, but the ask is too big. Ask one small question about the event instead of offering a demo.
Every draft sounds the same. Research returns thin facts, so the AI fills the gap with flattery. Make research return the dated fact and its link, or nothing.
One signal fires all day. It is too broad, like "posted any job." Narrow it to jobs for the problem you fix.
Three ways the engine breaks, and the fix for each
| Symptom | Cause | Fix |
|---|---|---|
| Polite replies, but nobody books | The ask is too big | One small question about the event |
| Every draft sounds the same | Research returns thin facts | Return the dated fact and its link, or nothing |
| One signal fires all day | The signal is too broad | Narrow it to the problem you fix |
Anar's working fixes.
Messages sent is an activity count. It goes up every time you do more, whether anyone cares or not. That is a treadmill, not a pipeline.
A qualified reply is a human answer from an account that fits, showing interest or asking a real question. Count it once per person. Out-of-office notes, unsubscribes and "wrong person" do not count.
Track it by signal. If new-location signals bring replies and review signals bring none after a fair run, stop watching reviews.
The engine should get narrower before it gets bigger.
Alistair Croll and Benjamin Yoskovitz make a related point in Lean Analytics. How easily you get meetings early is a preview of what selling will cost. They also say to write down each stage of the sales funnel and its conversion rate after the first few sales.
We add one honest test. Hold back one in five accounts that show a signal, and send them nothing for a month.
Does the signal cause the meetings, or just predict them? If the accounts you wrote to book no more meetings than the ones you held back, the signal is not doing the work.
Work backward from revenue with book-a-call math to see how many qualified replies you need. Route every reply in minutes, as speed to lead describes. Grade the engine the way we measure a marketing engineer: on what buyers did.
Watch, write, count, cut: the engine narrows before it grows
Anar's weekly review.
Hold back one in five accounts to see if the signal does the work
| Group | What happens | What you compare |
|---|---|---|
| Written to (4 in 5) | Gets the Because Test message | Meetings booked in 30 days |
| Held back (1 in 5) | Gets nothing for 30 days | Meetings booked in 30 days |
| Written-to books more | The message is adding something | Keep the signal |
| No difference | The signal predicts but does not cause | Rethink the message or drop the signal |
Anar's rule.
Judge each signal by qualified replies, beside a group you held back

Example page built for this article with a made-up brand. Made-up numbers, no real results.
Outbound email is regulated, and the rules differ by country. The dated box below holds the details we checked. It is not legal advice.
In the United States, the FTC's CAN-SPAM guide says the law covers all commercial email, with no exception for business-to-business messages. Honest headers, a real postal address and a working opt-out are the floor.
Inbox providers add their own rules. Gmail's sender guidelines require email authentication for every sender and set a ceiling on spam complaints.
Boring? Yes. Optional? No.
Canada and the UK go further for some contacts. Have a lawyer review the program once before launch, and again before you add a country or a channel.
Claims inside the email follow the same truth rules as any ad. The FTC risk drivers in marketing claims lists the ones that cause most trouble.
The prompt below builds the engine in your preferred AI. It asks about your customer, your signals and your daily limit. Then it writes the signal table, the score, sample emails, a checklist and the ledger.
It never invents a fact about a prospect. Where it needs one, it leaves a marked gap.
This week, three steps. Today, count the companies that fit. Tomorrow, pick two signals and write the Because line each one earns.
By Friday, draft ten messages, approve them yourself, and start the signal ledger. Next, use the customer truth system to learn which pains your buyers name this week.
The homebuilder did not find better buyers. It found the moment. A list is the map, and the signal is the green light.
Paste into your preferred AI. It asks five questions, then writes your signal table, score, sample emails, checklist and ledger.
Act as an outbound planner for a small B2B team. Build my Because Test engine: outreach that writes only when a dated event gives a real reason. Ask me these one at a time, with the example, and wait: 1. What do I sell, and to whom? (Example: "bookkeeping for dental practices with 2 to 10 dentists") 2. About how many companies fit, and where is that list? (Example: "400, in our CRM") 3. Which events would make one of them need me now? (Example: "a new location, a new office manager") 4. Where can I see each event without buying data or scraping? (Example: "their careers page, our own CRM") 5. Who approves messages, and how many a day? (Example: "me, 20") Then build: 1. Signal table: event, source, days it stays fresh, and the "I am writing because" line it earns. Drop events I cannot see legally and anything about a person's private life. 2. Score: fit 0 to 3, signal strength 0 to 3, freshness 0 to 2. Draft only at 6 or more. 3. One email per signal: the dated fact first, why it matters, one small ask. Under 90 words. No flattery, fake urgency or unproven claims. 4. Pre-send checklist: dated reason with a source link, honest sender and subject, postal address, working opt-out, named approver. 5. Ledger columns: signal, sent, qualified replies, meetings. A qualified reply is a human answer from a fitting account showing interest or asking a real question. Rules: - Never invent a fact about a prospect or a number about my business. Ask, or write [CONFIRM: what you need]. - Nothing sends without my approval. - If you can browse, check the FTC CAN-SPAM guide and Gmail's sender guidelines for changes and say what you used. This is not legal advice. Output: the table, the score rule, the emails, the checklist, the ledger columns, and my next three actions.
You are not committing to a campaign. Bring the kind of customer you want more of, and in 15 minutes we will tell you which two signals we would watch first and how you would know it worked.
See how we build them →Want to do this work yourself? See how we train marketing engineers.