prediction-bridge-search

Search Prediction Bridge prediction-market events by text or X (Twitter) link via the backend API.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "prediction-bridge-search" with this command: npx skills add smallyunet/prediction-bridge-dev

Use this skill when the user wants to find relevant prediction markets/events for:

  • a short text query (topic, question, headline)
  • a URL to an article
  • an X (Twitter) status link (the backend resolves and extracts the tweet text)

Usage scenarios (when to use)

Use this skill when the user asks:

  • “Find prediction markets for this topic/headline”
  • “What markets match this tweet/X link?”
  • “Search Polymarket/Kalshi for events about …”

This skill is best for:

  • turning unstructured text (or an X URL) into ranked, actionable event links
  • quickly surfacing the top 5–10 matches with a brief market snapshot

Not a good fit when the user wants:

  • full market orderbooks or historical candles (use the market-data endpoints instead)
  • deep-dive sentiment/timeline generation (use the event deep-dive endpoints instead)

This skill calls the existing Prediction Bridge backend endpoint:

  • POST /api/v1/search/unified

It returns matched events (prediction market events) and optionally matched news.

Configuration

API base (defaults to production):

  • PREDICTION_BRIDGE_API_URL

Defaults:

  • Production: https://prediction-bridge.onrender.com/api/v1
  • Local dev (if you run the backend locally): http://localhost:8000/api/v1

How to run

  1. Build the query text
  • If the user provides an X status link, pass the URL as text unchanged. The backend will resolve it.
  • If the user provides plain text, pass it as-is.
  1. Call unified search

Use exec with curl:

API_URL="${PREDICTION_BRIDGE_API_URL:-https://prediction-bridge.onrender.com/api/v1}"

curl -sS -X POST "$API_URL/search/unified" \
  -H "Content-Type: application/json" \
  -H "X-Request-ID: pb-$(date +%s)" \
  --data-binary @- <<'JSON'
{
  "text": "<USER_TEXT_OR_X_URL>",
  "limit": 10,
  "offset": 0,
  "include_inactive": false,
  "include_markets": true,
  "markets_per_event": 1,
  "include_translations": false
}
JSON

Notes:

  • Use markets_per_event: 1 to keep payload small but still show the leading market.
  • If the user explicitly asks for more markets per event, increase markets_per_event.

API response format (what you will receive)

POST /search/unified returns JSON with this shape (fields may be omitted or null depending on data availability):

{
  "source": {
    "type": "x" ,
    "url": "https://x.com/.../status/...",
    "text": "resolved tweet text (optional)",
    "id": "optional"
  },
  "events": [
    {
      "score": 0.82,
      "event": {
        "id": 123,
        "title": "...",
        "description": "...",
        "source": "polymarket",
        "source_url": "https://polymarket.com/event/...",
        "status": "active",
        "volume_usd": 12345.67,
        "liquidity_usd": 2345.0,
        "end_date": "2026-12-31T00:00:00Z",
        "markets": [
          {
            "id": 999,
            "question": "...",
            "outcomes": ["Yes", "No"],
            "outcome_prices": {"Yes": 0.61, "No": 0.39},
            "volume": 1000.0,
            "active": true,
            "closed": false
          }
        ]
      }
    }
  ],
  "news": [
    {
      "score": 0.74,
      "news": {
        "id": 456,
        "title": "...",
        "summary": "...",
        "url": "https://...",
        "image_url": "https://...",
        "source": "...",
        "published_at": "2026-02-01T12:34:56Z"
      }
    }
  ]
}

Key points:

  • events[] is the primary output. Each item has { score, event }.
  • score is a relevance score; higher is better.
  • event.markets is present when you requested include_markets: true.
    • When you set markets_per_event, the backend may return only a preview subset.
  • news[] is optional supporting context; do not let it crowd out event results.

How the agent should parse + handle results

Important:

  • Do NOT show the raw JSON response to the user.
  • Always parse/validate the response first, then present the matched events as a clean, human-readable list.
  1. Validate payload shape
  • Treat missing/invalid JSON as a failure and retry once (or ask the user to retry).
  • If events is missing or not an array, treat it as empty.
  1. Rank and select
  • Sort events by score descending (even if the backend already sorted).
  • Default to presenting top 5 results; show up to 10 if the user asked for “more”.
  1. Extract a “market snapshot” per event (best-effort)
  • Prefer event.source_url as the click-through link.
  • If event.source_url is missing, fall back to the frontend detail page:
    • https://www.predictionbridge.xyz/event/<event.id>
  • If event.markets[0].outcome_prices exists:
    • show the YES/Long price if present: outcome_prices.Yes or outcome_prices.Long
    • otherwise show the first available outcome price
  1. Present concise output
  • For each event, output:
    • Title
    • Source/platform (event.source)
    • Relevance score (rounded, e.g. 0.82)
    • Link (event.source_url preferred)
    • 1-line snapshot: probability (if available) + volume/liquidity (if available)
  1. Optional: include related news
  • If news exists, include at most 1–3 items with title + URL as extra context.
  1. Empty results
  • If events is empty:
    • say no strong matches found
    • ask for 1 clarifying detail (timeframe, geography, person/org name, or paste the text instead of a shortened link)

How to present results

After you receive JSON:

  • If events is empty, say no matches were found and ask for a more specific query.
  • Otherwise list the top results (usually 5–10):
    • event title
    • platform/source (e.g. Polymarket, Kalshi)
    • score (higher is better)
    • a link to the event (event.source_url when present)
    • quick market snapshot (from the first market in event.markets, if present)

If news is present, optionally show 1–3 related news items as context.

Error handling

  • HTTP 400: invalid input or X resolve error → ask the user to paste a different link or provide plain text.
  • HTTP 503: backend DB unavailable → suggest retrying later.
  • Any network error: confirm PREDICTION_BRIDGE_API_URL and whether the API is reachable.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Gws Gmail Read

Gmail: Read a message and extract its body or headers.

Registry SourceRecently Updated
General

MikroTik API

Manages MikroTik routers via the RouterOS API (port 8728/8729). Use when the user wants to configure, monitor, or troubleshoot a MikroTik router — including...

Registry SourceRecently Updated
General

Evolution Watcher

自动监控并对比已安装插件版本,生成升级报告,支持星型记忆架构的智能进化决策。

Registry SourceRecently Updated
General

Thesaurus

Look up synonyms, antonyms, and related words with history and export. Use when finding alternatives, checking usage, running drills, analyzing frequency.

Registry SourceRecently Updated