Asking a few AI models your prompts on a schedule, saving the answers and counting brand mentions and cited sites is a weekend project on SQLite with the OpenAI, Perplexity and Gemini APIs. The catch is what you measure: LLM Pulse's own blog says it runs prompts through the real chat interfaces and that tools built on APIs miss what users actually see. Google AI Overviews and AI Mode have no official API at all, so a home-built tracker is a directional proxy, not the same measurement.
Build me a local AI-visibility tracker to replace LLM Pulse. Requirements: - Node.js 22 + TypeScript: a Fastify server and a small React dashboard built with Vite. `npm start` serves http://localhost:4890; `npm run track` runs one tracking pass from the command line. - Config: ./tracker.yml (`yaml`) holds your brand with aliases and domain, up to 10 competitors the same way, and a list of prompts, each with a tag such as category, comparison or reputation. - Providers behind one `AskProvider` interface: the OpenAI Responses API with the web_search tool, Perplexity Sonar, and Gemini with Google Search grounding. Keys in .env, each one optional. Store the full answer text and the cited URLs for every call. - Each prompt runs 3 times per provider per pass because answers vary. Report mention rate as runs with a mention divided by runs, never as a single yes or no. - Detection: case-insensitive, word-boundary alias matching for mentions; rank is the order of first mention among tracked brands; cited domains are counted per brand with your own domain highlighted. - Storage: better-sqlite3 in ./data/pulse.db: prompts, runs, answers, mentions, citations. Keep every raw answer so detection can be re-run after you fix an alias. Weekly passes with `node-cron`. - Dashboard: mention rate and share of voice per provider over time, a prompt table with the latest answers, top cited domains, and CSV export of every table. - Cost guard: estimate the number of calls before a pass and refuse above MAX_PASS_COST_USD in .env. - Optional sentiment: when a chat key is set, classify how each answer frames your brand (positive, neutral, negative) with a fixed rubric kept in the repo. - Single user. No accounts, no telemetry. Outbound calls: the provider APIs only. - Out of scope: Google AI Overviews and AI Mode (no official API), scraping the chat apps, content writing, several projects. - README: say that API answers differ from what people see in the apps, so the numbers are directional.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own LLM Pulse.
Add a weekly email report to the AI-visibility tracker in this folder. Requirements: - After each weekly pass, send an HTML email through nodemailer (SMTP in .env) to REPORT_TO. - Include mention rate and share of voice per provider with the change since last week, the 5 prompts where you gained or lost most, and newly cited domains. - Only flag a change when it exceeds the run-to-run variation observed in the last 4 passes; say "within noise" otherwise. - Keep a copy as Markdown in ./reports/YYYY-MM-DD.md. - Update the README.
Add prompt suggestions to the AI-visibility tracker in this folder. Requirements: - A command `npm run suggest -- queries.csv` that reads a Google Search Console export (query, clicks, impressions). - Ask the chat model to turn the top 100 queries into natural-language questions, group them by intent and drop duplicates of existing prompts. - Print the candidates and add the ones I confirm to tracker.yml with a tag; never write without confirmation. - Update the README with the Search Console export steps.
Add a citation gap view to the AI-visibility tracker in this folder. Requirements: - A page listing domains and URLs cited in answers that mention a competitor but never mention you. - Group by domain, show the number of answers and the prompts, and link the cited page. - Filter by provider and date range; export the table as CSV. - Mark domains already in an "ignore" list in .env (your own site, social networks). - Update the README.
Marketing teams want a dashboard they can screenshot into a report, covering the Google AI surfaces and several countries, with someone else keeping the collection running as the apps change. The recommendations and drafting tools turn the numbers into a task list, which an API script does not.
Estimate · 50 prompts, three runs each, three providers, weekly: about 1,900 calls a month. Search-enabled calls are billed per call plus tokens, so check each provider's current prices; it runs on your machine. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Starter | $55 | $45.84 | 50 tracked prompts, 1 project, 10 competitors per project, 3 GEO Writer tasks, unlimited team members, 5 AI models included. |
| Growth | $111.13 | $92.61 | 150 tracked prompts, 2 projects, 15 competitors per project, 5 GEO Writer tasks; adds sentiment, owned media, AI traffic analytics and the LLM Pulse Agent. |
| Scale | $335.63 | $279.69 | 450 tracked prompts, 5 projects, 20 competitors per project, 15 GEO Writer tasks; adds shopping and paid-ads tracking, reputation, GEO testing, custom reports, API, Looker Studio connector and CLI. |
| Scale+ | $672.38 | $560.31 | 1,200 tracked prompts and 10 projects. |
| Scale++ | $1,345.88 | $1,121.56 | 2,400 tracked prompts and 15 projects. |
| Enterprise | custom | — | Custom prompts and projects, white label, embedded dashboards, dedicated account manager, custom integrations, invoice billing. |
No free plan. New customers may get a 14-day trial on weekly Starter, Growth or Scale; it needs a payment method.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Google AI Overviews and AI Mode tracking, Answers collected from the public chat interfaces in different countries.
About $55 a month on the Starter (weekly tracking) plan, $660 a year (checked 2026-10-19).
Google AI Overviews and AI Mode tracking; Answers collected from the public chat interfaces in different countries; Sentiment, reputation and recommendation reports, and the GEO Writer drafts; AI-traffic and AI-crawler analytics and connectors for Looker Studio, Power BI and Tableau; A hosted history that keeps running without your machine and your API budget. If any of those matter to you, keep paying.
Yes: Ansvisor (open source), GetCito (open source), Potato (open source).