Skip to content

Signal engine

Fit gets you on the list. Signal gets you emailed.

A signal is something verifiably true about one specific company, right now. Not a persona, not a probability — a URL you can open, the exact text we matched, and the date we found it.

The definition

Four tests, and most “intent data” fails them

If a claim can't survive being pasted into an email in front of the person it's about, it isn't a signal. We hold everything to that.

A signal
  • True of one named company, not of a category
  • Backed by a public page anyone can open and read
  • Dated — and the date is part of the claim
  • Implies the exact problem your product removes
Not a signal
  • “They're a marketing agency” — that's firmographic fit
  • “They're probably struggling with reporting” — that's an inference
  • “Someone there downloaded a report in 2024” — stale, and not public
  • “Their sector is growing 14% a year” — a market fact, not a company fact

Signal types

Four things a company can't hide

Three of the four detectors are pure rule matching — no model, no per-prospect cost. That's what makes scanning thousands of companies every week affordable.

kind · tech

Tech-stack detection

A competitor's script, widget or pixel running on their site right now.

We fetch the prospect's public pages and match detector rules against script sources, DOM selectors, response headers and JavaScript globals. No login, no scraping of anything private — if a browser can see it, so can the detector.

match script[src*="semrush.com"] on /reports

Strongest when the script belongs to a competitor you can name.

kind · hiring

Hiring signals

A public job posting that describes the pain in the company's own words.

Greenhouse, Lever and Ashby boards, matched against the trigger keywords in your segment definition. A job description is a company admitting a gap in writing, on a page it published deliberately.

match “AI search / AIO specialist” · posted 9 days ago

Dated by construction, and rarely more than a few weeks old.

kind · review

Review signals

They publicly reviewed one of your competitors.

The prospect's own domain turns up as the author of a review found during pain mining. The highest-intent signal available: they have already said the thing out loud, in public, with a rating attached.

match 2★ on Trustpilot · “we're moving off it in Q3”

Rare, and worth reordering a whole batch around.

kind · funding

Funding & news

A raise, a launch, or a change at the top.

Useful as timing rather than as an argument — it tells you the budget and the mandate just changed, not what they hate. We score it lower and never let it carry an email on its own.

match Seed round announced · 2026-07-14

Weakest of the four alone; good as a second citation.

Worked example

One detected signal, end to end

A twelve-person agency in Bristol, found on a Wednesday. This is the whole journey from a rule match to a sentence you'd be comfortable defending.

Detector · shipped with the agency library

{
  "key":      "semrush_reporting_widget",
  "kind":     "tech",
  "label":    "SEMrush reporting widget",
  "rule":     { "type": "script_src", "pattern": "semrush\.com" },
  "strength": 0.90
}

Stored signal · reproducible by anyone

signals
├─ prospect_id    northbeam-digital.co.uk
├─ detector_id    semrush_reporting_widget
├─ kind           tech
├─ evidence_url   https://northbeamdigital.co.uk/reports
├─ evidence_text  <script src="static.semrush.com/embed/widget.js">
├─ detected_at    2026-07-22
└─ strength       0.90
signal_score0.90 × 0.98 = 0.88
  1. 01

    The detector fires

    Deterministic and cheap — a rule match, not a model. Northbeam Digital's /reports page loads a competitor's embed script.

  2. 02

    Evidence is captured

    The URL, the matched text and the timestamp are written in the same insert as the signal. There is no code path that stores one without the others.

  3. 03

    It's turned into one citable sentence

    The only paid step in the scan, and it runs once per match rather than once per company scanned: “Northbeam Digital embeds SEMrush's reporting widget on its public /reports page.”

  4. 04

    It's scored

    Detector strength × recency decay. Found six days ago, so it keeps nearly all of its weight and pushes the prospect to the top of the segment.

  5. 05

    It licenses exactly one opening line

    “You're still running SEMrush's widget on /reports — and 41 people in your market publicly said those reports are unreadable to clients.” Both halves are clickable.

The evidence contract

Three columns that make a claim checkable

Every signal stores all three, or it isn't written at all. Both fields are NOT NULL and the evidence text carries a check constraint against empty strings — a signal with nothing to cite is not a signal.

evidence_url

Where we saw it

The exact public page, not the homepage. Click it and read the same thing the detector read. If the page has changed since, the timestamp tells you when it didn't.

evidence_text

What we matched

The literal script tag, selector hit, job-post line or review sentence. Never a paraphrase, so nothing can drift between what was found and what gets cited.

detected_at

When we found it

Timestamped on insert. Re-scans are unique per prospect, detector and day, so a weekly cadence builds a history rather than a pile of duplicates.

This is why the drafting stage can be strict later: a draft's citation is a foreign key to one of these rows, so the fact behind every email survives long enough to be argued about.

Recency decay

A trigger is only worth what it's still true

Signals age. Scoring weights them down as they do, so a fresh weak trigger beats a stale strong one — and a six-month-old find scores near zero rather than quietly propping up a prospect that has moved on.

0–7 days
100%
Full weight. The page changed this week.
8–30 days
85%
Still current enough to open with.
1–3 months
55%
Cite it carefully; it may already be untrue.
3–6 months
25%
Ranks below a weaker but fresher trigger.
Over 6 months
5%
Effectively zero. Re-scan or drop the prospect.

Illustrative curve. The exact weights are tuned per detector kind — a review stays useful longer than a funding announcement.

The library

Detectors you're given, and detectors you write

Every category ships with seed detectors so the first scan finds something on day one. When your market has a tell nobody else would think to look for, you add it yourself.

Shipped per category

Global detectors, maintained by us, available to every workspace.

  • AnalyticsGA4, Plausible, Matomo, Fathom
  • Support widgetsIntercom, Crisp, Zendesk, Drift
  • Review toolsTrustpilot, Reviews.io, Yotpo embeds
  • SEO suitesSEMrush, Ahrefs badges and embeds
  • Accessibility overlaysAccessiBe, UserWay, EqualWeb
  • CMS & paymentsWordPress, Webflow, Shopify, Stripe

Custom detectors

Five rule shapes, scoped to your workspace and never visible to anyone else. Give it a pattern and a strength; it joins the next weekly scan.

  • script_srca pattern in any loaded script URL
  • dom_selectoran element that only that product renders
  • http_headera header the vendor sets on responses
  • js_globala global object the widget attaches to window
  • url_patterna path that only exists on that platform

Segments re-scan on a cadence, so a detector you add today reopens prospects that were dormant last week.

The ranking rule

Why the smaller agency goes first

Fit and signal are separate scores and they are not interchangeable. Fit decides whether a company belongs in the segment at all. Signal decides whether there's anything worth saying to them this week.

Drafted this batch

12 staff · Bristol

Northbeam Digital

Half the headcount you'd have asked for, and an imperfect firmographic match. But six days ago they added a competitor's reporting widget to a public page — and that is a thing you can open a conversation with.

fit_score

41

signal_score

88

On the list, not in the batch

200 staff · London

Meridian Search Partners

A textbook match on every firmographic you defined. Nothing has changed on their site, their board or their reviews in seven months, so there is no honest first line — and a generic one would burn the account.

fit_score

92

signal_score

0

Meridian isn't discarded — they're waiting for a reason. The moment a scan finds one, they surface at the top of the next batch with the evidence already attached.

Start with the dossier.

Tell us your product and we'll mine your market's public complaints — ranked, quoted and sourced. Useful whether or not you ever send an email.

Free · no card · yours to keep