AI visibility tracking on a budget. The 3 routines I run every week.

Entry plans for AI visibility tracking tools run $29 to $399 a month. I track the same things on my own site with three scheduled routines: a weekly AI answer round, a daily changed-page check, and a monthly buyer-question pass. Here's exactly what each one runs, what it costs, and what it showed me in its first week.

One search keeps finding my site: a founder "running a small SaaS startup on a tight budget" who needs "a tool to monitor our AI search visibility."

Google showed my page to that search 215 times in three months. Nobody clicked. The page it showed them is my list of AI visibility tools, where entry plans run from $29 to $399 a month, for 15 to 350 tracked questions.

So here's the answer I should have given them. This is my AI visibility tracking setup: three scheduled routines that watch my own site. The paid part costs 9 cents a week at list price.

The AI answers chart on my public Lab dashboard
The AI answers chart on my Lab, Oct 28. It stays empty until I've reviewed the first round by hand.

What AI visibility tracking actually means

It's four questions, asked on a schedule:

  1. Do AI answers name me when a buyer asks who to hire or what to use?
  2. Can AI crawlers read my pages, or does something block them?
  3. Has Google indexed my pages? ChatGPT search, Gemini and Google's AI Overviews all lean on search indexes. A page that isn't indexed rarely gets cited.
  4. Which buyer questions already find me, and which page answers them?

Paid tools mostly do number 1 on a dashboard. The other three are free if you ask the right APIs.

The 3 routines, on one page

RoutineWhenWhat it runsAPIsCostWhat it unlocks
WeeklyMonday 6:00AI answer round on 10 fixed buyer questions, Search Console refresh report, index check, site crawl, AI crawler accessBright Data LLM scrapers, Search Console, URL InspectionAbout $0.09 a round at list price, capped at $1Whether ChatGPT and Gemini name you, week over week, plus the pages worth fixing this week
Daily9:00Finds pages that changed since yesterday and tells Bing about themIndexNowFreeBing hears about new and edited pages the day they change, instead of waiting for its next crawl. Bing feeds ChatGPT search and Copilot
Monthly1st, 8:00Sorts every Search Console query by intent and finds pages competing for the same searchSearch Console, Bright Data SERP (optional)Free without the SERP stepThe buyer questions you already show up for, and the page that should own each one

Everything writes a short report to a folder. Nothing publishes on its own. I read the reports, and only reviewed numbers go on my public dashboard.

Routine 1: the weekly AI answer round

Every Monday, the same 10 buyer questions go to the ChatGPT and Gemini apps a buyer actually uses, logged out, three times each. That's 60 answers.

I use Bright Data's LLM scrapers for this instead of the OpenAI or Gemini APIs. API answers come from a different setup than the app a buyer types into, so I keep the two apart. Perplexity is the third app on my list, but Bright Data's Perplexity scraper has been failing, so the routine retries it with one question each week and records it as "not collected" until it works.

Step by step:

  1. Pick your questions once and freeze them. Mine are 4 "who should I hire" questions, 2 comparisons, 3 problem questions and 1 about my own brand. Here's how I chose them.
  2. Write your predictions down before the first round, with a date. Mine are public.
  3. Set a dollar cap. My runner reserves money for every answer before it asks, and stops before it can pass $1 a round or $10 total.
  4. Run it, then read the answers yourself before you count anything.
python3 research/prompt-tracker/runner/guarded_run.py run --env .env \
  --round-date 2026-10-27 --accept-estimated-prices --skip-unimplemented
Terminal output from the first AI answer round
The first round, Oct 27: 60 of 60 answers captured, $0.09 committed of the $1 cap.

What it showed in week one: across 54 answers to my 9 buying questions, ChatGPT and Gemini named SuperMarketers 0 times. Asked about my brand directly, they described it in 6 of 6 answers. That's an automatic text match, not a review yet. It's also the baseline I predicted: being known when someone asks for you by name, and invisible when they ask who to hire.

I expected that number, and it still stings to see it in a table. Who-to-hire answers lean on other people mentioning you, so the next eight weeks go into pages for the questions buyers actually ask, and into getting mentioned where AI already looks.

Routine 1, continued: the free half of Monday

The same Monday run checks four things that cost nothing:

The weekly report: AI answers, pages to refresh, and Google index changes
The weekly report, Oct 28. One file, read in two minutes.

Two things stood out in the first report. Google indexed my predictions page within a day of publishing. And 14 of my 90 pages sit at "discovered, not indexed": Google knows they exist and hasn't bothered to read them. Most are thin pages in one section, so that's my next fix.

