How it works
How Rumoro collects posts, how often it checks each platform, which rules filter them, and what happens to a mention.
From post to mention
Rumoro checks each platform on its own schedule. Every post is brought into one common shape, compared with the keywords of every workspace, scored by a language model, and sent on by your alert rules.
Workspaces share the collection. If two workspaces track the same term, Rumoro asks the platform once and stores the post once, then matches it for both. Hacker News is the exception, because it is searched for each keyword every 5 minutes. Your feed shows the part of this collection that matches your keywords.
How often platforms are checked
Some platforms are read live (Bluesky), others once a day (reviews). The Platforms tab lists each one.
On X, LinkedIn, Reddit, TikTok, Instagram and GitHub, a keyword that keeps finding nothing is checked less often. Its next match brings it back to the normal schedule. polling on a keyword shows when each platform was last checked and how many checks in a row found nothing.
A new keyword starts with the 10 newest matching posts from the last 30 days on each platform that supports it (10 days on Instagram). After that it only gets new posts. If you add a platform to an existing keyword, that platform starts from that moment, without a look-back. Look-back mentions are billed. They appear in the feed and in digests, but not in instant alerts.
Matching rules
A term matches as a phrase, ignoring case. Two sets of rules remove posts before they are stored. A post they remove is never scored or billed, which is what makes them different from an alert's filter.
| Level | Where | Rules |
|---|---|---|
| Keyword | matching on POST and PATCH /v1/keywords/{id} | requiredTerms, with requiredMode set to any or all. excludedTerms, where * at the start or end is a wildcard (promo*). excludedAuthors, written like an alert's mute list. caseSensitive, for acronyms such as RAG that shouldn't match rag. |
| Workspace | GET and PATCH /v1/filters | excludedTerms and excludedAuthors for all keywords, excludedRepos for GitHub repositories (owner/name), and subreddits.only or subreddits.excluded. |
A keyword can also have a context sentence that helps the classifier with that term, for example "Mercury is our banking app, not the planet or the metal." It changes the score, not what is stored. Changed rules apply from the next check. Mentions you already have stay.
Mention status
A mention's state is in four fields.
| Field | Values | Meaning |
|---|---|---|
status | open, ignored, done | Your triage, set with PATCH /v1/mentions/{id}. New mentions are open. |
relevant | true, false | Relevance is 40 or higher. Stays false until the mention is scored. |
delivered | true, false | At least one alert channel received it. |
classification | object or null | null until scored. failed: true when scoring failed. |
All matches stay searchable. Noise (relevant: false) is only sent when a rule's minRelevance is below 40, and GET /v1/mentions?relevant=false lists it. Mentions marked ignored or done are not sent in new alerts.
Scores
The classifier reads your company profile, or the description of the keyword's group if it has one, and fills in classification.
| Field | Values |
|---|---|
relevance | 0 to 100 |
sentiment | positive, neutral, negative |
intents | buy_intent, question, complaint, praise, comparison, churn_intent, bug_report, pricing, hiring, event, promotional, testimonial (someone recommends it from experience), industry_insight (facts or trends about the market), launch (something new is announced), feedback (an idea or a request) |
automated | true for bots, templates and generated digests |
language | An ISO 639-1 code such as en or es, or null |
confidence | How sure the relevance score is, from 0 to 1, or null |
uncertain | true when confidence is below 0.4 or the model that wrote the note disagreed with the score. It marks the mention but filters nothing. |
note | Why the mention matters, in up to 200 characters |
failed | true when scoring failed. Failed mentions are never billed. |
feedback | Your verdict, if you gave one, and the values it replaced |
Your verdict
Correct a score with PATCH /v1/mentions/{id}.
relevant: falsemarks a mention as noise. Its relevance becomes 0, and it drops out of the relevant feed, digests, counts and analytics.relevant: truerescues a mention the classifier missed and sets its relevance to 100.sentimentfixes the sentiment label.nullundoes your verdict and restores the classifier's values fromclassification.feedback.
Verdicts don't change what you pay. Each keyword counts them in stats.feedback. A mention that isn't scored yet returns 409 classification_pending.
Your company profile matters most
Good scores need good context. Use PATCH /v1/company to describe your company, its use cases, its competitors and what counts as relevant to you. A keyword's context adds detail for one term.
Author data
Each mention keeps the public post and its author's public name, handle, picture and follower count. On some platforms Rumoro also reads public profile details such as bio, company, location, website and linked accounts. It keeps an email only when the person published one there. Every workspace that matched the person shares these details.
Rumoro relies on legitimate interests (GDPR Art. 6(1)(f)) to process this data. Your workspace's notes, tags and outreach about a person belong to you, and you are their controller. The MCP tools never return an email address, so profile.email is always null there. The REST API and the dashboard show it where the person published it.
Anyone can ask to have their accounts removed at rumoro.dev/privacy/remove. We finish each request within 30 days. Their mentions then leave every workspace, with the notes, tags and outreach attached to them, and Rumoro stops storing their new posts. Charges for those mentions stay in your usage and ledger.