What Is a Signal Engine? (And Why Your CRM Isn't One)
A signal engine is a system that turns raw business events — opt-ins, replies, ad results, conversions — into ranked decisions and dispatched actions, on a schedule, without waiting for a human to log in. A CRM stores state; a signal engine acts on it. The one-line test: if nobody touches it for a week, does the pipeline keep moving? For a CRM the answer is no. For a signal engine, running is the default state.
The term describes a category most founders already want and don't have a name for. You bought the CRM, the enrichment tool, the email platform, the ad account — and you're still the router connecting them, every morning, by hand. This article defines the category and uses cani-loop, the signal engine that runs inbound for the Optimus ecosystem, as the reference implementation.
What counts as a signal?
A signal is any event that should change what the business does next. In an inbound pipeline that means:
- A new opt-in — someone traded their email for something you made.
- An enrichment hit — that email resolves to a title, a company, a revenue band, a C-suite.
- A reply — a human on the other end engaged, which changes everything downstream.
- A conversion — someone bought, which should immediately reshape who your ads target next.
- An ad-spend result — a creative's cost per lead crossing a kill threshold.
Every one of those events sits in some tool today, unread until a human reads it. That gap — between the event happening and anyone acting on it — is where pipelines quietly die. cani-loop's target is under fifteen minutes from fit opt-in to first send, and it holds that target at 3 a.m.
How is a signal engine different from a CRM?
| CRM | Signal engine | |
|---|---|---|
| Default state | Waiting for input | Running on a clock |
| Unit of work | A record you update | An event it acts on |
| Prioritization | Whatever you sort by | Scored against an explicit ICP, every tick |
| Follow-up | A task it assigns to you | A send it drafts, queues, or fires |
| Learning | None — month 12 works like month 1 | Outcomes feed targeting; the loop sharpens |
| Who it needs | An operator, daily | An architect, occasionally |
None of this makes the CRM useless — it stays the system of record. But asking a CRM to run your pipeline is asking a filing cabinet to make sales calls. It was never the job the software was built for.
What's actually inside a signal engine?
cani-loop is an OODA + Learn agent factory. OODA — Observe, Orient, Decide, Act — is John Boyd's model of decision cycles, born in air combat: the side that cycles faster and more accurately wins, not the side with more resources. A signal engine runs that cycle as software, with a fifth step Boyd's pilots did in the debrief:
- Observe — Capture. Every source (Meta Lead Forms, landing pages, portal opt-ins) normalizes into one event queue. Adding a source is an afternoon; the brain never changes.
- Orient — Qualify. Apollo resolves the email into title, seniority, revenue, headcount, and the whole C-suite at the domain. The account is the unit, not the person.
- Decide — Score. Claude Opus ranks every lead against the $5–$50M founder-architect ICP. Fit founders rise. Freebie-seekers get monitored, not chased.
- Act. Sarah, the outbound agent, sends in the founder's voice — warm follow-ups auto-fire, high-stakes cold sends wait for one-click approval, replies stay in her inbox.
- Learn — Feedback. Converted buyers get hashed into Meta Custom Audiences the same day, and Lookalikes rebuild off real receipts instead of guesses.
Then the cycle closes and runs again next hour. That closed circuit is what makes it a CANI loop — Constant And Never-ending Improvement with a mechanism instead of a mood.
Why can't I just wire this with automation branches?
You can wire the plumbing — webhooks, zaps, if-this-then-that. What branches can't do is exercise judgment inside the loop. "If tag = downloaded-guide, send email 2" doesn't know that this particular opt-in is a marketing manager at a $20M company whose founder is the real buyer, and that the correct move is a referenced multi-thread send to the founder by name. That call requires a model reasoning over enriched context — which is why the scoring seat in cani-loop is Claude Opus with the full buyer context loaded, not a rules table.
The judgment layer is also what makes safety gates necessary. An engine that drafts sends in your name needs approval gates, consent-only ad audiences, and suppression memory — the failure modes are covered in the six mistakes founders make when they automate outreach.
What does it take to run one?
The honest answer: a stack, keys, and wiring. cani-loop runs on Anthropic's API for scoring and composition, Apollo for enrichment, the Meta Marketing API for audience feedback, Resend and a Gmail-OAuth mailbox for sends, and Railway/Vercel/Postgres underneath. That's the stack you'd hire a five-person team to babysit — wired once so no one has to. If the build isn't the business you want to be in, the outcome is available another way: the receipts behind this ecosystem live at gimmetheproof.com, and the path to having the loop run against your ads starts with this straight answer on availability.
FAQ
Does a signal engine replace my CRM?
No — it sits on top of whatever your leads land in today. cani-loop reads from the capture layer (Meta Lead Forms, landing pages, portal opt-ins), enriches through Apollo, and writes outbound through the agent's mailbox. The CRM keeps being the system of record. The engine is the system of action.
What is an OODA loop?
OODA — Observe, Orient, Decide, Act — is military strategist John Boyd's model of decision cycles: whoever cycles through it faster and more accurately out-maneuvers the opponent. A signal engine is an OODA loop plus a Learn step, running as software: it observes events, orients by ranking them against your ICP, decides what to dispatch, acts, and feeds outcomes into the next cycle.
How often should a signal engine run?
Faster than your buyers cool off. cani-loop ticks hourly and targets under fifteen minutes between a fit opt-in and the first send. Daily batch processing was a constraint of human-operated pipelines; there's no reason for software to inherit it.
Is a marketing automation platform a signal engine?
Not quite. Automation platforms execute pre-written branches: if tag, then email. A signal engine makes judgment calls inside the loop — scoring a lead against an ICP, deciding whether the opt-in is the real decision-maker, choosing to multi-thread to the founder instead. Branches don't learn. Engines do.