XISLABS

Case study · AI automation · Runs on n8n and Claude

Exploding Leads: one buying-signal system running four clients in four industries

Exploding Leads is an outbound agency. Its client Third Chair sells IP monitoring to music rights holders, and the best week to reach a label is the week it signs an artist, buys a catalogue or hires a licensing lead. We built the system that spots those moments, checks every source and sends the sales rep one email per company with a draft ready to send. The same core now runs four clients.

To: rep@sample-agency.comNorthfield Civil broke groundon a new siteView postSuggested outreach
Illustration
Client
Exploding Leads, an outbound agency
Built for
Third Chair (music rights), then BuildWitt (heavy civil construction) and Atalan (health systems)
Engagement
April to May 2026, with work for new clients ongoing
What we built
Signal detection, source checking, email delivery and a client portal
Stack
n8n, Supabase, Claude, Serper and the Gmail API
AI in the product
Claude
Status
Live on the agency's own n8n instance
  • 4clients live on one system
  • 13signal types, each with its own search terms and prompt
  • 4checks on every source before a signal reaches an inbox
  • 92% to 98.7%conformance with BuildWitt's written brief after tuning

The problem

Watching dozens of companies by hand for the right moment does not scale. Generic news alerts bury the few useful items under noise, and a rep who emails about the wrong event loses the account's attention.

The agency asked for something its reps could trust without checking each alert, and something it could reuse for its other clients.

What we built

Two loops.

One loop finds signals on a weekly or monthly schedule. The other sends them every ten minutes, up to a daily cap. A slow search never holds up email, and a burst of signals never floods an inbox.

Sample RecordsContract awardSigned a new artistin search resultslink resolvescontent matchesNorthfield CivilActive siteBroke ground on a new sitein search resultslink resolvescontent matchesHarbor HealthNew hireNamed a new licensing leadin search resultslink resolvescontent matches
Illustration

A six-step detection pipeline.

For each company the system builds seven or eight search queries, runs them, removes duplicates and keeps only results that name the company. Claude reads what is left and returns the signal type, the event date, the source link and a key quote, or marks it not relevant.

Four checks on every source.

The prompt requires a link taken from the search results. A shape check removes bare homepages and profile pages. The link must load. Then the page itself is fetched and Claude confirms it names the company and the event. Every dropped signal is logged with its reason.

1Link taken from the search results2Not a bare homepage or profile page3The link loads4The page names the company and the eventSignal queued with a checked source
Illustration

One email per company.

Signals for the same company arrive as one email. It says what happened, links the source and ends with a short outreach draft the rep can edit and send. Each client has its own voice rules: BuildWitt drafts are two sentences of 40 to 50 words and end on a question.

To: rep@sample-agency.comNorthfield Civil broke groundon a new siteView postSuggested outreach
Illustration

A portal clients run themselves.

Each client uploads its own target list, sets the schedule and the daily cap, and can review every run and every email. The agency creates new clients from the same app.

From a company name to a rep's inbox

6 steps. Use the arrows to go through them.

How the AI is kept in check

  • It must cite a source it was given. A link that was not in the search results is rejected.
  • The page is read, not trusted. A signal is kept only if the page names the company and the event.
  • It can say “not relevant”. That is a valid answer, and most results get it.
  • Nothing is sent empty. A run with no signals sends no email.
  • A person sends. The rep edits and sends every outreach message.

Results

MeasureResult
First dry run3 of 3 signal workflows found real, public events, each in under 16 seconds
BuildWitt brief conformance92% before tuning, 98.7% after, from an internal audit against the client's written brief
Added cost of the source checksAbout $0.003 per surviving signal
Reuse4 clients in music rights, software, heavy civil construction and health systems on the same core

“MUCH better.”

Agency lead at Exploding Leads, reviewing BuildWitt alerts after the classifier was made stricter.
Under the hood: stack and engineering notes

Stack: n8n, self-hosted, with 29 production workflows. Supabase Postgres, Auth and Edge Functions with 14 versioned migrations. Claude for classification, page checks and email copy. Serper for search. The Gmail API for sending. A React portal hosted on Vercel.

Keeping clients apart: every table row carries its owner, and every workflow read filters on it, so two clients can track the same company independently.

Problems we fixed: pacing that survives a restart, by sending one company's email every ten minutes in place of one long run. No repeat alerts, through a unique hash for each signal. Runs that finished green with nothing found, after a search account ran out of credit.

Want your reps to hear about the right moment first?

Tell us which companies you watch and what counts as a signal on a 30-minute call. You leave with a plan and a cost, in writing.

Book a discovery call