Use Case

The cancellation is decided long before it is clicked

Same scoring engine as buying-intent — pointed at retention. Surfaces churn-risk signals from public channels you monitor AND any private channel your agent reads (Slack, Gmail, support tickets).

Acquiring a new customer costs 5–25× more than retaining an existing one — every founder knows the stat. The harder problem is that by the time you SEE churn (usage drops, the renewal call goes south, the cancellation email lands), the customer made the decision weeks earlier. The decision happened in a conversation — a Slack thread, a support email, a public post on Reddit asking for alternatives. Detection has to move upstream of the metric.

Most churn-detection tools (ChurnZero, Vitally, Catalyst) score usage data — login frequency, feature adoption, ticket volume. That's a lagging indicator. By the time usage drops, the decision was already made. Conversation data — what customers are saying about you, in public and in private — is the leading indicator. But conversations don't fit neatly into a dashboard, which is why most tools ignore them.

The same engine reads churn signals, but how you describe your product decides whether it works. The judges ask one question: is this author a buyer of the product in front of them. Describe a tool that flags at-risk accounts and a leaving customer is not a buyer of it, because that tool is bought by your success team. Describe what the unhappy customer actually wants and the same messages come through. Same multi-stage filter (multilingual semantic scoring → urgency and specificity → sarcasm detection), same 3-judge swarm, same RL learning loop. Swap the anchor sentences from "I need a tool that..." to "I'm looking for an alternative to [your product]" and you've got an early-warning radar for churn. Configure a product profile in 10 minutes.

Two surfaces, one engine. The scout reads the public feeds you choose for churn signals: customers asking for alternatives, frustrated comments under your launch, complaints in industry forums. For private channels, signalpipe_score_signal accepts arbitrary text your AI agent reads — a Slack message from a customer saying the tool isn't working, an email asking about contract terms, a support ticket with frustrated tone. We don't connect to your channels; your agent does. We just score what it shows us.

Sample churn-risk anchor sentences (paste these when you create your product profile): "I'm looking for an alternative to [your product]". "Anyone else frustrated with [your product] pricing?". "Cancelling our [your product] subscription". "Thinking about switching from [your product] to something cheaper". "[Your product] is missing X feature we actually need". "Has anyone moved off [your product] recently?". The bracketed token is where you put your own product name.

Write the profile as a save desk, not as a detector. A product described as 'the team that fixes billing problems, matches a competitor price and arranges downgrades instead of cancellations', for 'existing customers who are frustrated, comparing alternatives or asking about leaving', catches the messages that matter: someone comparing your price to a competitor, someone on their third failed export, someone asking what the notice period is. Described instead as a tool that flags at-risk accounts, those same messages are read as not-a-buyer and dropped.

What it will not catch is silence. A customer who quietly stops using a feature, never complains and never writes in leaves no message to score. This reads conversations, so it sees the customers who say something; usage data still tells you about the ones who say nothing.

How it works in practice

1

Create a churn-detection product profile

Describe the product as what an unhappy customer wants, not as a churn detector: that wording decides whether their messages survive scoring. Then write anchor sentences in your customers' perspective, not buying intent from prospects. Add your own product name as a competitor_keyword so the system flags every mention of it for review.

2

Paste the churn anchor pack

Start with the sample anchors above and customise to your product. The minimum is 5; more is better. The RL loop sharpens against your specific definition of churn risk as you approve and reject the first batch.

3

Configure public sources

Add subreddits where your customers and ex-customers hang out (r/SaaS, r/Entrepreneur, industry-specific subs), HN keyword feeds for your product name + "alternative", and any RSS feed for review sites or industry blogs that publish "best X tools" articles.

4

Point your agent at private channels

For Slack, Gmail, Discord, support tickets, and other channels your AI agent can read: call signalpipe_score_signal(text, product_id, source_hint) from Claude Code, Cursor, or Windsurf. We score the text; your agent does the I/O. We never connect to your channels.

5

Route scored signals to customer success

High-score churn alerts go to your CS team in your operator queue. The Re-engager persona is already built into the temperature model — when a known prospect drops back into the cold zone, the system selects the right tone for the follow-up automatically.

Key feature

The Three-Judge Panel →

Three judges read every close call separately. When they land far apart, you get told, because that is the case a single pass gets wrong.

Start finding buyers today

Starter is $29 a month for 3,000 judgements. The plugin and daemon stay free and open source.

Billed monthly. Cancel any time from your billing page.

Related