Guide·SignalPipe v1.3 — Managed Backend

Getting Started with SignalPipe

Everything you need to go from install to your first approved lead. Covers setup, scoring, the temperature model, the full toolset, and self-hosting.

Quick Start

Three steps from zero to live scouting.

1

Install the plugin

Install SignalPipe on your OpenClaw gateway with a single command:

claw install signalpipe

Or add "signalpipe" to your openclaw.config.json plugins array.

2

Set your connection keys

Before starting the gateway, set your two SignalPipe keys — you get both when you sign up at signalpipe.io/pricing:

# Required — both provided at signup
export SIGNALPIPE_API_URL=https://api.signalpipe.io
export SIGNALPIPE_OPERATOR_KEY=your-operator-key

That's it. Your OpenClaw LLM key stays inside OpenClaw — it never needs to be shared with SignalPipe. Scoring, drafting, and outreach all run on the managed backend.

3

Start OpenClaw — plugin loads automatically

When OpenClaw starts with the plugin installed, SignalPipe registers its 15 tools and connects to the backend. You'll see this in your logs:

🦐 SignalPipe ONLINE
   Backend : https://api.signalpipe.io
   Tools   : 15 registered
   Status  : connected

No sidecar. No extra processes. The backend handles all scoring, drafting, and lead management automatically.

4

Add your first product and start scouting

Ask your agent:

"Add my product [name]. It helps [audience] who need [use case]. Buyers say things like '[anchor sentence 1]' and '[anchor sentence 2]'."

Then: "Add r/SaaS as a monitoring station." Then: "Scout now."

How Scoring Works

Every post runs a 4-stage filter. Each stage is more expensive but more accurate than the last — designed to eliminate noise cheaply before using expensive AI calls.

01
Keyword gateFree per post

Any of your configured buy_signal_keywords must appear in the post. Eliminates ~85% of posts before any API call is made. Zero cost.

02
Multilingual semantic scoring~0.0001¢ per post

Cosine similarity between the post and your anchor sentences using OpenAI text-embedding-3-small. Urgency and specificity sub-scores are detected in English, Spanish ("urgente", "migrando de"), French ("dès que possible", "on change de"), German ("dringend", "wir wechseln"), and Portuguese ("agora mesmo", "trocando de") — no configuration needed.

03
Sarcasm detection~0.01¢ per post

LLM check that distinguishes genuine buyers from irony, hypotheticals, and casual venting. Fails open — if uncertain, the lead passes through rather than being suppressed.

04
AI drafting swarm~0.03¢ per post

Once a post passes scoring, three AI judges (Skeptic, Analyst, Optimist) draft a reply independently via ensemble weighting. Low-intent leads are suppressed by ensemble veto before a reply is written. The Analyst draft is used by default, with the Optimist as fallback.

Competitor-switch floor

Posts that match any of your configured competitor_keywords are automatically floored at a score of 60 — they always reach your review queue regardless of their general intent score. These are the highest-converting leads you'll ever find.

Self-improving RL loop

Every approve/reject adjusts a per-product RL weight that scales future scores for similar signals:

Approve

Weight nudged upward

Reject

Adaptive penalty by reason

Rejection penalties are adaptive — spam hits hardest, sarcasm and wrong-product are gentle, and "already a customer" carries zero penalty. The system learns which failure modes matter.

Temperature Model

Every prospect has a 0–100 temperature. Temperature determines which AI persona generates their next message — and when to reach out.

0–29
Recovery
Re-engager

Re-spark cold leads. No hard sell. Focus on re-establishing relevance.

Follow up: 168 hrs (weekly)
30–74
Sales
Educator / Consultant

Qualify, show fit, build trust. Educator for lower range, Consultant for upper.

Follow up: 24–72 hrs
75–100
Closing
Closer

Urgency, social proof, clear CTA. Do not waste time on education at this stage.

Follow up: 4 hrs

One-directional mode transitions

Mode transitions only move forward — never backward. Once a prospect reaches Closing, they don't regress to Sales even if their temperature dips. Once in Recovery, they only re-enter Sales when they genuinely warm again.

This prevents the classic spam loop: a prospect who briefly responds doesn't suddenly receive closing messages, then nurture messages, then closing messages again as the score oscillates.

13 Signal Types

Use signalpipe_track_prospect with any of these signals to update a prospect's temperature.

Objection signals (too_expensive, competitor, bad_timing, no_time, not_decision_maker) are permanently recorded and injected into all future message generation calls — the AI never re-pitches what already failed.

SignalTemp deltaWhen to use
booked_demo+20Prospect agreed to or attended a demo
asked_pricing+15Prospect asked about pricing or plans
viewed_content+8Visited a page, watched a video, read a doc
replied+5Responded to your outreach message
clicked_link+3Clicked a link in your message
not_decision_maker0Not the right person — flag only, no temp change
ghosted_3_days−6No response after 3 days
competitor−8Mentioned they're evaluating a competitor
no_time−5Said "not now" or "too busy"
too_expensive−10Price objection raised
bad_timing−15Timing issue — contract, budget cycle, etc.
ghosted_7_days−15No response after 7 days
not_interested−25Explicit rejection — moves to Recovery

Writing Anchor Sentences

Anchor sentences are the most important thing you configure. They define what a buyer looks like. The embedding model measures every incoming post against these sentences — write them in first-person buyer voice.

Good anchors

  • "I need a tool that automatically finds leads on Reddit"
  • "We're switching from [Competitor] and need something better"
  • "Looking for an alternative to [Competitor] — pricing got too high"
  • "How do I find buyers who are actively asking for my product?"
  • "We need outreach automation that doesn't get us banned"

Weak anchors

  • "SignalPipe lead generation" (your product name, not buyer voice)
  • "buy leads" (too generic)
  • "sales automation" (too broad — catches tool comparisons, not buyers)
  • "Reddit marketing" (describes a topic, not a buying need)
  • "outreach" (single word — too much noise)

Rules of thumb

  • 3–7 anchor sentences per product is the sweet spot
  • Write from the buyer's perspective, not yours ("I need X" not "we offer X")
  • Include competitor frustration angles if you have known competitors
  • Include the specific outcome the buyer wants, not just the category
  • Multilingual posts are scored automatically — no need to write anchors in every language
  • Use signalpipe_reload_products after editing — anchors are re-embedded immediately

Tool Reference

SignalPipe gives your agent 15 tools — 12 for lead acquisition (including client-side drafting), 2 for prospect nurturing, and 1 for pipeline visibility. All tools are called conversationally inside your OpenClaw agent.

Lead Acquisition (Mantidae)
signalpipe_get_missions

Fetch pending leads awaiting your review. Returns scored leads with AI-drafted replies.

signalpipe_approve_mission

Approve a lead and queue it for outreach. Optionally edit the draft before approving.

signalpipe_reject_mission

Reject a lead with an optional reason (not_relevant, sarcasm, spam, wrong_product, too_vague, already_customer). Penalty adapts to the reason.

signalpipe_scout_now

Trigger an immediate scouting run outside the 10-minute cycle.

signalpipe_get_products

List all active products and their current monitoring config.

signalpipe_add_product

Register a new product. Provide name, description, target audience, and anchor sentences.

signalpipe_add_station

Add a Reddit subreddit, HN keyword feed, or RSS URL to monitor for a product.

signalpipe_reload_products

Hot-reload the product cache after adding or editing products. No restart needed.

Prospect Nurturing (Nurture Engine)
signalpipe_track_prospect

Log a prospect interaction signal. Creates the prospect if new, updates temperature if existing.

signalpipe_get_message

Generate the next context-aware outreach message for a prospect. Uses their full signal history.

signalpipe_get_pipeline

View your full prospect pipeline sorted by temperature. See who needs attention first.

Station platform types

When calling signalpipe_add_station, use these platform values:

reddithttps://www.reddit.com/r/SUBREDDIT/.rssAny public subreddit
hnhttps://hnrss.org/newest?q=YOUR+KEYWORDSHacker News by keyword
rsshttps://any-rss-feed-url.com/feed.xmlAny RSS-compatible feed
twitter_search(no rss_url required)Routes outreach to X reply channel. X direct monitoring coming soon.

Self-Hosting

The backend is a FastAPI app. You can run it anywhere that supports persistent processes.

Requirements

  • Python 3.11+
  • PostgreSQL with pg_cron and pg_net extensions (Supabase free tier works)
  • A persistent process host — Railway recommended (~$5/mo)
  • OpenAI API key (embeddings)
  • Anthropic, OpenAI, or Gemini API key (message generation) — or a local model via any OpenAI-compatible endpoint

Environment variables

SUPABASE_URLYour Supabase project URL (self-hosting only)
SUPABASE_KEYSupabase service role key (self-hosting only)
OPENAI_API_KEYUsed for text-embedding-3-small (backend — self-hosting only)
OPERATOR_KEYSecret key generated at signup — set on your backend
ANTHROPIC_API_KEYDefault message generation on backend (Claude Haiku)
COMPANION_LLM_PROVIDERopenai | anthropic | openai_compatible
COMPANION_LLM_MODELe.g. claude-haiku-4-5, gpt-4o-mini, nemotron-mini
COMPANION_LLM_BASE_URLNeMoClaw / Ollama / vLLM endpoint (if openai_compatible)
X_API_KEYTwitter/X reply outreach — set on backend (optional)
X_API_SECRET
X_ACCESS_TOKEN
X_ACCESS_SECRET
REDDIT_CLIENT_IDReddit DM outreach — set on backend (optional)
REDDIT_CLIENT_SECRET
MAX_TWITTER_ACTIONS_PER_DAYDefault: 10
MAX_REDDIT_DMS_PER_DAYDefault: 5

NeMoClaw / on-premises

To run message generation locally with Nemotron or any other model:

COMPANION_LLM_PROVIDER=openai_compatible
COMPANION_LLM_BASE_URL=http://localhost:11434/v1
COMPANION_LLM_MODEL=nemotron-mini

Works with Ollama, LM Studio, vLLM, or any OpenAI-compatible local endpoint. Full instructions in the backend repo: /api/README.md

Ready to find your first lead?

Join the waitlist for managed backend access — or install the plugin now if you're self-hosting.