/polymarket-analyzer
Analyze Polymarket prediction market events with real-time social intelligence from XPOZ MCP. Compares market odds against social sentiment to find gaps. Supports binary (YES/NO) and multi-choice events. Use when asked to "analyze a Polymarket event", "polymarket sentiment",
$ npx -y skills add XPOZpublic/xpoz-claude-code-plugins --skill polymarket-analyzer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/polymarket-analyzer
Context preview
The summary Claude sees to decide when to auto-load this skill.
Analyze Polymarket prediction market events with real-time social intelligence from XPOZ MCP. Compares market odds against social sentiment to find gaps. Supports binary (YES/NO) and multi-choice events. Use when asked to "analyze a Polymarket event", "polymarket sentiment",
SKILL.md
polymarket-analyzer.SKILL.mdname: polymarket-analyzer
version: 2026-03-20
description: Analyze Polymarket prediction market events with real-time social intelligence from XPOZ MCP. Compares market odds against social sentiment to find gaps. Supports binary (YES/NO) and multi-choice events. Use when asked to "analyze a Polymarket event", "polymarket sentiment", "prediction market analysis", or given a polymarket.com URL.
Polymarket Event Analyzer
Overview
This skill analyzes Polymarket prediction market events by combining on-chain market data with real-time social intelligence from Twitter/X, Reddit, and Instagram via XPOZ MCP. It identifies sentiment gaps between what bettors price and what the crowd actually says, surfaces top voices on each side, and highlights conversation catalysts. Output is a self-contained HTML report.
When to Use
Activate this skill when the user asks about:
- "Analyze this Polymarket event: [URL]"
- "Polymarket analysis for [TOPIC]"
- "What does social say about [POLYMARKET EVENT]?"
- "Prediction market sentiment for [EVENT]"
- "Compare market odds vs social sentiment for [EVENT]"
- Any `polymarket.com` URL
Prerequisites
- **XPOZ MCP server** configured (for Twitter, Reddit, Instagram data). Get an access key at [xpoz.ai](https://xpoz.ai).
- **Internet access** (for Polymarket gamma API via WebFetch)
MCP Configuration
Ensure the XPOZ MCP server is configured in your Claude Code settings (`~/.claude.json`):
{
"mcpServers": {
"xpoz-mcp": {
"url": "https://mcp.xpoz.ai/mcp",
"transport": "http-stream",
"headers": {
"Authorization": "Bearer YOUR_XPOZ_API_KEY"
}
}
}
}Replace `YOUR_XPOZ_API_KEY` with your key from [xpoz.ai/settings](https://www.xpoz.ai/settings).
---
Steps
**IMPORTANT**: Run end-to-end without stopping for user input (unless keyword search returns multiple events). Do NOT ask for confirmation at any step.
1. Resolve the Event
Use WebFetch to get event data from the Polymarket gamma API.
**If the user provides a URL:** Extract the slug (last path segment, e.g., `us-strikes-iran-by` from `https://polymarket.com/event/us-strikes-iran-by`) and fetch:
WebFetch: https://gamma-api.polymarket.com/events?slug=<SLUG>
**If the user provides a keyword:**
WebFetch: https://gamma-api.polymarket.com/events?title=<KEYWORD>&closed=false&limit=5
If multiple results, ask the user to choose. If one result, proceed automatically.
**Error handling:**
- If the API returns a 404, non-200 status, or an empty array `[]`: tell the user **"Event not found — check the URL or slug and try again."** Do not proceed.
- If keyword search returns 0 events: tell the user **"No events found for that keyword. Try a different keyword or provide a direct Polymarket URL."** Do not proceed.
**Parse the JSON response** (first element of the returned array):
- `id`, `title`, `description`
- `markets[]` — each has: `question`, `outcomePrices` (JSON string like `"[0.45, 0.55]"`), `volume`, `liquidity`, `active`, `closed`, `groupItemTitle`, `dayChange`, `weekChange`
**Detect event type:** 1. Filter to active, non-closed markets 2. Collect distinct `groupItemTitle` values (skip null/undefined) 3. If 2+ distinct titles → **multi-choice**; otherwise → **binary**
**For multi-choice:** Extract **exactly the top 6** candidates sorted by volume desc — **NEVER show more than 6**. For each:
- `name` = groupItemTitle
- `marketOdds` = Math.round(yesPrice * 100)
- `volume` = parseFloat(market.volume)
- `weekChange` = market.weekChange || 0
**Primary market:** Highest-volume market. Extract yesPrice, noPrice, volume, liquidity, dayChange, weekChange.
**Total volume:** Sum of all active market volumes.
Save: `SLUG`, `EVENT_TYPE`, `EVENT_TITLE`, `CANDIDATES` (if multi-choice), primary market data, total volume.
2. Extract Search Keywords
Derive automatically — do NOT ask for confirmation.
**Hard limit: 3-4 quoted multi-word phrases total. Never exceed 4.**
- **Binary events**: Extract **exactly 3** multi-word search phrases from the event title. Join with ` OR `.
- Every phrase MUST be 2+ words and quoted. Never use a single generic word.
- Bad: `"Oscar"` (matches F1 driver). Good: `"Best Actor Oscar 2026"`.
- Example: "Will US strike Iran?" → `"US strikes Iran" OR "Iran military strike" OR "Trump Iran attack"`
- **Multi-choice events**: **1 topic phrase + top 3 candidate names = 4 total max.**
- Topic phrase: core concept + year/context (e.g., `"World Cup 2026"` not just `"World Cup"`)
- Candidate names: use **full names** for people, team/country names for sports
- Do NOT add a keyword for every candidate — only the top 3 by volume
- Example: "Oscars Best Actor" → `"Best Actor Oscar 2026" OR "Timothee Chalamet Oscar" OR "Adrien Brody Oscar" OR "Sebastian Stan Oscar"`
**Validation before proceeding:**
- [ ] Total keyword phrases: 3-4 (never more)
- [ ] Every phrase is 2+ words
- [ ] Every phrase is quoted
- [ ] No single generic words like "Oscar", "market", "war"
3. Gather Social Data with XPOZ MCP
First, discover the actual XPOZ tool names by running ToolSearch queries. The MCP server may be registered under different name prefixes depending on the user's configuration (e.g., `mcp__xpoz-mcp__*`, `mcp__claude_ai_XPOZ-MCP__*`, or something else entirely).
Run these ToolSearch queries to discover the real tool names:
ToolSearch: +xpoz-mcp twitter keywords
ToolSearch: +xpoz-mcp reddit keywords
ToolSearch: +xpoz-mcp instagram keywords
ToolSearch: +xpoz-mcp count
ToolSearch: +xpoz-mcp checkOperation
**Use the exact tool names returned by ToolSearch.** The examples below show the parameter patterns — substitute the actual tool names from ToolSearch results:
Use `startDate` = 7 days ago (YYYY-MM-DD), `endDate` = today (YYYY-MM-DD).
Run these in **parallel**:
**Twitter posts** (tool: `getTwitterPostsByKeywords`):
query: "phrase1 OR phrase2 OR phrase3",
fields: ["id", "text",
Read more
name: polymarket-analyzer version: 2026-03-20 description: Analyze Polymarket prediction market events with real-time social intelligence from XPOZ MCP. Compares market odds against social sentiment to find gaps. Supports binary (YES/NO) and multi-choice events. Use when asked to "analyze a Polymarket event", "polymarket sentiment", "prediction market analysis", or given a polymarket.com URL.
Polymarket Event Analyzer
Overview
This skill analyzes Polymarket prediction market events by combining on-chain market data with real-time social intelligence from Twitter/X, Reddit, and Instagram via XPOZ MCP. It identifies sentiment gaps between what bettors price and what the crowd actually says, surfaces top voices on each side, and highlights conversation catalysts. Output is a self-contained HTML report.
When to Use
Activate this skill when the user asks about:
- "Analyze this Polymarket event: [URL]"
- "Polymarket analysis for [TOPIC]"
- "What does social say about [POLYMARKET EVENT]?"
- "Prediction market sentiment for [EVENT]"
- "Compare market odds vs social sentiment for [EVENT]"
- Any `polymarket.com` URL
Prerequisites
- **XPOZ MCP server** configured (for Twitter, Reddit, Instagram data). Get an access key at [xpoz.ai](https://xpoz.ai).
- **Internet access** (for Polymarket gamma API via WebFetch)
MCP Configuration
Ensure the XPOZ MCP server is configured in your Claude Code settings (`~/.claude.json`):
{
"mcpServers": {
"xpoz-mcp": {
"url": "https://mcp.xpoz.ai/mcp",
"transport": "http-stream",
"headers": {
"Authorization": "Bearer YOUR_XPOZ_API_KEY"
}
}
}
}Replace `YOUR_XPOZ_API_KEY` with your key from [xpoz.ai/settings](https://www.xpoz.ai/settings).
---
Steps
**IMPORTANT**: Run end-to-end without stopping for user input (unless keyword search returns multiple events). Do NOT ask for confirmation at any step.
1. Resolve the Event
Use WebFetch to get event data from the Polymarket gamma API.
**If the user provides a URL:** Extract the slug (last path segment, e.g., `us-strikes-iran-by` from `https://polymarket.com/event/us-strikes-iran-by`) and fetch:
WebFetch: https://gamma-api.polymarket.com/events?slug=<SLUG>
**If the user provides a keyword:**
WebFetch: https://gamma-api.polymarket.com/events?title=<KEYWORD>&closed=false&limit=5
If multiple results, ask the user to choose. If one result, proceed automatically.
**Error handling:**
- If the API returns a 404, non-200 status, or an empty array `[]`: tell the user **"Event not found — check the URL or slug and try again."** Do not proceed.
- If keyword search returns 0 events: tell the user **"No events found for that keyword. Try a different keyword or provide a direct Polymarket URL."** Do not proceed.
**Parse the JSON response** (first element of the returned array):
- `id`, `title`, `description`
- `markets[]` — each has: `question`, `outcomePrices` (JSON string like `"[0.45, 0.55]"`), `volume`, `liquidity`, `active`, `closed`, `groupItemTitle`, `dayChange`, `weekChange`
**Detect event type:** 1. Filter to active, non-closed markets 2. Collect distinct `groupItemTitle` values (skip null/undefined) 3. If 2+ distinct titles → **multi-choice**; otherwise → **binary**
**For multi-choice:** Extract **exactly the top 6** candidates sorted by volume desc — **NEVER show more than 6**. For each:
- `name` = groupItemTitle
- `marketOdds` = Math.round(yesPrice * 100)
- `volume` = parseFloat(market.volume)
- `weekChange` = market.weekChange || 0
**Primary market:** Highest-volume market. Extract yesPrice, noPrice, volume, liquidity, dayChange, weekChange.
**Total volume:** Sum of all active market volumes.
Save: `SLUG`, `EVENT_TYPE`, `EVENT_TITLE`, `CANDIDATES` (if multi-choice), primary market data, total volume.
2. Extract Search Keywords
Derive automatically — do NOT ask for confirmation.
**Hard limit: 3-4 quoted multi-word phrases total. Never exceed 4.**
- **Binary events**: Extract **exactly 3** multi-word search phrases from the event title. Join with ` OR `.
- Every phrase MUST be 2+ words and quoted. Never use a single generic word.
- Bad: `"Oscar"` (matches F1 driver). Good: `"Best Actor Oscar 2026"`.
- Example: "Will US strike Iran?" → `"US strikes Iran" OR "Iran military strike" OR "Trump Iran attack"`
- **Multi-choice events**: **1 topic phrase + top 3 candidate names = 4 total max.**
- Topic phrase: core concept + year/context (e.g., `"World Cup 2026"` not just `"World Cup"`)
- Candidate names: use **full names** for people, team/country names for sports
- Do NOT add a keyword for every candidate — only the top 3 by volume
- Example: "Oscars Best Actor" → `"Best Actor Oscar 2026" OR "Timothee Chalamet Oscar" OR "Adrien Brody Oscar" OR "Sebastian Stan Oscar"`
**Validation before proceeding:**
- [ ] Total keyword phrases: 3-4 (never more)
- [ ] Every phrase is 2+ words
- [ ] Every phrase is quoted
- [ ] No single generic words like "Oscar", "market", "war"
3. Gather Social Data with XPOZ MCP
First, discover the actual XPOZ tool names by running ToolSearch queries. The MCP server may be registered under different name prefixes depending on the user's configuration (e.g., `mcp__xpoz-mcp__*`, `mcp__claude_ai_XPOZ-MCP__*`, or something else entirely).
Run these ToolSearch queries to discover the real tool names:
ToolSearch: +xpoz-mcp twitter keywords ToolSearch: +xpoz-mcp reddit keywords ToolSearch: +xpoz-mcp instagram keywords ToolSearch: +xpoz-mcp count ToolSearch: +xpoz-mcp checkOperation
**Use the exact tool names returned by ToolSearch.** The examples below show the parameter patterns — substitute the actual tool names from ToolSearch results:
Use `startDate` = 7 days ago (YYYY-MM-DD), `endDate` = today (YYYY-MM-DD).
Run these in **parallel**:
**Twitter posts** (tool: `getTwitterPostsByKeywords`):
query: "phrase1 OR phrase2 OR phrase3", fields: ["id", "text",
Showing the first part of this file.
Real-time social media analysis for Claude Code, powered by XPOZ MCP
Other skills on xpoz-social-intelligence.
- /brand-competition
Competitive intelligence analysis comparing a brand against competitors using XPOZ MCP. Analyzes share of voice, sentiment comparison, and competitive positioning. Use when asked to "compare X vs Y", "competitive analysis", or "how does X stack up against competitors".
Open skill - /brand-influencers
Discover influencers and partnership opportunities for a brand using XPOZ MCP. Classifies influencers by tier (Mega/Macro/Micro/Nano), voice type, sentiment, and partnership potential. Use when asked to "find influencers", "partnership opportunities", "who's talking about X", or
Open skill - /brand-snapshot
Deep-dive brand intelligence analysis using XPOZ MCP. Analyzes sentiment, extracts narratives, identifies influencers, and generates SWOT analysis. Use when asked for "brand snapshot", "brand analysis", "what's the narrative on X", or "sentiment analysis for X brand".
Open skill

