Track which pages and brands win your buyers' questions

A board of the questions your buyers ask, showing where your pages land, which competitors show up instead, and what you lost since the last check.

App
Internet SearchGeneral Input DatabaseGoogle DocsSlack BotMarketingResearch & MonitoringContent Generation
PromptCreate

Build me an app my marketing team works out of, where we track the buyer questions we want to own and see, question by question, which pages and brands the live web actually surfaces. Everything the app stores lives in General Input Database (Execute SQL, with Create or List Databases to set the database up on first load), and every check runs through Internet Search (Search the Web). Do not describe this as reading answers out of ChatGPT or Gemini anywhere in the interface. It reports the ranked pages the web returns for a question, with titles, URLs, snippets and relevance scores.

The main surface is a board of tracked questions, one row per question, with questions phrased the way a buyer would ask them: "best CRM for recruiting agencies", "how much does field service software cost", "HubSpot vs Salesforce for small teams". Each row shows the question text, whether one of our own pages appears in the latest results and at what rank (or a clear "not appearing" state), the URL of our best-placed page, which competitor brands appear instead and at what ranks, that question's share of voice for us as a percentage, the movement since the previous check, the owner, and a link to the content brief if one has been generated. The default sort is the biggest visibility drop since the last check, so the questions we are losing sit at the top. Above the board, show headline numbers for the whole tracked set: total questions, how many we appear on, our overall share of voice as a percentage, the leading competitor's share of voice, and the date of the last check.

A Run check button at the top re-runs every tracked question. Before it starts, show a confirmation that states how many questions will be checked and that each question costs one search credit, since a run is one search per tracked question and the team should never be surprised by the size of a run. On confirm, call Internet Search (Search the Web) once per question, walking the list with visible progress and writing results as they come back so a partial run still saves something useful. Each run creates one dated snapshot: store the full ranked result list per question (rank position, title, URL, snippet, relevance score) plus the computed per-question metrics, so the board can draw a trend line across snapshots rather than only showing today.

Clicking a question opens its detail view: the full ranked result list from the latest snapshot with titles, clickable URLs and snippets so people can read what is actually winning, with each result visibly tagged as one of our pages, a named competitor, or neither. Below that, a small chart of our best rank and our share of voice for that question across every snapshot we have, and a list of past checks so someone can compare a specific date. The question's content brief link and the date it was generated sit here too.

A settings page holds the matching rules, configured once. Our own domains go in one list, and each competitor is a named brand with one or more domains under it, so a brand that runs several sites still counts as one competitor. When results come back, normalize each result URL down to its registrable domain (drop the scheme, drop www, ignore the path) and match it against those lists to decide whether a result is ours, a named competitor's, or unattributed. Share of voice is the percentage of ranked result slots across all tracked questions held by each brand, so our number and each competitor's number are directly comparable. Let settings choose whether that counts every returned result or only the top few positions, and how many results each check requests. Settings also holds the Slack channel that gets brief notifications.

Tracked questions are owned by whoever added them. Adding a question captures the question text, optional notes about the page or product it relates to, and stamps the current user as owner. The board has a filter for showing only my questions alongside the full team view, plus filters for questions where we do not appear at all and for questions where a named competitor appears. Anyone can see everything; ownership is about each marketer being able to work their own set.

Every row also has a Win this question button that kicks off a background agent. The agent runs deeper Internet Search (Search the Web) passes: the question itself at greater depth with page content included, a few close variations of the question, and follow-up searches against the top-ranked pages and their domains to understand what those pages actually cover. It also searches our own domains for the page of ours that comes closest to answering the question. From that it works out what the winning pages cover, how they are structured, which facts, numbers and entities they all include, and what none of them answer well. It then writes a content brief covering the recommended angle, the section-by-section outline, the specific facts and entities to include, the questions the page must answer, and a clear recommendation on whether to write a new page or refresh an existing one, naming the exact URL when it is a refresh. The agent creates the brief with Google Docs Create Document, fills it in with Google Docs Batch Update Document, saves the resulting document link and a generated-at timestamp back onto the question row in the app so the board shows it, and posts a short note to the content channel with Slack Bot Send a Message: the question, our current rank or that we are not appearing, the brand currently winning it, and the link to the doc. Show brief status on the row while the agent is running so people know one is in flight.

