SignalPipe

Agentic sales pipeline — detects buying-intent signals on Reddit, HN, and RSS feeds, drafts outreach for Reddit and X/Twitter via managed backend, and nurtures prospects from cold to closed.

Audits

Pass

Install

openclaw plugins install clawhub:signalpipe

SignalPipe

Agentic sales pipeline — buying-intent detection, swarm-scored lead qualification, and prospect nurturing for OpenClaw agents.

SignalPipe watches Reddit, Hacker News, X/Twitter, and any RSS feed you configure for people publicly expressing buying intent. A 3-judge AI swarm evaluates every signal, calibrates the reply to the signal strength, and surfaces only real leads for your approval. Works with any OpenClaw-compatible agent — or connect directly via MCP from Claude Code, Cursor, or Windsurf.

signalpipe.io


What It Does

Top of funnel — Signal Acquisition (Mantidae): Scouts Reddit, Hacker News, X/Twitter, and custom RSS feeds every cycle. Every post passes through a 3-stage scoring filter — keyword gate, multi-factor semantic scoring, sarcasm detection — then reaches a 3-judge AI drafting swarm: Skeptic, Analyst, Optimist. Each judge scores the lead independently. The swarm fuses their scores and suppresses low-intent posts automatically. Only leads that clear the swarm reach your queue — with a draft already calibrated to how hot the signal is:

  • Score > 80 (Closer): Direct, action-oriented reply — proposes a concrete next step
  • Score 61–80 (Advisor): Consultative — acknowledges the problem, introduces the product naturally
  • Score 40–60 (Educator): Value-first — leads with a genuine insight, mentions the product only if it fits

Competitor-switch posts are hard-floored and always reach your queue regardless of score.

Mid/bottom of funnel — Nurture Engine: Tracks every prospect's temperature (0–100) across 13 signal types. Automatically selects the right persona (Educator → Consultant → Closer → Re-engager). Remembers objections permanently — if someone said the price is too high, that angle is never repeated. Never spams. One-directional mode transitions.


Tools (16 total)

Signal Acquisition

ToolWhat it does
signalpipe_get_missionsList pending leads awaiting review — score, role, channel, snippet, draft. Lean by default; opt into include_context=true only when drafting.
signalpipe_draft_missionGet the drafting payload for a single mission so the host LLM can write the reply itself (BYOK path)
signalpipe_upload_draftUpload a host-LLM-written draft to a mission
signalpipe_approve_missionApprove a lead and queue it for outreach
signalpipe_reject_missionReject a lead with a reason — teaches the per-station RL loop (penalty size adapts to the reason; demotes one noisy feed without dragging the rest of the product down)
signalpipe_delete_missionHard-delete a mission row — silent cleanup, no learning signal. Companion to reject.
signalpipe_scout_nowTrigger an on-demand scouting run across all active products
signalpipe_get_productsList all configured products
signalpipe_add_productRegister a new product to monitor — describe it in buyer language
signalpipe_add_stationAdd an RSS feed, subreddit, or HN keyword feed for a product
signalpipe_reload_productsHot-reload product cache after changes — no redeploy needed

Nurture Engine

ToolWhat it does
signalpipe_track_prospectLog a signal from a prospect, update their temperature
signalpipe_get_messageGenerate the next outreach message via the backend LLM
signalpipe_get_message_promptGet the full prompt + context so the host LLM writes the message (BYOK path)
signalpipe_record_messageRecord a host-LLM-written message as sent
signalpipe_get_pipelineView the full prospect pipeline sorted by temperature

MCP Support

SignalPipe exposes all tools as an MCP server — no OpenClaw plugin install needed.

Connect from Claude Code, Cursor, or Windsurf — add this URL to your MCP config:

https://api.signalpipe.io/mcp

Auth: Authorization: Bearer YOUR_OPERATOR_KEY

Once connected, ask your agent:

  • "Show me my leads"
  • "Reject the first one — it's a founder promoting their own tool"
  • "Who should I follow up with today?"

Live Session Example

A typical morning lead review inside your OpenClaw agent or Claude.ai via MCP.


You: Show me today's leads.

→ signalpipe_get_missions
3 missions pending review

MISSION 1 · score: 91 · role: CLOSER · competitor_flag: true
Product : AcmeTool
Channel : reddit_dm
Handle  : u/frustrated_dev99
Snippet : "Their pricing just doubled again. Done. Need a replacement ASAP."
Draft   : "Saw your post — we built AcmeTool for exactly the gap you're
           describing. Teams typically switch in under a week. Worth a
           quick look? Happy to show you how it compares."

MISSION 2 · score: 68 · role: ADVISOR · competitor_flag: false
Product : AcmeTool
Channel : reddit_dm
Handle  : u/ops_lead_rachel
Snippet : "Looking for a tool to automate repetitive ops workflows.
           Budget is flexible, need something the team actually uses."
Draft   : "The part about 'something the team actually uses' is the real
           problem to solve — most tools fail there, not on features.
           AcmeTool is built around that constraint. Happy to walk through
           a real team setup if useful."

MISSION 3 · score: 24 · role: EDUCATOR · competitor_flag: false
Product : AcmeTool
Channel : reddit_dm
Handle  : u/just_browsing_thx
Snippet : "Saw an ad for workflow tools. Not really something I need right now"
Draft   : [Swarm low-confidence — auto-rejected]

Agent: 2 leads ready. Lead 1 is a competitor-switch signal, score 91 — Closer draft, proposes a direct next step. Lead 2 is a genuine need with flexible budget, score 68 — Advisor draft, leads with their real problem. Lead 3 was auto-rejected by the swarm. Approve 1 and 2, or edit first?


