brand-mention-monitor

star 0

Measures whether anyone is talking about TrueAdvertize on Reddit, X/Twitter, LinkedIn, Hacker News, YouTube, podcasts, or the open web. Different from geo-citation-monitor (which asks AI engines questions). Brand mentions are the upstream signal that drives AI citation rates. Uses Serper API. Runs weekly via the Sunday cron. Trigger phrases: run brand check, brand mention check, who is talking about TA, upstream signal, brand awareness.

JuanCamilo101 By JuanCamilo101 schedule Updated 6/2/2026

name: brand-mention-monitor description: Measures whether anyone is talking about TrueAdvertize on Reddit, X/Twitter, LinkedIn, Hacker News, YouTube, podcasts, or the open web. Different from geo-citation-monitor (which asks AI engines questions). Brand mentions are the upstream signal that drives AI citation rates. Uses Serper API. Runs weekly via the Sunday cron. Trigger phrases: run brand check, brand mention check, who is talking about TA, upstream signal, brand awareness. allowed-tools: Read Write Edit Bash AskUserQuestion

brand-mention-monitor

While geo-citation-monitor asks AI engines "do you cite TA when asked X?", this skill asks the WEB "is anyone naming TA at all?" Brand mentions are upstream of AI citations — every Reddit thread that names TrueAdvertize becomes training data and search context for the AI engines that get queried weekly.

Run weekly alongside the citation check. Cost: ~$0.03 per run via Serper API.

Output lives in content/brand-mention-log/.


When to use

  • "Run the brand mention check"
  • Weekly upstream-signal review
  • After a backlink campaign placement (run 2 weeks later to see if the placement got picked up downstream)
  • Before any "are we growing in awareness" status update to Sam

When NOT to use

  • AI citation tracking — that's geo-citation-monitor, different question, different cost profile
  • SEO ranking — that's Google Search Console, not this
  • Real-time tracking — Serper indexes update on Google's schedule, daily runs waste API calls

How

Step 1: Confirm SERPER_API_KEY

The script reads .env.local at the repo root. Required:

  • SERPER_API_KEY (already wired for the blog-publish workflow)

If the key is missing, the run aborts before making any API calls.

Step 2: Run the script

Default — all queries:

node scripts/brand-mention-check.mjs

Smoke test — 3 queries:

node scripts/brand-mention-check.mjs --limit 3

The script prints per brand mention found and · per empty result as it runs.

Step 3: Read the output

Two files get written:

content/brand-mention-log/<YYYY-MM-DD>.md — human-readable run log:

  • Top line: total mentions found + unique URLs
  • By-category table (where mentions landed — Reddit, X, LinkedIn, podcasts, openweb, etc.)
  • Per-mention detail — title, URL, snippet, the query that found it
  • New-this-week section (URLs not seen in last week's run, if applicable)

content/brand-mention-log/_trend.json — append-only rolling trend, one entry per run date. Tracks:

  • total_mentions over time
  • unique_urls over time
  • by_category breakdown
  • New URLs discovered per run

Re-running on the same date overwrites that date's entry.

Step 4: Interpret

Healthy first 90-day pattern:

  • Week 1-2: 0-3 mentions total (mostly your own LinkedIn). Baseline.
  • Week 4-8: 5-15 mentions. Backlink campaign placements + Reddit/X chatter from the published content start landing.
  • Month 3: 30+ mentions across 4+ categories. Real awareness.

Worry signal: total mentions FLAT for 4+ weeks while citation rate is also flat. Means content is shipping but no one's amplifying it. Investment shifts to distribution (guest posts, podcasts, in-person events), not more content.

Concentration signal: if 90% of mentions are LinkedIn while every other category is at 0, distribution is single-channel. AI engines won't see you anywhere outside the LinkedIn graph (which most don't scrape deeply). Diversify.

Step 5: Update COO status

After each run, the Monday operating rhythm includes a brand-mention line:

"Brand mentions this week: <N>. Up/flat/down vs last week. Concentrated in <categories>."


The query bank

Lives in .claude/skills/brand-mention-monitor/queries.json. Ten queries across seven categories:

  • reddit — Reddit threads naming TA or Samuel
  • x — X / Twitter posts (caught via web index, not the Twitter API)
  • linkedin — Public LinkedIn articles + posts (caught via web index)
  • hackernews — HN threads
  • youtube — Videos and descriptions
  • podcasts — Episode pages on Apple Podcasts + Spotify
  • openweb — Anything else, excluding own site and LinkedIn (catches blogs, press, newsletters)

Each query is a Google-style search string passed to Serper. Result filtering: a result counts as a "mention" only if the title, snippet, or URL contains one of the brand patterns:

  • trueadvertize
  • True Advertize
  • Samuel Roa (with optional Cardenas)

This avoids false positives from generic results.

Add new queries to the bottom of queries.json; retire old ones with retired: true (don't delete — preserves trend comparability).


Outputs

  • content/brand-mention-log/<date>.md — one per run, committed to git as the historical record
  • content/brand-mention-log/_trend.json — rolling trend JSON, committed
  • Console output during the run with per-query ★N/· markers

The cron

Fires every Sunday at 09:00 UTC via .github/workflows/weekly-brand-mention-check.yml. Same time as weekly-citation-check.yml so both upstream-signal files are dated identically and easy to compare side-by-side.

The cron commits the new dated log + updated trend JSON via a PR titled brand-mention-log: weekly run <date>. Append-only data — PR is safe to merge directly with no review.

Manual trigger: GitHub Actions tab → Weekly Brand Mention Check → Run workflow.

Required repository secret:

  • SERPER_API_KEY (already configured)

Anti-patterns

  • Don't run daily. Serper indexes update on Google's schedule. Daily is wasted spend.
  • Don't conflate brand mentions with AI citations. They measure different things. Use both, side-by-side. Brand goes up first; citations follow 2-4 weeks later.
  • Don't react to a single mention. A single Reddit thread or one LinkedIn post is noise. A trendline rising over 4 weeks across multiple categories is signal.
  • Don't change the query bank between runs without versioning. Add to the bottom, retire with a flag — never silently mutate, or the trend becomes uncomparable.
  • Don't include mentions from trueadvertize.com itself in the count. The queries explicitly exclude the own domain via -site:trueadvertize.com. Self-mentions aren't signal.

Source

  • Internal tooling — built to close the brand-awareness measurement gap called out in the AEO/GEO COO conversation (2026-06-02).
  • Pairs with [[geo-citation-monitor]] for the full upstream-to-downstream picture.
  • Serper API documentation: serper.dev
Install via CLI
npx skills add https://github.com/JuanCamilo101/TrueAdvertize --skill brand-mention-monitor
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
JuanCamilo101
JuanCamilo101 Explore all skills →