KOVA SIGNALS

Done-For-You Client Engine · one vertical — yours

Your buyers announce themselves in public records. We build the machine that reads them.

A prospecting engine configured to one vertical — yours. We find the public record that fires when your buyer is forced to act, measure it before we build anything, and then keep the feed running. You get named companies with a date and a link they can verify, every cycle.

The first call is a trigger workshop, not a pitch. If your vertical has no usable public record, we tell you on that call and there is no build.

openFDA recall records · free, no key

29,264

agents/dfy-client-engine/dfy_gate.py · 2026-07-29

Publication gaps exactly 7 days

51 / 51

weekly, Wednesday · dfy_gate.py · 2026-07-29

FMCSA suspension orders / month

3,681

agents/haulrisk/manifest.yaml · gate 5b

Chicago register lag

1 day

agents/chicago-signal/manifest.yaml · gate 5a

We ran this on our own businesses first

Every number here is a measurement. Each one names the file it came from, and where the script that produced it is in this repo, that file names the script too. Re-run them before you quote them back to us.

Measurements from the businesses this engine already runs
What we measuredResultWhere it came from
FMCSA suspension orders, national, per month3,681agents/haulrisk/manifest.yaml · gate 5b
Those orders that publish before their own deadline99.7%agents/haulrisk/manifest.yaml · gate 5a
New Chicago business licences per month604agents/chicago-signal/manifest.yaml · gate 5b
Chicago licences expiring inside 60 days5,055agents/chicago-signal/manifest.yaml
Chicago publication lag1 dayagents/chicago-signal/manifest.yaml · gate 5a
Owner records available free on the same source329,664agents/chicago-signal/manifest.yaml · gate 5c
openFDA food recall records available, no key, no fee29,264agents/dfy-client-engine/dfy_gate.py · run 2026-07-29
Food recalls in the last 365 days1,496 rows → 549 firm-events → 503 firmsagents/dfy-client-engine/dfy_gate.py
openFDA publication cadenceweekly, Wednesday — 52 publications, 51 of 51 gaps exactly 7 daysagents/dfy-client-engine/dfy_gate.py
Measured 2026-07-28 and 2026-07-29 · scripts and manifests in-repo, named per row

And here is what we killed

This is the more useful half. A firm that only shows you its wins is showing you its marketing.

Sources and businesses we measured and rejected
What we measuredResultWhere it came from
Compliance Signal — our own business, shut down18 events/month, one event routed to one buyeragents/_shared/MASTER_SPEC.md §1
New York City business licences103 days staleagents/chicago-signal/manifest.yaml
Kansas City business licencespublishes no dates at allagents/chicago-signal/manifest.yaml
Seattle, Austin, San Franciscono business-licence dataset publishedagents/chicago-signal/manifest.yaml
USDA FSIS meat and poultry recallsHTTP 403, blocked even with a browser user-agentagents/phase1/signal-channel-templates.json
Illinois Secretary of StateHTTP 000 — no response at allagents/_shared/MASTER_SPEC.md §1
openFDA — a source we do recommenda recall is a median 35 days old when it publishes (p10 22, p90 78)agents/dfy-client-engine/dfy_gate.py
Measured 2026-07-28 and 2026-07-29 · files named per row

That last row is about a source we recommend to clients. We put the weak number on the page before you sign, because you will find it in month two anyway and then it costs both of us more.

Four steps

1

Find the trigger.

One call. We look for the public record that fires when your buyer is forced to act — a permit pulled, a licence expiring, a notice served, a recall filed. Forced beats interested. A company that has to solve a problem this quarter is a different conversation from a company that fits your ideal customer profile.

2

Gate it before we build it.

We run four tests against the live source and hand you the script that ran them. How old is the record when it lands. How many fire per month. Does one event route to one buyer or to twelve. Can we key it to a company without guessing at the name. The script is yours either way. If the source fails, the engagement stops here and there is no build fee.

3

Build your config.

The ingestion, the dedupe key, the rules that decide which records are worth your time, and the format they land in. We are not building an engine — we already run one, on our own businesses. We are pointing it at your vertical and writing the rules that make its output specific to you.

4

Keep it fed.

Every cycle the feed refreshes, the new records go through your rules, and what survives lands where you work. Enrichment credits come out of the same subscription. Every source breaks eventually — when yours does, the failure is loud, it reaches us before it reaches you, and fixing it is not a change order.

The productized engine

The engine already runs our own businesses. What you buy is a config pointed at your vertical, and the fuel that keeps it fed. Custom scope always prices above the productized engine, and exclusivity exists only as a written rider with the territory named — priced separately, never implied.

Buyer Engine — productized, non-exclusive

Setup
$6,000 once
Fuel
$1,500 / month
Minimum
6 months
  • A verified buyer list for your vertical and territory — 500 contacts, A/B/C confidence-scored, refreshed on cycle.
  • Two campaigns a month, drafted for your word-for-word approval, sent, tracked.
  • Automatic follow-up sequences; hot replies flagged within the hour.
  • A CRM instance, a live dashboard, and a weekly plain-English report.
  • A call opener and objection handlers configured to your vertical.
  • A template credibility site, available as a priced add-on — not bundled.

The six-month minimum is not a cash-flow trick. Six consecutive paid fuel months is the bar we hold our own engine to before it is allowed a second client — the contract just says out loud what we already measure.

