# Brand monitoring across web, social, news, reviews and AI answers

Brand monitoring tools charge a seat for a dashboard that does four things: search social platforms for your name, search the news, search the web, and alert you. Most teams look at the dashboard once a week and act on two mentions a month.

The same four searches are capabilities on one key, priced per call. Run them on a schedule, keep the rows, and let an agent decide which mentions deserve a human. A fifth call, `aeo.mentions`, covers the surface no monitoring dashboard was built for: the prompts where ChatGPT and Google AI Mode name you, or name a competitor instead.

## The pipeline

```
social.search    →  posts mentioning the brand on X, Reddit, LinkedIn, TikTok, YouTube, Instagram
news.search      →  articles mentioning it, dated, with the source
web.search       →  pages mentioning it: blogs, forums, directories, comparison posts
reviews.search   →  what customers wrote on Google Maps and Yelp
aeo.mentions     →  which AI answers name the brand, and what they cite
social.comments  →  the replies under a post worth reading in full
```

## Step 1: social, platform by platform

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "social.search",
       "input": {"platform": "reddit", "query": "\"RouterGrowth\"", "limit": 50}}'
```

One call per platform: `x`, `reddit`, `linkedin`, `youtube`, `tiktok`, `instagram`, `facebook`. Posts come back with text, author, URL, engagement and `created_at`. There is no date filter on the call, so filter on `created_at` after it and keep the last run's newest timestamp as the watermark for the next one.

Quote the brand name, and search the product names and the founder's name as separate queries. Competitor names go in the same loop: a thread where someone asks for alternatives to a competitor is the highest-value mention you will find, and it never contains your name.

Pricing is per post at the limit you request, by platform, and the exact quote comes back from `/v1/inspect`. A sweep of seven platforms at 50 posts each is a few dollars, which is the point: a weekly sweep costs less than an hour of the person who used to do it by hand.

## Step 2: news

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "news.search", "input": {"query": "\"RouterGrowth\"", "limit": 20}}'
```

Google News, dated, with the publication. Press coverage is rare for most brands, so this call mostly returns nothing, and a search that returns nothing is not billed. When it does return something, it is the row a founder wants to see first.

## Step 3: the open web

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "web.search", "input": {"query": "\"RouterGrowth\" review OR alternative OR vs", "limit": 20}}'
```

Comparison posts, directory listings, forum threads outside Reddit, newsletters. Drop results on your own domain after the call rather than with a `-site:` operator: search operators are not reliably honoured by the providers and are billed at a multiple of the plain-phrase price. Scrape the ones that matter with `web.scrape` when the snippet is not enough to judge sentiment.

## Step 4: reviews, for businesses with a listing

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "reviews.search",
       "input": {"place": "https://maps.google.com/?cid=...", "platform": "google_maps", "limit": 30}}'
```

Rating, text, date and whether the owner replied, from Google Maps or Yelp. For a local or consumer brand this is the loudest channel and the one where an unanswered review costs the most. For a B2B SaaS it is usually empty and you skip it.

## Step 5: AI answers

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "aeo.mentions",
       "input": {"domain": "routergrowth.com", "platform": "chatgpt", "limit": 20}}'
```

The prompts in which an AI answer names your domain, the full answer, the sources it cited and the other brands named alongside, on ChatGPT and Google AI Mode. Run it with `keyword` set to your category instead of `domain` to see the answers where you are absent and a competitor is not.

This is the surface that changed the job. A Reddit thread is read by the people in it. An AI answer that recommends a competitor is read by everyone who asks the question, and nobody sees the mention happen. The [AI search visibility guide](/use-cases/ai-search-visibility) covers measuring it as a rate across samples; here it is one more feed in the sweep.

## Triage: what deserves a human

Five feeds produce a lot of rows. The agent's job is to reduce them to the handful that need a reply, and it can do most of that with three questions per row:

| Question | Signal | Action |
| --- | --- | --- |
| Is it a question someone is asking? | "anyone used", "alternatives to", "vs" | Reply, with disclosure |
| Is it wrong? | A factual claim about pricing, features or the company that is false | Correct it, politely, once |
| Is it a customer with a problem? | Support-shaped complaint, a review under 3 stars | Route to support the same day |

Everything else is a row in the log. Sentiment on the rest is worth tracking as a weekly count, not worth reading one by one.

For a post that passes triage, `social.comments` on its URL pulls the full reply thread, which is usually where the actual objection lives.

## Where it breaks

- **Common-word brand names.** If your brand is also a word, quote it and add a category term, or the social feeds become noise. Competitor names have the same problem.
- **No date filter on social search.** Filter on `created_at` client side and keep a watermark per platform and query. Do not re-read the same 50 posts every week.
- **LinkedIn search is shallow.** The platform surfaces fewer public posts by keyword than X or Reddit does. A LinkedIn mention that matters usually reaches you through a person before it reaches a search.
- **AI answers vary run to run.** One `aeo.mentions` pull is a sample, not a verdict. Run the same query on a schedule and read the trend.
- **Replying is a human decision.** Nothing here posts. The agent drafts, discloses the affiliation in the draft, and a person presses send.

## Run it as an agent

```bash
routergrowth run -c social.search -i '{"platform":"reddit","query":"\"RouterGrowth\"","limit":50}'
routergrowth run -c news.search -i '{"query":"\"RouterGrowth\"","limit":20}'
routergrowth run -c web.search -i '{"query":"\"RouterGrowth\" review OR alternative OR vs","limit":20}'
routergrowth run -c aeo.mentions -i '{"domain":"routergrowth.com","platform":"chatgpt","limit":20}'
```

The [brand mention sweep skill](/skills/brand-mention-sweep) packages this loop, including the triage table, as a skill an agent can run weekly and hand back as a short report.

## FAQ

### How can I monitor brand mentions across the web and social media with one API?

Four capabilities on one key cover it: `social.search` for X, Reddit, LinkedIn, TikTok, YouTube, Instagram and Facebook, `news.search` for Google News, `web.search` for the open web and `reviews.search` for Google Maps and Yelp. Each is priced per call, a search that returns nothing is not billed, and the same key gives an agent `aeo.mentions` for the AI answers that name you. There is no monitoring seat and no monthly minimum.

### Which tool tracks which prompts mention my company in LLM answers?

`aeo.mentions` returns the prompts where a domain or keyword appears in ChatGPT or Google AI Mode answers, with the full answer, the cited sources and the other brands named. `aeo.answer` runs a specific prompt through ChatGPT, Claude, Gemini or Perplexity and returns the answer and its citations, so you can build your own panel of buyer questions and re-run it monthly. Both are per-call and sit on the same balance as the social and news searches.

### What does a weekly sweep cost?

It depends on how many platforms and how many posts you request per query; the quote is returned before each call. A sweep across seven social platforms at 50 posts each, plus news, web and one AI-mentions pull, lands in the low single-digit dollars. The rows are cheap; the expensive part was the person reading them, and that is what the triage step hands to the agent.

### Does the API post replies for me?

No. Every capability here reads. The agent drafts a reply with the affiliation disclosed and a person decides whether to post it. Automated replies are how brands get banned from the communities they were trying to join.

### Is this a replacement for Brandwatch or Mention?

For a team that wanted the data and an agent to triage it, yes. For a team that wanted the dashboard, the sentiment charts and the alerting UI, no: this is the data layer, and the agent or your own tooling is the interface. The trade is a per-call price and a JSON row instead of a seat and a screen.
