← Viktor Madič

Collision gate

27%

of checked companies stopped before outreach, 32 of them clients or former clients.

One of our clients got a full cold sequence.

Client relationships were spread across the CRM, mailboxes and contracts, and nothing could answer “may I write to this company?” I built the check: 9 sources in two layers, and when it is unsure, it blocks.

How it works

  1. Cheap check on everyonelist, CRM, mail by domainFrom: the suppression list, the CRM and mail history by domainTo: stopped early: client, declined, live thread
  2. I decide the batchafter qualification: go or no-go
  3. Deep check on every “go”full mail text, calendar, dealsFrom: mailboxes, calendar, deals, notes, tasks and the sending tool
  4. One verdict per companyonly “clean” may be contactedTo: clean: outreach may start
  5. Unsure means blockedan error counts as pendingTo: blocked, with the reason logged. Pending stops the run
Solid box: rules and code. Dashed box: Claude. Yellow box: a person decides.Steps marked Claude are done by Claude. The rest is rules and code. Yellow is where a person decides.

What broke and what I changed

  • A client listed under a product name, without a domain, walked straight through.

    Nothing could match it. Entries now carry a verified domain wherever one exists.

  • The gate counted unsent drafts as sent mail.

    Only the Sent folder counts now.

  • A name-only match on a client was downgraded to “verify”, and clients slipped into a lead list.

    Now a claim that a company is a client blocks even on a name match.

  • A generic word in a company name blocked companies by mistake.

    The naive fix nearly removed the protection of another active client. The list now has a mutation test: change an entry on purpose, and the tests must fail.

Guardrails

  • Fail-closed.

    An error, a refusal or a rate limit counts as “pending”, never as clean, and a pending run stops.

  • A zero counts only after a positive control.

    The check must prove it can find something, so a broken connection cannot pass as “nothing found”.

  • Only a person can mark a company an active client.

    Hand-corrected entries are never overwritten when the list is regenerated.

  • Missing a lead costs one email. Writing to a client costs the relationship.

    When in doubt, it blocks.

Numbers

27%
of checked companies stopped before outreach
32
of them clients or former clients
9
sources, in two layers: a cheap check on everyone, a deep check on every “go”
Over a third
of the companies in the weekly website-visitor report stopped before any email

The suppression list is marked incomplete on every run, because it never will be complete.