Custom build

Build
$10,000–$15,000 once
Fuel
$1,500–$2,500 / month

The gate script, your config, ingestion, the dedupe key, the sellable rules, and the delivery format. Priced inside the band on how many triggers and how many territories the config covers, which is settled on the gate call.

A second trigger or a second territory is a second config, priced as one. What we will not do is fork the engine for one client. If a request needs a fork we say no on the call and tell you why.

What you are renting, in plain terms

You are renting the output. The engine stays with us, and that is the reason your build is five figures instead of six.

Yours, permanently
The gate script, the source query in writing, and every record we have delivered.
Ours
The pull, the dedupe, the rules engine, the monitoring.

If you leave, you leave with the query and the records and you rebuild the plumbing yourself. That is the honest description of what “owning it” would have meant, and we would rather say it here than after you have signed.

One thing we do not do

We draft your outreach. We do not send it. Drafts land in one place for your approval and send from your domain under your name. That is a deliberate limit, not a missing feature.

Who this is for

The playbook is proven in packaging and sold as category collateral for packaging, distribution, and B2B industrial — verticals where the buyer is forced to act by an event, not warmed up by a profile. The trigger taxonomy is generic to B2B industrial:

  • 01an expansion
  • 02a rebrand
  • 03a leadership change
  • 04a vendor dispute
  • 05a compliance change
  • 06a competitor acquisition

And who it is not for

Some verticals genuinely have nothing. We shut down one of our own businesses for exactly this reason: it measured 18 events a month and every event routed to a single buyer, so we stopped instead of shipping it. If the gate call finds the same about your vertical, we say so on the call, the gate script is yours anyway, and there is no build fee.

Three things you’re already thinking.

“The data is public and free. What am I paying for?”

You are right that it is free. Access is not the cost.

Here is the food recall source measured across one year: 1,496 rows collapse to 549 real events, because the same recall is filed once per product line. Pull it naively and you email the same company 2.7 times. 21 rows carry no state, so territory routing silently drops them. 65 of 503 firms have a name with no company suffix, and some of those are a person, not a business — they need a human look before anyone contacts them. The file publishes on Wednesdays and the record is a median 35 days old when it lands, so any pitch built on “we saw it first” is wrong before it is sent.

Every one of those is a measured fact from the script we hand you. You are paying for the rules that turn a public file into a list your team can work, and for someone who notices the week the file stops arriving.

“Why don't I own the engine?”

Because owning it would cost you more and get you less.

The engine is the same one running our own businesses. Your config is the part that is yours, and it is the part that matters — the trigger, the rules, the territory, the format. You keep the gate script and the source query in writing, so nothing about your supply is a secret we hold over you.

If you want the plumbing too, that is a different engagement with a different number on it, and we will quote it. Most people who ask this want the guarantee, not the code. The guarantee is the query in writing.

“I already pay for a list vendor.”

Keep it. They answer a different question.

A list tells you a company exists and roughly what it does. This tells you something happened to a specific company on a specific date that your product is the answer to — and it gives them the link so they can check it themselves.

Measured on the food recall source: 230 of 549 firm-events in the last 365 days carry a labelling, allergen or packaging term in the published recall reason. That is 19.2 firm-events a month, across 224 distinct firms. Whether a recall of that kind creates budget for any particular supplier is the assumption the gate call exists to test — we have not measured it and we will not tell you we have. What is measured is that the event happened, to a named firm, on a date, with a link. A list vendor cannot produce that, because the thing that makes it useful is an event, and there is nothing in a list to link to.

If you have been sold leads before and got a spreadsheet nobody called, the reason is almost always that the rows were not about anything. These rows are about something, and the source link is in every one.

FAQ

What if my vertical has no usable public record?

Then we tell you on the gate call and there is no build. Some verticals genuinely have nothing. We shut down one of our own businesses for exactly this reason: it measured 18 events a month and every event routed to a single buyer, so we stopped instead of shipping it.

How fresh is the feed, really?

It depends entirely on the source, and we measure it before you sign. Chicago business licences publish at a 1-day lag. openFDA food enforcement publishes weekly on Wednesday and the record is a median 35 days old when it lands. Both are usable. They are usable for different messages, and building the wrong message on a slow source is the most common way this fails. We will not tell you a source is fast when it is not.

Do you send the outreach?

No. We draft it. It lands in one place for your approval and sends from your domain, under your name, with your unsubscribe. We hold the drafting; you hold the send.

What is actually in the fuel?

The scheduled pull, your rules running against every new record, delivery into wherever your team works, monitoring that shouts when the source breaks, and enrichment credits. The credit allowance is set per config on the gate call, because it depends on how many records your trigger produces — a config that fires 19 times a month and one that fires 400 times are not the same subscription.

Will you sell the same config to my competitor?

Ask, and get the answer in writing. The engine is shared by construction — it runs every client. A config aimed at your vertical in your territory can be exclusive to you, and if it is, the contract says so with the territory named. We will not imply an exclusivity we have not written down.

The application is one email

Tell us the bottleneck. The first call is a trigger workshop, and if your vertical has no usable public record, there is no build — and no build fee.

There is no checkout on this page on purpose. This engagement is sold by a conversation, and the gate call decides whether there is a build at all.