Routine 2: the daily changed-page check

My site deploys whenever I push a change. Instead of wiring a hook into the deploy, a daily job fetches every page in the sitemap, compares it with yesterday's copy, and sends anything new or changed to IndexNow.

IndexNow is a free protocol run by Bing and others. It's worth caring about because ChatGPT search draws on Bing's index.

Step by step:

  1. Generate a key (any 32-character hex string).
  2. Put a text file named after the key at your site root, containing only the key. Mine lives at supermarketers.ai/<key>.txt.
  3. Save the key in your .env as INDEXNOW_KEY.
  4. POST the changed URLs to api.indexnow.org/indexnow with your host, key and key location. A 202 means accepted.
Terminal output from the daily changed-page check
The first daily run, Oct 28: all 90 sitemap URLs submitted (first run counts everything as new), HTTP 202.

Routine 3: the monthly buyer-question pass

Once a month the routine pulls 90 days of Search Console queries and sorts each one by intent:

Monthly research report: queries by intent and the top buyer questions
The first monthly report, Oct 28: 727 queries found my site.

The split was humbling. Tool shoppers brought 3,253 impressions. Buyers brought 485. Most of my AI search traffic comes from people shopping for software I don't sell.

The useful part is the buyer list. "Who offers AI search audits for B2B companies?" reaches my site at position 3.3, and lands on the tools list. I don't have an audit page. Now there's a task to build one.

The SERP step is optional. With a Bright Data SERP API zone, the routine also fetches the live Google result for the top buyer questions: who ranks, the People Also Ask questions, and whether an AI Overview shows. Bright Data doesn't sell search volume, so for volume I use Search Console impressions for the searches I already appear in, and a keyword data API for the rest.

How I scheduled them on a Mac

All three run from launchd, the Mac's built-in scheduler. Unlike cron, it runs a missed job when the laptop wakes up, so a Monday spent asleep in a bag doesn't skip the week.

Installing the three routines and confirming they're loaded
One installer registers all three jobs. The check confirms nothing drifted.

Step by step:

  1. Put each routine behind one script with a mode: lab-routines.sh weekly|daily|monthly.
  2. Give every run a lock, so two runs never overlap, and a dated output folder.
  3. Have each run end by writing a summary.md that compares against the previous run.
  4. Register the jobs with StartCalendarInterval (Monday 6:00, daily 9:00, the 1st at 8:00) and load them with launchctl bootstrap.
  5. Run each one once by hand with launchctl kickstart and read the log.

What this costs, next to a tool

Paid AI visibility toolThese 3 routines
Monthly cost$29 to $399 for an entry planAbout $0.40 at Bright Data list price (4 rounds)
Which AI answersThe vendor's setup, often API modelsThe logged-out ChatGPT and Gemini apps
Index and crawler checksSometimesEvery week
Who reads the resultA dashboardYou, in one file, before anything is published
Setup timeMinutesAn afternoon, if you're comfortable in a terminal

The trade is honest: a tool is faster to start and has a nicer chart. The routines are cheaper, check more, and keep you reading the actual answers. That last part matters most, because the count is only as good as the person who checked it.

If you need a client-ready chart next week, or nobody on your team wants to touch a terminal, buy the tool. Otterly's $29 plan is a fine place to start.

FAQ

Can I track whether ChatGPT recommends my company for free?

Almost. Asking the ChatGPT app 30 questions a week through Bright Data costs about 5 cents at its list price of $1.50 per 1,000 answers. Asking by hand is free and works fine for 10 questions, but you lose the three-runs-per-question view that shows how much answers swing.

How many questions should I track?

I track 10. Fewer than that and one odd answer moves the whole number. More than that and you stop reading the answers.

Do I need Bright Data?

Only for the AI answer round, and only if you want the consumer apps. The index check, crawl, crawler access, IndexNow and Search Console routines need no paid service.

Does IndexNow help with Google?

No. Google doesn't use IndexNow. It helps Bing and the engines that share its index. For Google, use the URL Inspection API to see what's indexed, and fix the pages it skips.

What I'm doing next

The routines run every week from here on. The first reviewed AI numbers go on the Lab after the two-week baseline, next to the predictions I made before I saw them.

I'll post each week's numbers on the Lab, including the weeks nothing moves. If you'd rather have these routines running for your team, book a call.

What are you checking on your own site every week?

◆ ◆ ◆
Want this run for your team?

Know if AI names you.
every week.

We set up the routines that check your AI answers, your index and your buyer questions, then turn what they find into pages that win the answer. From $5,000 a month.

Book a 30-minute call →