ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Measure Whether ChatGPT, Perplexity, and Gemini Recommend Your Brand
Tutorial

How to Measure Whether ChatGPT, Perplexity, and Gemini Recommend Your Brand

You can't cheaply poll every AI assistant at scale. Proxy it: track the SERP and Reddit sources they cite. Working Python and JS with a search API.

Get Free API KeyAPI Docs

You cannot directly and cheaply query ChatGPT, Perplexity, and Gemini for 'best [your category]' at scale, and even if you could, they disagree wildly. One Reddit test ran the same 50 'best tool' prompts through all three and found they named the same brand only 21% of the time. So measure the inputs instead of the outputs. These assistants ground their answers in the live SERP and in high-signal community threads (Reddit especially). If you track which sources rank and get cited for your money queries, you get a repeatable, cheap proxy for AI-recommendation visibility. This is the Scavio 4-signal AI-recommendation audit: SERP organic presence, People-Also-Ask coverage, knowledge-graph entity match, and Reddit mention share.

Prerequisites

  • A Scavio API key (50 free credits at signup)
  • Python 3.9+ or Node 18+
  • A list of 10-20 'best [category]' and 'who should I hire for X' queries your buyers actually ask

Walkthrough

Step 1: List the queries an AI would fan out

Assistants expand one question into many sub-queries. Write the head query ('best serp api') plus the fan-outs a model would generate: 'cheapest serp api', 'serp api for rag', 'serpapi alternative'. These are what you will score.

Python
queries = [
    "best serp api for ai agents",
    "cheapest web search api 2026",
    "serpapi alternative",
    "serp api for rag pipeline",
]

Step 2: Pull the full SERP for each query (2 credits each)

Set light_request:false so one call returns organic_results, related_questions (People Also Ask), knowledge_graph, and related_searches. Those blocks are the source pool AI assistants draw from.

Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}

def serp(q):
    return requests.post("https://api.scavio.dev/api/v2/google",
        headers=H, json={"query": q, "light_request": False}).json()

Step 3: Score the 4 signals for your brand

For each query, check: (1) does your domain appear in organic_results, (2) do you show up in any related_questions answer, (3) does the knowledge_graph name you, (4) are you mentioned in the Reddit threads that rank. Signals 1-3 come from the SERP call; signal 4 comes from a Reddit search.

Python
def score_brand(q, brand, domain):
    s = serp(q)
    organic = any(domain in r.get("link", "") for r in s.get("organic_results", []))
    paa = any(brand.lower() in (x.get("question","") + x.get("answer","")).lower()
              for x in s.get("related_questions", []))
    kg = brand.lower() in str(s.get("knowledge_graph", {})).lower()
    return {"query": q, "organic": organic, "paa": paa, "knowledge_graph": kg}

Step 4: Add the Reddit citation signal

Assistants lean on Reddit for 'best tool' answers. Search Reddit for the same query and check whether your brand is named in the top threads. Reddit presence is a leading indicator of AI-answer citations for the same topic.

Python
def reddit_mention(q, brand):
    r = requests.post("https://api.scavio.dev/api/v1/reddit/search",
        headers=H, json={"query": q, "sort": "top"}).json()
    return sum(brand.lower() in p.get("title","").lower() for p in r.get("posts", []))

Step 5: Roll it up into a weekly visibility score

Run the audit on a schedule and store the four booleans per query. Your score is the share of queries where you hit each signal. Track the delta week over week; a rising Reddit and organic share precedes rising AI-answer mentions.

Python
rows = [ {**score_brand(q, "Scavio", "scavio.dev"),
          "reddit": reddit_mention(q, "Scavio")} for q in queries ]
hit = lambda k: round(100 * sum(bool(r[k]) for r in rows) / len(rows))
print("organic %:", hit("organic"), " PAA %:", hit("paa"),
      " KG %:", hit("knowledge_graph"), " reddit hits:", sum(r["reddit"] for r in rows))

Python Example

Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}

def audit(query, brand, domain):
    s = requests.post("https://api.scavio.dev/api/v2/google",
        headers=H, json={"query": query, "light_request": False}).json()
    r = requests.post("https://api.scavio.dev/api/v1/reddit/search",
        headers=H, json={"query": query, "sort": "top"}).json()
    return {
        "query": query,
        "organic": any(domain in x.get("link","") for x in s.get("organic_results", [])),
        "knowledge_graph": brand.lower() in str(s.get("knowledge_graph", {})).lower(),
        "reddit_hits": sum(brand.lower() in p.get("title","").lower() for p in r.get("posts", [])),
    }

print(audit("best serp api for ai agents", "Scavio", "scavio.dev"))

JavaScript Example

JavaScript
import { Scavio } from "scavio";
const client = new Scavio({ apiKey: process.env.SCAVIO_API_KEY });

async function audit(query, brand, domain) {
  const s = await client.google.search({ query, light_request: false });
  const r = await client.reddit.search({ query, sort: "top" });
  return {
    query,
    organic: (s.organic_results || []).some(x => (x.link || "").includes(domain)),
    knowledgeGraph: JSON.stringify(s.knowledge_graph || {}).toLowerCase().includes(brand.toLowerCase()),
    redditHits: (r.posts || []).filter(p => (p.title || "").toLowerCase().includes(brand.toLowerCase())).length,
  };
}
console.log(await audit("best serp api for ai agents", "Scavio", "scavio.dev"));

Expected Output

JSON
{'query': 'best serp api for ai agents', 'organic': True, 'knowledge_graph': False, 'reddit_hits': 2}

Related Tutorials

  • How to Build a Reddit Brand Mention Alert

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

A Scavio API key (50 free credits at signup). Python 3.9+ or Node 18+. A list of 10-20 'best [category]' and 'who should I hire for X' queries your buyers actually ask. A Scavio API key gives you 50 free credits on signup.

Yes. The free tier includes 50 credits on signup, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Best Of

Best AEO Tracking APIs on a Budget in 2026

Read more
Best Of

Best GEO/AI Visibility Tracking Tools in 2026

Read more
Use Case

GEO Brand Visibility Monitoring

Read more
Use Case

Automated LLM Visibility Tracking

Read more
Solution

Monitor Your Brand on TikTok Without Enterprise Pricing

Read more
Comparison

Scavio vs Brand.dev

Read more

Start Building

You can't cheaply poll every AI assistant at scale. Proxy it: track the SERP and Reddit sources they cite. Working Python and JS with a search API.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy