---
title: "Build an AI Search Terms Report in One Afternoon"
description: "Use a spreadsheet to test 30 buyer prompts in ChatGPT and Perplexity, log the sources they cite, and turn missing brand mentions into a fix list."
url: "https://groas.com/post/build-a-search-terms-report-for-ai-answe"
image: "https://pub-87da24ecbbfc4c3bad6875f3aa013712.r2.dev/generated-images/2190f170-60ba-418c-9293-c755c663d70e.png"
published: "2026-10-20T05:19:06.542Z"
modified: "2026-10-20T05:19:06.614Z"
---

October 20, 2026 · 10 min read

# Build an AI Search Terms Report in One Afternoon

[Alexander PerelmanHead Of Product @ groas](https://groas.com/author/alexander-perelman)[LinkedIn](https://www.linkedin.com/in/alexander-433793253/)

![A tiny shopkeeper with a clipboard tallies travellers at a model crossroads whose signpost sends everyone to rival shops, never down her lane.](https://pub-87da24ecbbfc4c3bad6875f3aa013712.r2.dev/generated-images/2190f170-60ba-418c-9293-c755c663d70e.png)

In this article

1. [What you will build, and what you need first](#what-you-will-build-and-what-you-need-first)
2. [Step 1: Give each answer one clean row](#step-1-give-each-answer-one-clean-row)
3. [Step 2: Mine 30 prompts from buyer language](#step-2-mine-30-prompts-from-buyer-language)
4. [Step 3: Test each prompt in both engines, three times](#step-3-test-each-prompt-in-both-engines-three-times)
5. [Step 4: Capture the pages behind the answer](#step-4-capture-the-pages-behind-the-answer)
6. [Step 5: Pivot the runs and count the cited pages](#step-5-pivot-the-runs-and-count-the-cited-pages)
7. [Step 6: Assign a fix to each gap](#step-6-assign-a-fix-to-each-gap)
8. [What the finished gap sheet should look like](#what-the-finished-gap-sheet-should-look-like)
9. [Verify the fixes, then stop doing busywork](#verify-the-fixes-then-stop-doing-busywork)

Your brand is missing from an AI answer, and a dashboard wants a monthly fee to tell you so. I would start with the search terms report approach instead: log the buyer’s exact question, record what the engine answered, and inspect the pages it cited.

**You do not need a platform to find your first AI citation gaps.** A spreadsheet built like a PPC search terms report can show you which prompts mention your brand, which third-party pages appear instead, and which answers your site is missing. Do the manual audit once. Then decide whether it is worth automating.

## What you will build, and what you need first

By the end, you will have an _AI Search Terms & Gap Map_: 30 unbranded buyer prompts tested in ChatGPT and Perplexity, three times each. That is **180 evaluations**, plus a list of cited pages and a short backlog of fixes. You will not have a permanent visibility score. You will have a usable baseline.

Before starting, open:

- A blank Google Sheet.
- A logged-out private browser window for ChatGPT.
- A logged-out private browser window for Perplexity.
- Your sales objections, recorded demos, or paid search queries that led to closed revenue. Use what you have; do not invent buyer language from a positioning deck.

## Step 1: Give each answer one clean row

Create a tab named `Raw_Evaluations`. Paste this header into cell `A1`, so it fills columns A through H. The fields follow an [AEO logging schema documented by MaxAEO](https://maxaeo.ai/blog/track-perplexity-mentions/), adapted for search term mining:

```tsv
Prompt	Engine	Run Number	Brand Mentioned	Position	Sentiment	Cited URLs	Competitor Named
```

![Eight-column spreadsheet layout for logging AI prompt answers and cited URLs.](https://pub-87da24ecbbfc4c3bad6875f3aa013712.r2.dev/generated-images/f9e39ead-db55-4b99-8c9e-62d8c43e956d.png)

Set data validation in `B2:B` to a dropdown containing `ChatGPT` and `Perplexity`. Restrict `C2:C` to whole numbers `1` through `3`. Set `D2:D` to checkboxes. In `E2:E`, enter the brand’s numeric position among recommendations: `1` if first, `2` if second, and `0` if absent. Use a `Positive`, `Neutral`, or `Negative` dropdown in `F2:F`; leave sentiment blank when the brand is absent. Put full citation URLs in `G2:G`, separated by semicolons, and rival products in `H2:H`. Add a free-text `Notes` header in `I1` if something needs explaining.

**Expected result:** A header row and a consistent place for all 180 evaluations. The answers will occupy rows 2 through 181.

**Mistake to avoid:** Writing “mentioned near the bottom” in `Position` or “sort of” in `Brand Mentioned`. Keep the measured fields numeric or boolean. Put the nuance in `Notes`.

## Step 2: Mine 30 prompts from buyer language

Pull questions from sales demos, CRM objection logs, and paid search queries tied to revenue. If you need to work back from your existing search data, use this walkthrough to [find the buyer questions AI answers without you](https://groas.com/post/how-to-find-the-buyer-questions-ai-answe). Write 30 natural-language prompts and number them in a separate document. Split them into two batches:

1. **15 commercial evaluations:** Buyers comparing vendors or asking for recommendations, such as `best contract management software for legal teams under 50 people` or `alternatives to DocuSign for small firms`.
2. **15 informational problems:** Buyers trying to solve a task, such as `how to calculate redline turnaround time in Word` or `SOC 2 compliance requirements for customer contracts`.

Keep the wording close to what a buyer would type. If a sales objection contains a useful constraint, such as team size or workflow, keep it. A category-wide prompt and a prompt for a small legal team do not ask the same question.

**Expected result:** Thirty numbered, unbranded prompts with enough specificity to reveal whether an answer fits your buyer.

**Mistake to avoid:** Testing `how does Brand X compare to Brand Y` and calling the resulting mention a discovery win. The prompt supplied the brand. Use non-branded questions for this audit.

## Step 3: Test each prompt in both engines, three times

Start with prompt `1`. Submit it to ChatGPT in a fresh private session, then fill one row in `Raw_Evaluations`. Record the prompt verbatim, set `Run Number` to `1`, and mark whether your brand appears. Close the session. Open another fresh private session and repeat the identical prompt for runs `2` and `3`. Do the same in Perplexity. Continue until all 30 prompts have six rows each.

Do not run three prompts in one conversation. Earlier questions can shape later answers, including what the assistant assumes about your company. Fresh sessions will not make the engines deterministic, but they remove one avoidable source of contamination. As this [explanation of LLM answer variation](https://medium.com/@macplanet2012/why-chatgpt-gives-you-a-different-answer-every-time-its-not-randomness-00d86dbcfe13) describes, identical queries need not produce identical responses.

Read the three runs as a working classification, not a theory about the model’s internals:

- **3 of 3 mentions:** Stable in this small test.
- **1 or 2 of 3 mentions:** Intermittent. Check what changed between answers.
- **0 of 3 mentions:** Absent from this test. Do not claim you have proved the site was never considered.

Keep the engines separate. A [cross-engine citation study](https://www.leapd.ai/blog/ai-visibility/how-chatgpt-google-ai-overviews-and-perplexity-source-information-in-2026) found limited overlap in the domains ChatGPT and Perplexity cite. More importantly for your sheet, an average across the two would hide an obvious action: a prompt might work in one engine and fail in the other.

**Expected result:** Rows `2:181` contain 180 evaluations: 30 prompts × 2 engines × 3 runs.

**Mistake to avoid:** Saving one favorable answer as a screenshot and calling it a baseline. If the next two runs omit you, that screenshot measured a moment, not a pattern.

![Diagram showing why ChatGPT and Perplexity citation results should be tracked separately.](https://pub-87da24ecbbfc4c3bad6875f3aa013712.r2.dev/generated-images/85b82b88-f9c2-4dfc-ba5d-2978345d874e.png)

## Step 4: Capture the pages behind the answer

For every run, inspect any visible footnotes, source cards, or citation links. Open them and copy the destination URLs into `Cited URLs`, separated by semicolons. In Perplexity, use the citation chips above or within the answer. In ChatGPT, expand the available sources for the response. If an answer provides no cited URL, leave the cell blank. **Do not turn an uncited statement into a source.**

Capture exact pages, not just domains. `g2.com` tells you little; the comparison page an engine linked tells you what a buyer might read and what information that page contains. Note whether the cited page is your own, a competitor’s, or a third party’s. A [practitioner citation analysis](https://www.reddit.com/r/aeo/comments/1x7lgmu/chatgpt_gemini_and_perplexity_cited_1431/) is one reason to look beyond vendor homepages, but your own URL list is what determines the work here.

Say a warehouse management prompt names three rivals and cites a comparison page, a forum discussion, and a trade article. That is a different problem from an answer that cites three rival pricing pages. Do not prescribe a new homepage section before checking which pages supplied the answer.

**Expected result:** A URL trail for each answer that offered citations, including the specific third-party pages appearing on prompts where your brand was absent.

**Mistake to avoid:** Copying a domain label instead of the linked page, or filling in a plausible source when the engine supplied none. Both make the later diagnosis look firmer than it is.

## Step 5: Pivot the runs and count the cited pages

Create a tab named `Gap_Map`. First, add `Mention_Flag` in `Raw_Evaluations!J1`. Paste this into `J2` and fill it down through `J181`:

```excel
=IF(D2,1,0)
```

In Google Sheets, select the range `Raw_Evaluations!A1:J181` and choose `Insert > Pivot table`. Put the pivot on `Gap_Map`. Set `Prompt` as Rows, `Engine` as Columns, and `Mention_Flag` as Values, summarized by `AVERAGE`. Format the values as percentages. Because each prompt has three runs per engine, the cells should read `0%`, `33%`, `67%`, or `100%`.

Next, create a tab named `Cited_Pages` with headers `URL`, `Prompt`, `Engine`, `Brand Mentioned`, and `Cited Domain` in columns A through E. For every URL in `Raw_Evaluations!G2:G181`, create **one row per URL** here. Copy the prompt, engine, and checkbox result from its evaluation row. If one answer cited four URLs, it needs four rows. Paste this formula into `E2` and fill it down:

```excel
=IFERROR(REGEXEXTRACT(A2,"^(?:https?://)?(?:www\.)?([^/?#]+)"),"")
```

That extracts the host from each URL. It does not magically split a semicolon-separated cell: the one-URL-per-row work is why `Cited_Pages` exists. Build a second pivot from this tab with `Cited Domain` as Rows and a count of `URL` as Values. Filter `Brand Mentioned` to `FALSE`, then sort the count descending. Keep the underlying URLs; a domain count alone cannot tell you which page to inspect.

**Expected result:** One view shows mention rates by prompt and engine. The other shows which cited domains recur when your brand is missing. A `0%` prompt deserves inspection; a `33%` or `67%` prompt gives you a before-and-after test candidate.

**Mistake to avoid:** Extracting only the first domain from each semicolon-separated `Cited URLs` cell and calling the result a citation count. That quietly discards every other source in the answer.

## Step 6: Assign a fix to each gap

Create an `Action_Matrix` tab. Start with prompts at `0%` or intermittent visibility, then inspect their cited URLs alongside the relevant pages on your site. Give each prompt one primary diagnosis:

1. **Missing answer page:** You have no dedicated URL that addresses the buyer’s criteria. If the prompt asks for contract management tools for boutique law firms and your site offers only a broad enterprise features page, draft a page that answers the smaller team’s actual comparison. Assign the proposed URL in the matrix.
2. **Weak page structure:** You have a relevant URL, but its direct answer is buried beneath introductory copy. A [study of ChatGPT citations and page content](https://searchengineland.com/chatgpt-citations-content-study-469483) makes the top of the page worth checking first. Move the relevant pricing, limits, workflow, or feature answer into a clear, readable section near the top. Use [the AI citation gap audit](https://groas.com/post/the-ai-citation-gap-audit-how-to-find-th) to inspect the skipped URL before rewriting it.
3. **Third-party citation deficit:** The cited answers lean on forums, directories, reviews, or comparison pages where your brand is absent or poorly represented. Inspect those exact pages. Update a relevant directory profile, participate transparently in a relevant discussion, or pursue inclusion in a comparison page. Do not assume another post on your own site will replace a third-party citation.

Prioritize prompts tied to buyer intent and repeat appearances of the same cited page. If several missing-brand answers point to one comparison URL, that is a more focused task than “improve AI visibility.” An [audit of Perplexity commercial-search citations](https://www.reddit.com/r/perplexity_ai/comments/1uje390/i_ran_75_perplexity_searches_to_see_how_much_the/) also illustrates why vendor product pages are only one part of the citation picture. Your sheet tells you which part matters for your prompts.

**Expected result:** A backlog of 10 to 15 editorial or off-page tasks, each attached to a prompt, a diagnosis, and a page or platform target.

**Mistake to avoid:** Labeling every `0%` row “write a blog post.” The cited URLs may point to a buried answer on your site or a third-party page you need to address instead.

![Illustration of a webpage with its direct answers highlighted near the top.](https://pub-87da24ecbbfc4c3bad6875f3aa013712.r2.dev/generated-images/6c7bf823-a890-41f7-9ec6-c8d6f554a438.png)

## What the finished gap sheet should look like

Use the layout below as a **format example, not measured results**. Replace every percentage and source with your own logged runs before assigning work.

| Buyer prompt                                                 | ChatGPT (3 runs) | Perplexity (3 runs) | Dominant cited source         | Diagnosis                    | Immediate fix                                                                   |
| :----------------------------------------------------------- | :--------------- | :------------------ | :---------------------------- | :--------------------------- | :------------------------------------------------------------------------------ |
| _Best contract management software for legal teams under 50_ | 0%               | 33%                 | `g2.com/categories/...`       | Third-party citation deficit | Inspect the cited comparison page and update the relevant profile.              |
| _DocuSign alternatives with custom redline tracking_         | 0%               | 0%                  | Competitor comparison page    | Missing answer page          | Draft a page addressing the redlining workflow.                                 |
| _SOC 2 compliant e-signature pricing per seat_               | 0%               | 67%                 | `reddit.com/r/sysadmin/...`   | Weak page structure          | Check whether the existing page states compliance and per-seat pricing clearly. |
| _How to calculate contract turnaround time in Word_          | 100%             | 100%                | Owned `/blog/turnaround` page | Working baseline             | Keep the URL in the next test cycle.                                            |

The point is not to make the table look impressive. **Every fix should trace back to a prompt, an observed answer, and a URL you can inspect.** If you cannot follow that trail, you are back to guessing.

## Verify the fixes, then stop doing busywork

Pick your top three intermittent prompts and make the assigned changes. Once the changed pages are available to the engines, repeat the same prompts, three times per engine, in fresh sessions. Keep the wording and logging rules fixed. Compare the new mention rates _and_ cited URLs with your baseline. A move from `33%` to `100%` across three runs is encouraging; keep testing before treating it as a permanent win. If nothing moves, revisit the diagnosis rather than publishing a fourth version of the same page.

One manual pass is useful. Repeating it every week is another job. At 50 prompts, three engines, and three runs, you have 450 evaluations per cycle before you inspect a single citation. That is the same sort of mechanical work PPC operators used to dignify as “account stewardship” while mining negatives at 1 a.m.

A passive dashboard can save the logging without doing the fixing. That is the distinction I care about. [groas](https://groas.com/) takes the autonomous route: continuous search execution across paid and organic work, with a named human strategist setting direction and accountability. Use the spreadsheet to find the first gaps and test the first fixes. **The first thing to change once it works is the workflow:** stop making a person repeat the measurements and put that time into acting on what the answers show.

## Frequently Asked Questions

### What is the final output of the AI Search Terms & Gap Map exercise?

The output is an AI Search Terms & Gap Map containing 30 unbranded prompts tested in ChatGPT and Perplexity. This results in 180 total evaluations, providing a usable baseline of citation gaps.

### What kind of buyer language should be used for the audit prompts?

Prompts should be pulled from real-world sources like sales objections, CRM objection logs, or paid search queries that led to closed revenue. Specificity, such as team size or workflow, should be maintained to ensure the prompt is actionable.

### Why is it necessary to use fresh private sessions when testing the prompts in the engines?

Using fresh private sessions is essential because earlier questions can shape later answers, including what the assistant assumes about your company. This practice removes a major source of contamination during the testing phase.

### When collecting source data, why must exact pages be captured instead of just domains?

Capturing exact pages determines what a buyer might read and what specific information that page contains. For example, a comparison page is different from a rival pricing page, which dictates the required fix.

### What are the three primary diagnoses when identifying an AI citation gap?

The three diagnoses are a missing answer page, weak page structure, or a third-party citation deficit. Addressing a third-party deficit might require updating a directory profile or participating in a relevant discussion.

## Pay For Results, Not For Hours

Businesses buy the outcome, agencies resell it, and groas answers for it either way.

[See If You Qualify](https://groas.typeform.com/to/xC1bQNUT)

## Structured data

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://graph.groas.com/entity/groas","name":"groas","url":"https://groas.com/","logo":{"@type":"ImageObject","url":"https://groas.com/icon-512.png","width":512,"height":512},"sameAs":["https://www.linkedin.com/company/groas/"]},{"@type":"WebSite","@id":"https://groas.com/#website","name":"groas","url":"https://groas.com/","inLanguage":"en-US","publisher":{"@id":"https://graph.groas.com/entity/groas"}},{"@type":"WebPage","@id":"https://groas.com/post/build-a-search-terms-report-for-ai-answe#webpage","url":"https://groas.com/post/build-a-search-terms-report-for-ai-answe","name":"Build an AI Search Terms Report in One Afternoon","description":"Use a spreadsheet to test 30 buyer prompts in ChatGPT and Perplexity, log the sources they cite, and turn missing brand mentions into a fix list.","inLanguage":"en-US","isPartOf":{"@id":"https://groas.com/#website"},"about":{"@id":"https://graph.groas.com/entity/groas"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://pub-87da24ecbbfc4c3bad6875f3aa013712.r2.dev/generated-images/2190f170-60ba-418c-9293-c755c663d70e.png"},"breadcrumb":{"@id":"https://groas.com/post/build-a-search-terms-report-for-ai-answe#breadcrumb"},"dateModified":"2026-10-20T05:19:06.614Z","mainEntity":{"@id":"https://groas.com/post/build-a-search-terms-report-for-ai-answe#article"}},{"@type":"BreadcrumbList","@id":"https://groas.com/post/build-a-search-terms-report-for-ai-answe#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://groas.com/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://groas.com/blog"},{"@type":"ListItem","position":3,"name":"Build an AI Search Terms Report in One Afternoon","item":"https://groas.com/post/build-a-search-terms-report-for-ai-answe"}]},{"@type":"BlogPosting","@id":"https://groas.com/post/build-a-search-terms-report-for-ai-answe#article","url":"https://groas.com/post/build-a-search-terms-report-for-ai-answe","mainEntityOfPage":{"@id":"https://groas.com/post/build-a-search-terms-report-for-ai-answe#webpage"},"isPartOf":{"@id":"https://groas.com/blog#blog"},"headline":"Build an AI Search Terms Report in One Afternoon","description":"Use a spreadsheet to test 30 buyer prompts in ChatGPT and Perplexity, log the sources they cite, and turn missing brand mentions into a fix list.","datePublished":"2026-10-20T05:19:06.542Z","dateModified":"2026-10-20T05:19:06.614Z","image":{"@type":"ImageObject","url":"https://pub-87da24ecbbfc4c3bad6875f3aa013712.r2.dev/generated-images/2190f170-60ba-418c-9293-c755c663d70e.png"},"author":{"@id":"https://groas.com/author/alexander-perelman#person"},"publisher":{"@id":"https://graph.groas.com/entity/groas"},"keywords":"prompt, cited, brand, answer, page, prompts, pages, search","wordCount":2186,"inLanguage":"en-US"},{"@type":"Person","@id":"https://groas.com/author/alexander-perelman#person","name":"Alexander Perelman","jobTitle":"Head Of Product @ groas","description":"My background includes Goldman Sachs and Stanford Computer Science.","image":"https://groas.com/media/blog/4f17cac3a81acc224cc1b2cfab8f94bbc295a3089d13e8421125771ef8d4064f.jpg","worksFor":{"@id":"https://graph.groas.com/entity/groas"},"sameAs":["https://www.linkedin.com/in/alexander-433793253/"]},{"@type":"FAQPage","@id":"https://groas.com/post/build-a-search-terms-report-for-ai-answe#faq","mainEntity":[{"@type":"Question","name":"What is the final output of the AI Search Terms & Gap Map exercise?","acceptedAnswer":{"@type":"Answer","text":"The output is an AI Search Terms & Gap Map containing 30 unbranded prompts tested in ChatGPT and Perplexity. This results in 180 total evaluations, providing a usable baseline of citation gaps."}},{"@type":"Question","name":"What kind of buyer language should be used for the audit prompts?","acceptedAnswer":{"@type":"Answer","text":"Prompts should be pulled from real-world sources like sales objections, CRM objection logs, or paid search queries that led to closed revenue. Specificity, such as team size or workflow, should be maintained to ensure the prompt is actionable."}},{"@type":"Question","name":"Why is it necessary to use fresh private sessions when testing the prompts in the engines?","acceptedAnswer":{"@type":"Answer","text":"Using fresh private sessions is essential because earlier questions can shape later answers, including what the assistant assumes about your company. This practice removes a major source of contamination during the testing phase."}},{"@type":"Question","name":"When collecting source data, why must exact pages be captured instead of just domains?","acceptedAnswer":{"@type":"Answer","text":"Capturing exact pages determines what a buyer might read and what specific information that page contains. For example, a comparison page is different from a rival pricing page, which dictates the required fix."}},{"@type":"Question","name":"What are the three primary diagnoses when identifying an AI citation gap?","acceptedAnswer":{"@type":"Answer","text":"The three diagnoses are a missing answer page, weak page structure, or a third-party citation deficit. Addressing a third-party deficit might require updating a directory profile or participating in a relevant discussion."}}]}]}
```
