Install
openclaw skills install @markolo10/rumoroRumoro social listening: track your brand, competitors and topics on Reddit, X, Hacker News, GitHub, Bluesky and more, read and triage scored mentions, set up Slack, Telegram, email and webhook alerts, and read analytics and the people behind the posts. Use when the user asks what people say about their product or a competitor, or names Rumoro.
openclaw skills install @markolo10/rumoroRumoro finds public posts that mention the words a company cares about, scores each one for relevance, sentiment and intent, and serves them through a REST API. This skill calls that API with curl.
https://api.rumoro.dev/v1Authorization: Bearer $RUMORO_API_KEYhttps://mcp.rumoro.dev/mcp/guide. Read it before the first write in a session.https://api.rumoro.dev/v1/openapi.jsonhttps://docs.rumoro.dev (add .mdx to any page for Markdown)The key comes from RUMORO_API_KEY. If it is missing, or a call returns 401, stop and tell the user to create a key on the API keys page of the Rumoro dashboard (https://app.rumoro.dev). A write key covers everything here. A read key can search, read analytics and people, but change nothing. Never print the key or send it anywhere except api.rumoro.dev.
GET /v1/whoami shows the workspace and whether the key can write. Call it once when you are unsure.
Reads take query parameters. Writes send JSON.
curl -sS "https://api.rumoro.dev/v1/mentions?relevant=true&since=2026-10-01T00:00:00Z&limit=20" \
-H "Authorization: Bearer $RUMORO_API_KEY"
curl -sS -X POST "https://api.rumoro.dev/v1/keywords" \
-H "Authorization: Bearer $RUMORO_API_KEY" -H "Content-Type: application/json" \
-d '{"term": "driftwood", "kind": "brand"}'
If the rumoro CLI is installed (npm install -g @rumoro-dev/cli), rumoro mentions:search --relevant true does the same with the key from the environment.
| The user wants | Call |
|---|---|
| To track a brand, competitor or topic | GET /v1/keywords to avoid duplicates, then POST /v1/keywords with term, kind and optional platforms |
| To know what people say | GET /v1/mentions with relevant=true, since, platform, sentiment, intent or q, and sort=priority for what matters most |
| To handle a mention | PATCH /v1/mentions/{id} with status (done, ignored, open), assigneeId, snoozedUntil or note |
| To correct a score | PATCH /v1/mentions/{id} with relevant or sentiment |
| Less noise | GET /v1/keywords/{id}/health, then apply a suggested patch with PATCH /v1/keywords/{id} once the user agrees |
| An alert | GET /v1/channels, then POST /v1/alerts with mode (instant, hourly, daily, weekly), a filter and channelIds |
| Numbers and trends | GET /v1/analytics/summary, series, breakdown or share-of-voice |
| The people behind the posts | GET /v1/people with sort=reach or other filters, and PATCH /v1/people/{id} for tags and notes |
| The balance or costs | GET /v1/usage or GET /v1/usage/breakdown |
Slack and Telegram channels are connected in the dashboard, so pick an existing one. Email and webhook channels can be created with POST /v1/channels.
kw_ for keywords, mm_ for mentions and aut_ for people.{ data, nextCursor }. Send nextCursor back as cursor with the same filters. People and keywords use limit, offset and total.{ "error": { "code", "message" } }. 403 read_only_key means the key cannot write. 402 means the balance is too low, so send the user to the Billing page instead of retrying. On 429, wait Retry-After seconds.DELETE, before rotating a webhook secret and before merging people. Deleting a keyword deletes its mentions.