Use case4 min read2026-07-28

Measure brand sentiment in ChatGPT

Being mentioned by ChatGPT is not the same as being recommended by it. "Acme is a popular option, though users report a steep learning curve" is a mention — and a warning label. Brand sentiment is the job of reading how the answers characterize you: the adjectives, the caveats, the "but"s that follow your name. AgentGEO's part of that job is deliberately narrow: it fetches the raw answer text, reliably and repeatably. The scoring belongs to a model you control — a ten-line classifier call — because sentiment is a judgment, and judgments you report should be ones you can re-run, re-prompt and defend.

Read this page with an AI

The pipeline is fetch → extract → classify: pull the answers for your query set, cut the sentences that name you, and have an LLM you choose label each one. AgentGEO is the first stage; the rest is yours, and that's the feature.

How sentiment measurement works

  1. Fetch the answers that talk about you. Brand queries ("is Acme good", "Acme reviews", "Acme vs Northwind") plus your category queries. POST /v1/fetches with surfaces: ["chatgpt"] — add other engines later; the record shape doesn't change.
  2. Extract the brand context. From each answerText, keep the sentences containing your name plus one sentence either side. Sentiment lives in the qualifiers around the mention, not in the mention.
  3. Classify with your own model. Send each snippet to whatever LLM you already use with a fixed rubric — positive / neutral / negative / mixed, plus the quoted phrase that justifies the label. Store label and quote; a score without its evidence can't be audited later.
sentiment.py — fetch here, judge in your model
import requests

BRAND = "Acme"

resp = requests.post(
    "https://api.agentgeo.org/v1/fetches",
    json={"query": "is acme project management any good", "surfaces": ["chatgpt"]},
    headers={"Authorization": "Bearer ag_live_your_key_here"},
    timeout=200,
)
resp.raise_for_status()

for answer in resp.json()["answers"]:
    text = answer.get("answerText") or ""
    snippets = [s.strip() for s in text.split(".") if BRAND.lower() in s.lower()]
    for s in snippets:
        print(f"- {s}")
    # -> feed `snippets` to your own LLM with a fixed rubric:
    #    label ∈ {positive, neutral, negative, mixed} + justifying quote

AgentGEO never scores sentiment for you — that's a design decision, not a missing feature. A vendor-supplied sentiment number bakes in a rubric you can't see, on text you can't check. Raw answers plus your own classifier means the methodology section of your report is real.

Track the labels over time the same way you track mentions: fixed query set, dated rows, diffs between runs. Sentiment moves slower than visibility — a launch changes mentions in weeks, but the "steep learning curve" caveat can outlive the redesign that fixed it by a year. The dated record is how you prove the change eventually landed.

Let your agent run it

This is the use case where agent-side analysis earns its keep: the geo-sentiment skill (shipped in agentgeo-mcp, served live by the API) has the agent fetch the answers and do the classification in one conversation — the classifier is the agent's own model, the rubric is in the skill, and the output cites the exact answer text behind every label.

One line to install
claude mcp add agentgeo -- npx -y agentgeo-mcp --key ag_live_...

Alternatives

Some GEO platforms (Scrunch, AthenaHQ) include a sentiment gauge — a defensible convenience if you don't need to explain the number. When a CMO or a client asks "negative according to what?", a dashboard gauge has no answer, and that's the moment teams move the classification in-house. Manual reading in the browser works too, for exactly one brand query at a time, once.

More use cases

Sentiment pairs with share-of-voice monitoring — how often you appear, then how you're framed — and with competitor tracking for the same read on rivals. See all use cases.

Read what the answers say about you this week: Get a free AI-visibility audit →

Get my free audit

FAQ

Direct answers to the questions this page raises.

Because a score is a judgment, and the judgment should be auditable by the team reporting it. AgentGEO returns the answer text; you (or the geo-sentiment skill running in your agent) apply a rubric you can read, version and re-run. When the number is challenged, you have the quote.

Brand-evaluation phrasings: "is [brand] good", "[brand] reviews", "[brand] pros and cons", "[brand] vs [rival]". Category queries mostly yield mentions; evaluation queries yield characterizations — the adjectives and caveats a classifier can actually label.

Yes — the record shape is identical across all six surfaces, so the same pipeline reads Perplexity, Gemini, Google AI Overviews, Google AI Mode and Copilot by adding keys to surfaces. ChatGPT is where most buyers evaluate brands conversationally, which is why this page leads with it.

No — every plan is paid, and a workspace fetches nothing live until it has one. What costs nothing: the human-run audit, and ag_test_ keys, which return labelled demo records at zero credits.

Keep reading

Where this page leads next.

Run these checks on your own brand

Two ways in. Send a URL and a person runs the fetches for you, free — or connect your agent over MCP, on a plan, and run them yourself. Either way you get the raw answers and their citations, never a score.