superagnt

Competitor Tracker

A daily scoreboard of you vs your competitors on X, on a chart you can share.

Tracks X only: posts per hour and likes per brand, from public posts. It never posts, and it can't make your scoreboard public. Sharing the view is yours.

competitor tracker · the scoreboard
measured nov 3, 2026

Posts per hour on X, one pass

the latest 20 posts per brand · kept only when the text names the brand

  1. 1Semrush7.13 /hr
  2. 2Ahrefs4.45 /hr
  3. 3SE Ranking0.58 /hr
  4. 4Moz0.32 /hr

mindshare, not market share · gaps under 1.5x are noise · the trend comes from the daily run

5 searches · 5 credits · 17 s of tool timereal run · public x posts

You can feel like you’re winning on X and be wrong. This agent runs the identical search for every brand you track each morning, logs posts-per-hour and engagement medians to your workspace database, and keeps a shareable chart current. Same method every day, so the trend is real, and the numbers are yours to publish.

X searchWorkspace PostgresWorkspace dashboard
01// install

One paste into your agent.
Your first scoreboard, minutes later.

works with any agent+ 8 more
Install superagnt's Competitor Tracker skill for me. It's the competitor-mindshare plugin from the github.com/superagnt/plugins marketplace, plus the superagnt MCP server (on Claude it's a connector I add in my browser; elsewhere I sign in through my browser). The setup guide for each kind of agent is at https://www.superagnt.com/install?skill=competitor-mindshare
or follow the detailed setup instructions

» installs the competitor-mindshare skill (read every file first, or the raw SKILL.md) and enables data:x, database

» not at your machine? send the install to your inbox and run it at your desk.

02// a real run

Four SEO tools on X, measured on Nov 3, 2026

Claude Code (Opus 5.5) with this skill and a superagnt test workspace, given the prompt below. It made 8 calls: it read the brands stored on an earlier pass and their rows, searched the latest posts for each brand, searched Moz again with a tighter query, and logged one row per brand. 5 searches, 5 credits, 17 seconds of tool time and 9 min 36 s end to end. Five of the calls are below.

the ask

“Show me how Semrush, Ahrefs, Moz and SE Ranking stack up on X (Twitter) right now: for each brand, how many posts an hour mention it across its latest posts, the median likes on those posts, and the top post. Put it in one table.”

  1. 01Read the brands and the names people type for them1.8 s wall time
    → callagnt_db_read
    {
      "action": "select",
      "table": "mindshare_brands",
      "limit": 100
    }
    ← result
    {
      "rows": [
        {
          "id": 1,
          "brand": "Semrush",
          "variants": ["\\bsemrush\\b"],
          "active": true
        },
        {
          "id": 3,
          "brand": "Moz",
          "variants": ["\\bmoz\\b", "@moz\\b"],
          "active": true
        }
      ]
    }

    » Trimmed: Ahrefs and SE Ranking, the other two of 4

  2. 02Semrush: the latest posts, first page2.5 s wall time
    → calldata_x_discover
    {
      "action": "search",
      "query": "semrush",
      "section": "latest",
      "limit": 40,
      "response_format": "json"
    }
    ← result
    {
      "items": [
        {
          "created_at": "Tue Nov 03 18:00:11 +0000 2026",
          "author": "jetwriterjohn",
          "text": "The more things change, the more they stay the same.\n\nI've been combing over the blogs from the major SEO providers (Ahrefs, Semrush, Backli…",
          "likes": 0,
          "replies": 0
        },
        {
          "created_at": "Tue Nov 03 17:41:02 +0000 2026",
          "author": "VikasAnandHS",
          "text": "Semrush confirms 'poisoned' Google results are impacting SEO tools https://t.co/dZvFyzMeTS",
          "likes": 0,
          "replies": 0
        }
      ]
    }

    » Trimmed: 18 more posts of 20, the next-page token, and the fields this step doesn't read (views, media, follower counts)

  3. 03Moz: the same search shape, which mostly finds other meanings of the word2.2 s wall time
    → calldata_x_discover
    {
      "action": "search",
      "query": "moz",
      "section": "latest",
      "limit": 40,
      "response_format": "json"
    }
    ← result
    {
      "items": [
        {
          "created_at": "Tue Nov 03 18:00:29 +0000 2026",
          "author": "KalaMana",
          "text": "The Complete AI Research Workflow: From Prompt Discovery to Content Creation moz.\u200bcom/blog/ai-research-workflow-moz-pro https://t.co/X3zrlrW…",
          "likes": 0,
          "replies": 0
        },
        {
          "created_at": "Tue Nov 03 17:45:58 +0000 2026",
          "author": "Angel05337196",
          "text": "Mooch gets Mooched - Wake up with Moz! @MeganFoxWriter https://t.co/Cpho70361F via @YouTube",
          "likes": 1,
          "replies": 0
        }
      ]
    }

    » Trimmed: 18 more posts of 20: Mozambique, a German newspaper, a Japanese idol group and a Serbo-Croatian word among them. 8 of the 20 named "moz", and 1 was about the company

  4. 04Moz again, tighter: the handle, the site, its products, or moz next to an SEO word3.5 s wall time
    → calldata_x_discover
    {
      "action": "search",
      "query": "(moz (seo OR ahrefs OR semrush OR backlink OR backlinks OR \"domain authority\" OR keyword OR keywords)) OR @moz OR \"moz pro\" OR \"moz.com\" OR mozbar OR \"moz local\"",
      "section": "latest",
      "limit": 40,
      "response_format": "json"
    }
    ← result
    {
      "items": [
        {
          "created_at": "Tue Nov 03 18:00:29 +0000 2026",
          "author": "KalaMana",
          "text": "The Complete AI Research Workflow: From Prompt Discovery to Content Creation moz.\u200bcom/blog/ai-research-workflow-moz-pro https://t.co/X3zrlrW…",
          "likes": 0,
          "replies": 0
        },
        {
          "created_at": "Tue Nov 03 12:46:53 +0000 2026",
          "author": "HelixKingLabs",
          "text": "@CyrusShepard @Moz A checklist covering technical, security, and international in one place is rare. This has to have saved a lot of people …",
          "likes": 0,
          "replies": 0
        }
      ]
    }

    » Trimmed: 18 more posts of 20, reaching back to Nov 1, and the fields this step doesn't read

  5. 05Log one row per brand, so tomorrow adds a point1.4 s wall time
    → callagnt_db_write
    {
      "action": "insert",
      "table": "mindshare_daily",
      "return_rows": true,
      "rows": [
        {
          "brand_id": 1,
          "posts_per_hour": 7.13,
          "median_likes": 0,
          "sample_size": 19,
          "top_post_url": "https://x.com/semrush/status/2117661877253665257",
          "method_version": "latest-40-literal"
        },
        {
          "brand_id": 3,
          "posts_per_hour": 0.32,
          "median_likes": 0,
          "sample_size": 18,
          "top_post_url": "https://x.com/jabezreuben/status/2117213659382599893",
          "method_version": "latest-40-literal-tight"
        }
      ]
    }
    ← result
    {
      "rows": [
        {
          "id": 5,
          "brand_id": 1,
          "measured_at": "2026-11-03T18:08:05.280243+00:00",
          "posts_per_hour": 7.13,
          "sample_size": 19
        }
      ]
    }

    » Trimmed: the Ahrefs and SE Ranking rows (4 sent, ids 5 to 8 back) and each row's other columns

The table it wrote is below. Semrush led at 7.13 posts an hour, 1.6 times Ahrefs, just past the 1.5x line under which a gap is noise. Moz's row went in under its own method name, so a tighter query never mixes with the plain one in the trend.

BrandPosts per hourPosts keptWindow the page coversMedian likesTop post
Semrush7.1319 of 20Nov 3, 15:20 to 18:00 (2.66 h)09 likes
Ahrefs4.4520 of 20Nov 3, 13:30 to 18:00 (4.5 h)026 likes
SE Ranking0.5815 of 20Nov 2, 15:02 to Nov 3, 16:45 (25.71 h)06 likes
Moz0.3218 of 20Nov 1, 09:30 to Nov 3, 18:00 (56.51 h)01 like

Posts per hour = posts that name the brand, divided by the hours between the newest and oldest post on the page. Nov 3, 2026, the first page of 20 latest posts per brand. Times UTC.

03// method and limits

How the number is made, and what it can't tell you

  • The same search shape for every brand: latest posts, the first page, no like floor. Change the shape and the skill starts a new series instead of mixing them.
  • X search matches loosely, so only posts whose text names the brand are kept. On Nov 3 that dropped 1 of 20 for Semrush, 5 of 20 for SE Ranking and 2 of 20 for Moz's tighter search.
  • A common word needs a tighter query. The plain search for moz kept 8 of 20 posts, and 1 was about the company. The tighter one kept 18, and 9 of those were one account's scheduled hashtag posts, three a day, so Moz's rate is the least certain of the four.
  • Most posts get no likes, so the median was 0 for every brand. The top post is the better read, and Semrush's came from Semrush's own account.
  • Mindshare is not market share. It counts who gets talked about on X, not who sells more.
  • Gaps under about 1.5 times are noise. One day is one point; the trend needs the daily run.
04// with and without the skill

The same prompt in Claude Code with no superagnt

Same prompt, same model (Opus 5.5), same four brands, Nov 3, 2026. Each side was a fresh Claude Code subagent. The plain one had Claude Code's web search, web fetch and a shell, at 16:35 UTC. The other read the Competitor Tracker's SKILL.md and reached superagnt's MCP server through a command-line client, at 18:00 UTC.

Claude Code on its ownWith the Competitor Tracker
What it reachedX search sat behind a login wall. Free mirrors were down, blocked or showed a takedown notice.The latest 20 posts per brand from X search.
Posts per hourEmpty for all fourSemrush 7.13, Ahrefs 4.45, SE Ranking 0.58, Moz 0.32
Median likes and top postEmpty. Web search found single posts from 2020 to 2026, not a sample.A median per brand, and each brand's top post linked
Work17 tool calls, 4 min 39 s8 superagnt calls, 5 credits, 9 min 36 s
05// step by step

Three steps to your first scoreboard.

  1. 1

    Name the brands

    List the brands you care about, yours included. It stores the abbreviations people actually type too, so no mention slips past the board.

    agnt_db_insert

    who's on the boardexample
    your brandcompetitor acompetitor b

    + the abbreviations people actually type

  2. 2

    It measures every morning

    Each morning it runs the identical search per brand and logs posts-per-hour and engagement medians. One method, every day, so the trend you see is real movement, not noise.

    data_x_search_get_search_search · agnt_db_insert

    one honest row per morningexample
    mon · you3.4 posts/hr
    tue · you4.2 posts/hr
    wed · you5.5 posts/hr
  3. 3

    Share the scoreboard

    Your scoreboard is a view on your superagnt dashboard that stays current on its own. Share it as a link from the app: your co-founder watches it move without an account, and the numbers are yours to publish.

    agnt_dashboards_write_file · agnt_dashboards_publish

    anyone can watch it moveexample

    share link: superagnt.com/s/mindshare…

»After the first good run, the skill offers the always-on version: a small hosted runner on a schedule, so the work keeps happening with your laptop closed. You confirm the cadence before anything is scheduled.

06// what's inside

Read every file before you install it.

SKILL.md tells your agent to store your brands and the names people type for them, run the identical search for each brand every morning, keep only posts that name the brand, log posts per hour and median likes per brand per day, and build one scoreboard view on your dashboard. Its first two headings are setup for the agent: which tools to turn on, and the tool names on newer servers.

Plain markdown your agent reads while it runs. SKILL.md is the procedure. This is the plugin exactly as it installs from github.com/superagnt/plugins: 4 files, 7.7 KB.

07// questions

Common questions

01Is there a free competitor tracking AI?

The skill is free to install and read. Each measurement is a handful of X searches paid in superagnt credits: the four-brand pass on this page cost 5 credits. Plans are $49, $149 or $399 a month, and a new account starts with a no-card trial.

02What does it track on X?

Posts per hour and median likes for each brand you name, from public X posts, plus the top post of the day. One row per brand per day lands in your workspace database.

03Can it track competitors on LinkedIn, Instagram or TikTok?

Not this skill: it measures X. superagnt's tools also read LinkedIn, Instagram, TikTok, Reddit and YouTube, so your agent can pull those by hand, but the scoreboard and its tables are X only.

04How accurate is share of voice on X?

It is a fixed method, not a census. The same search shape every day makes the trend comparable. Gaps under about 1.5 times are noise, and a brand whose name is a common word needs a tighter query or it over-counts.

05Can I share the scoreboard?

Yes. The agent builds a view on your superagnt dashboard that stays current as rows land. You turn on its public link in the superagnt app; agents can't make one.

06How is this different from a social listening tool?

Listening tools collect mentions for you to read. This skill runs one measurement per brand per day, the same way every day, and keeps the numbers in a database your agent can query and chart. It runs in the AI you already use, on live X data, with nothing else to connect.