For storage, set up tables in General Input Database on first load: tracked questions (question text, owner, notes, brief doc URL, brief status, brief generated at, created at); checks (one row per run, with its date and how many questions it covered); results (check id, question id, rank position, title, URL, snippet, relevance score, and whether it matched us, a named competitor, or nobody); per-question snapshot metrics (check id, question id, our best rank, our share of voice, the competitor brands present); and settings tables for our domains, competitor brands with their domains, and the notification channel. Keep every snapshot so the trend line and the movement column are computed from real history rather than recalculated guesses.

What does this prompt do?

  • A board of every buyer question you are tracking, each row showing whether one of your pages appears in the live results and at what rank, which competitor brands appear instead, your share of voice across all tracked questions, and the movement since the last check.
  • One Run check button re-runs every tracked question and saves a dated snapshot, so the board builds a trend line over time instead of a one-off screenshot.
  • Click any question to read the full ranked list of pages that actually win it, with titles, links and snippets, plus how your position has moved check to check.
  • A Win this question button hands the question to a background assistant that studies the winning pages, writes a content brief into a Google Doc, saves the link onto the row, and posts a short note to your content channel in Slack.

What do I need to use this?

  • A Google account that can create documents in Google Docs
  • A Slack workspace where the app can post to your content channel
  • Your own website domains and each competitor's domains, entered once in settings
  • Web search and storage are built in, so there is nothing to connect on the search side. Each question checked uses one search credit, and the app shows the count before a run starts.

How can I customize it?

  • How many results each check looks at, and whether share of voice counts every result or only the top few positions.
  • Which competitors you track, and how several domains get grouped under one brand name.
  • What the content brief covers and which Slack channel gets the note when a brief is ready.

FAQs

Does this show me what ChatGPT or Gemini say about us?
No. It searches the live web and reports the pages and brands that actually get surfaced for each question, with titles, links and snippets you can open and read yourself. It does not look inside any chat assistant's answers.
How much does a check cost to run?
Each tracked question uses one web search per check. The app tells you how many questions a run will check before it starts, so you always know the size of a run before you press the button.
Can each marketer track their own set of questions?
Yes. Whoever adds a question owns it, and the board has a filter for showing only your own questions. Everyone can still see the full list, so the team shares one picture of where you stand.
Do I need a rank tracker or an SEO tool already set up?
No. You type the questions in plain English and enter your own domains and each competitor's domains once in settings. Everything else is stored inside the app.
Where do the content briefs end up?
Each brief is written into a new Google Doc in your own Google account. The link is saved onto the question row so anyone can reopen it later, and a short note with the link goes to your content channel in Slack.
What if none of our pages show up for a question?
That is the normal starting point and the board is built for it. Those questions show as not appearing, they count against your share of voice, and they are exactly the ones the Win this question button is designed for.

Related templates

Review desk for portal forms your team still fills in by hand

Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.

Kernel
Google Sheets
Slack Bot
App
Client-by-client cold email pipeline review for agencies

Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.

Instantly
HubSpot
Slack Bot
App
Find the customers stuck contacting support again and again

A board that ranks the people who opened three or more separate support conversations this month, reads their threads, and files the real fix.

Kustomer
Linear
General Input Database
App
Catch the trials quietly dying before the card gets charged

Open one desk each morning to see every account still in a trial, ranked by how much money is at stake against how little they have actually used.

Intercom
Stripe
General Input Database
App
Audit what Intercom's Fin AI actually resolved before you pay

Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.

Intercom
Google Sheets
Slack Bot
App
One triage console for every Jira service desk queue

Merge your IT, HR and Facilities queues into one list ranked by SLA time left, then reply, change status and escalate without ever opening Jira.

Jira Service Management
Jira
Slack Bot
App

Stop guessing which buyer questions you are losing.

Track the questions your buyers actually ask, watch the pages and brands winning them, and turn every loss into a brief your writers can act on.