You: Lead 1 is good, approve it. For lead 2 change the draft to: "Hey Rachel — we solve exactly this. Most ops teams are running automations within a day. Want me to show you how a team like yours uses it?"

→ signalpipe_approve_mission (msn_8f3a — swarm draft unchanged)
→ signalpipe_approve_mission (msn_2b91 — user-edited draft)
✓ msn_8f3a queued for outreach
✓ msn_2b91 queued for outreach (your version)

You: Rachel just replied — she's interested. Log it.

→ signalpipe_track_prospect
  handle    : u/ops_lead_rachel
  channel   : reddit_dm
  signal    : replied
  mission_id: msn_2b91
{
  "prospect_id": "pro_7f2c",
  "handle": "u/ops_lead_rachel",
  "temperature": 45,
  "mode": "sales",
  "persona": "Consultant",
  "follow_up_in": "2–3 days"
}

Agent: Rachel is in Sales mode, temperature 45. Consultant persona active — qualify and show fit, no hard sell yet.


You: Who's hottest? Generate a message for them.

→ signalpipe_get_pipeline
→ signalpipe_get_message (prospect_id: pro_sarah_cto)
{
  "message": "Sarah — you've seen how it works. Happy to answer any last
              questions before your team makes a call. What's the main
              thing you're still weighing?",
  "tactic": "remove_friction",
  "mode": "closing",
  "temperature": 88,
  "note": "Previous objection (too_expensive) on record — pricing angle avoided"
}

Agent: Closing mode, friction-removal tactic. Her previous pricing objection is permanently on record — the AI avoided that angle automatically.


Quick Start

1. Get a backend + operator key

Managed (recommended): Join the waitlist at signalpipe.io — you get a SIGNALPIPE_OPERATOR_KEY and backend URL. No infrastructure to manage.

Self-hosted: See Self-Hosting below.

2. Install

Via OpenClaw:

claw install signalpipe

Via MCP (no plugin install): Add the MCP server URL to Claude.ai, Cursor, or Windsurf — see MCP Support above.

3. Set environment variables

export SIGNALPIPE_API_URL=https://api.signalpipe.io
export SIGNALPIPE_OPERATOR_KEY=your-operator-key

4. Configure a product

Ask your agent:

"Add my product — it's called AcmeTool, it helps ops teams automate repetitive workflows, target audience is ops leads and founders, anchor phrases: 'automate repetitive tasks', 'workflow automation', 'ops without headcount'"

The signal engine activates on the next scout cycle.


How Scoring Works

Every incoming post passes through two sequential pipelines.

Pipeline 1 — Scoring (backend):

  1. Keyword gate — pre-filter: any buy_signal_keywords must appear before the post is scored. Eliminates ~85% of posts with zero API cost.
  2. Multi-factor semantic scoring — embedding similarity, urgency, specificity, and keyword density. Multilingual: English, Spanish, French, German, Portuguese.
  3. Sarcasm detection — distinguishes genuine buyers from venting or irony. Fails open — real leads are never suppressed by the sarcasm check.

Pipeline 2 — Swarm Drafting (managed backend):

Posts that survive scoring reach a 3-judge AI swarm:

JudgeRoleWeight
SkepticVetoes non-buyers, sellers promoting their own tools, surveys40%
AnalystAssesses fit depth, writes the preferred draft35%
OptimistFinds the strongest read of the lead, fallback draft25%

The judges run concurrently. Their scores are fused via ensemble weighting. Low-confidence leads are auto-rejected — they never reach your queue. High-confidence leads get a draft calibrated to signal strength:

  • Closer (>80): Proposes a concrete next step — demo link, trial, or direct ask
  • Advisor (61–80): Consultative — acknowledges situation, introduces product naturally
  • Educator (40–60): Value-first — answers their question, mentions product only if it fits

Reinforcement learning: Every approve/reject adjusts the source station's RL weight — each listening feed (subreddit, HN search, RSS source) carries its own multiplier. Approvals are flat (+0.05); rejections are reason-aware (spam −0.04, not_relevant −0.03, no_reason / too_vague −0.02, sarcasm / wrong_product −0.01, already_customer 0.00). Per-station scoping means one noisy feed gets demoted without penalising the rest of the product's sources.


Temperature Model

RangeModePersona
75–100ClosingCloser — urgency, social proof, clear CTA
30–74SalesConsultant — qualify, show fit, build trust
0–29RecoveryRe-engager — re-spark cold leads, no hard sell

13 signal types map to calibrated heat deltas: booked_demo, asked_pricing, viewed_content, replied, clicked_link, not_decision_maker, ghosted_3_days, no_time, competitor, too_expensive, not_interested, bad_timing, ghosted_7_days.

One-directional mode transitions — no oscillation, no spam. Objection memory — permanently recorded and injected into every future message so the AI never repeats a failed angle.


Managed Backend Tiers

TierPriceProductsLeads/dayProspects
BYOK$19/mo3501,000
Starter$49/mo225500
Growth$149/mo102505,000
Scale$499/moUnlimitedUnlimitedUnlimited

Annual billing available — 2 months free (17% off). First 100 waitlist signups: 50% off for 3 months.

View pricing →


Self-Hosting

The backend is a FastAPI app. Requirements:

  • Python 3.11+
  • PostgreSQL with pg_cron and pg_net (Supabase recommended)
  • A host that supports long-running processes (Railway recommended)
  • OpenAI API key (embeddings)

Full setup guide: signalpipe.io/guide#self-hosting


License

Plugin: MIT
Backend: Business Source License 1.1 (converts to Apache 2.0 after 4 years)