A Promptive customer opened the dashboard on a Tuesday, looked at their top category prompt, and sat with it for a long moment. ChatGPT was recommending their biggest competitor first, every time. Gemini had them at position five. They were nowhere in the Perplexity answer. Twenty-one days later, ChatGPT had them at position one. This is exactly what they did, and what we'd do differently if we ran it again.
We've now watched a version of this playbook complete three full cycles, three different companies, three different categories, same four-act structure. What follows is a reverse-engineering of what moved the needle and what didn't, with specific numbers, honest caveats, and one thing we got badly wrong in the first attempt.
Why AI engines keep recommending the same brands
Before the playbook, the mechanism. AI engines don't flip a coin each time a recommendation prompt is answered. They draw from a weighted signal set: training data (what they've absorbed about each brand's authority in the category), inference-time citations (what they can retrieve right now from trusted sources), and the framing of the prompt itself. When one brand consistently occupies positions 1-2 across those signals, the model develops something close to an anchored prior. Displacing it requires moving more than one signal at once.
That's the key insight behind this playbook. Teams that run one intervention, usually a page rewrite, and then wait often see no movement, because they moved one input in a multi-input system. The playbook below runs three targeted interventions in parallel, each aimed at a different part of the signal stack.
Act 1, Diagnose the specific prompt
Most teams try to move "AI visibility" in the abstract. That's too coarse. You need a single prompt with three properties: high commercial intent (it maps to an active buying decision), stable phrasing (not a one-off long-tail query), and at least two or three competitors currently outranking you. That combination tells you there's a contested signal worth moving.
For our customer, a mid-market analytics platform, the prompt was "best AI-native analytics tool for product teams." Not "top analytics tools" (too broad, too many incumbents) and not "AI analytics software for B2B SaaS startups" (too narrow). It took forty minutes of Promptive dashboard work to land on it: looking at competitor positions, citation overlap, and prompt volume to find where the fight was winnable.
You can't optimize for the machine layer in the abstract. You can optimize for one answer at a time, and compound from there.
Act 2, Map the citation graph
Once you have your prompt, pull the citation data. Promptive shows you exactly which URLs the engines are citing across every sampled answer, broken down by engine, frequency, and whether it's a direct brand citation or a third-party mention. You're looking for the three to five sources that appear in more than half the answers. Those are the citations doing the real work.
For our analytics customer, across twelve sampled answers:
- A Reddit thread in r/dataisbeautiful with 1,400 upvotes was cited in 8 of 12 ChatGPT answers. Our customer had zero presence in it.
- A G2 "Best Of" listicle from late 2024 appeared in 7 of 12 answers across ChatGPT and Gemini. Our customer was not on the list.
- The top competitor's own comparison page was cited in 5 of 12 answers and was the only first-party source regularly quoted. Our customer's comparison page had never been cited once.
This citation gap analysis is the strategy. You're not guessing at what might help, you're identifying exactly what the engine trusts and figuring out how to get your brand into those sources.
Act 3, Three targeted interventions in fourteen days
We ran three, not ten. Running too many interventions simultaneously makes it impossible to attribute which one moved the metric. Three is the maximum you can run cleanly in parallel and still understand what worked.
Intervention 1: Rewrite the comparison page
The existing comparison page was a feature grid, two columns, checkmarks, no argument. Cold, undifferentiated, and written in a way no model would quote because there was no quotable sentence in it. We rewrote it as a structured argument: a clean one-sentence category definition in the opening, explicit product positioning, an honest acknowledgment of two genuine competitor strengths, then three specific use cases where the customer wins, with concrete reasons.
The acknowledgment of competitor strengths is not weakness. It's the move that makes the page credible enough for a model to cite. A page claiming superiority in every dimension reads as marketing copy. A page that says "their data visualization is genuinely excellent, but if your team lives in SQL and needs real-time event pipelines, here's why our architecture wins" gives a model something it can use to answer a nuanced evaluation question. Claude started quoting the new page within six days of indexing.
Intervention 2: Seed one genuine Reddit thread
The thread was not promotional. An engineer from the company asked a real technical question in r/dataengineering about query latency at scale across three tools they were evaluating, and shared their own provisional findings, including areas where a competitor performed better. The thread reached 380 upvotes by day seven. By day twelve, ChatGPT was citing it.
In our first attempt with a different client, we'd built eight threads across four subreddits, two of which were flagged and removed as promotional. Moderation flags don't just kill the thread, they signal to engine crawlers that the source is low-trust. One credible thread from a disclosed employee beats eight manufactured ones without exception. The key variables: real question or genuine insight, disclosed relationship, willingness to acknowledge trade-offs, and enough technical specificity that practitioners engage rather than downvote.
Intervention 3: Placement in one credible third-party listicle
We identified four newsletters in the analytics and data engineering space that had been cited by at least one engine in the previous 90 days. That "cited before" criterion is the filter that matters, it tells you the engine trusts the domain. We pitched all four with different angles tailored to each publication. One responded, ran a short "tools we're watching" roundup, and both Gemini and Perplexity absorbed it within ten days of publication.
Act 4, The 21-day read
| Metric | Day 0 | Day 7 | Day 14 | Day 21 |
|---|---|---|---|---|
| ChatGPT rank | 06 | 04 | 02 | 01 |
| Claude rank | 04 | 03 | 02 | 02 |
| Gemini rank | 05 | 04 | 03 | 03 |
| Perplexity rank | 08 | 07 | 06 | 04 |
| 4-engine sentiment avg | +0.08 | +0.21 | +0.34 | +0.46 |
| Citations per week | 11 | 29 | 41 | 54 |
Perplexity moved slowest, and that was expected. It weights citation recency and domain diversity differently from ChatGPT. The Reddit thread and newsletter placement moved ChatGPT fast because both are sources it cites heavily in this category. Perplexity requires deeper citation diversity across its specific trust domains, a longer game.
The sentiment improvement from +0.08 to +0.46 across all four engines surprised us most. The rewritten comparison page changed the framing the model used when describing the product, from "viable option for budget-conscious teams" to "strong choice for engineering-led data teams." That language shift appeared in ChatGPT first, then Claude, then Gemini. Perplexity's sentiment moved but lagged by about eight days.
Three things to take from this
First: the citation graph is always the honest answer. Before you rewrite anything, pull it. The gap between where you are and where you want to be is almost always a sourcing gap, not a content quality gap.
Second: one real Reddit thread is worth more than any number of engineered ones. The economics of credibility are not linear, and the downside of getting flagged is active harm to your signal, not just wasted effort.
Third: Perplexity runs on its own cycle. If Perplexity matters for your category, plan a separate intervention sequence weighted toward citation diversity on the domains it trusts. Don't judge the playbook's success by Perplexity's pace, it will lag the others by one to two weeks regardless.
Pick your highest-value prompt, pull the citation graph with Promptive, run three interventions in parallel, and measure weekly for 21 days. That's the whole playbook.
Start a free Promptive trial, 7 days of full data, no card required, five minutes to first insight.