Eleven people, sixty software clients
Nine Peaks Media sells one channel to software companies. The head office and the SEO strategists sit in Toronto, the rest of the eleven-person team is remote, and it is split by function rather than by generalist — SEO managers, link builders, outreach specialists, a content writer. More than sixty SaaS, tech, IT and software companies across sixteen countries have been through the books since 2009, on retainers rather than projects.
Eleven people holding that many accounts is a good business only while the work per client stays flat. An hour added to an account in March is added every month after it, and there is no bench to absorb it. Any new service had to clear that: AI search either arrived inside what the agency already delivered, at the price the client already paid, or it stayed what it had been — a subject Mike Khorev could talk about well and nobody was buying.

Screenshotting ChatGPT before every client call
Until early 2026 the AI half of the job ran on screenshots. Khorev typed the queries into ChatGPT and Perplexity himself and captured what came back, with Keyword.com alongside it for the Google side and whatever AI rank tracking it could give him. Between the two there was no day-over-day record of which prompts cited a client, which URLs the engines had pulled the answer from, or what to do about either. Every client call started with reconstructing that picture by hand, and a picture reconstructed by hand cannot go into a proposal. The AI trackers he tried instead resembled each other closely enough to be interchangeable, and read as though nobody who does this work had been in the room while they were built.
What the first proper measurement showed was a sourcing problem rather than a ranking one. The engines were not short of material on these categories; they were reading it somewhere other than the client’s own domain, and the somewhere was knowable — directories, listicles, Reddit threads, competitor blog posts, and competitor product and solution pages being quoted as sources. On one client’s prompt set that list ran to between five and seven hundred URLs.

If an answer is assembled out of a finite set of pages, the work is outreach and content against a target list, not a report at the end of the month. That is where the whole engagement had to move.
From the open trial to tab one of every engagement
Khorev runs the AI side himself: he picks the prompts per client, approves every target list before outreach starts, and writes the titles and topical maps.
01 · Early 2026
The open trial, run at full capacity
He found Amadora while hunting for one tool that covered the whole workflow — planning, prompt tracking, citations, AI Overviews, action plans, topical research, competitors — where everything he had tested covered one or two. He ran the trial across live client work, then paid for it on the LLM coverage.
02 · Every engagement
One project per client, with the competitors inside it
Amadora became the first tab of every client engagement. One project holds the client, its competitors and its targets together, so share of voice and citation gaps are read side by side. Each client got a dashboard they open themselves, which is what moved AI optimisation inside the retainer instead of beside it.
03 · March 2026
The comparison a client asked for, and the export behind it
A debt collection and accounts receivable management software company came to Khorev wanting to overtake a larger competitor that shares its parent company and sells into the same receivables market. Their marketing lead could see both brands, and the competitor was ahead on share of voice, prompts citing them, and pages the engines had read. Khorev pulled the side-by-side visibility scores, then exported the roughly 700 citation URLs Amadora had captured across ChatGPT, Perplexity, Gemini and AI Overviews.
04 · March 2026
Three target lists, sorted by what kind of page it was
Sorted by page type, the competitor was winning on topical blog posts and on its own product and solution pages. Three lists came out: directories it was listed on and the client was not, listicles where a client URL could displace theirs, and cited Reddit threads the client was absent from.
05 · Ongoing
The list goes into a bulk outreach tool
The URLs run as placement campaigns — a motion the agency could not build before, because nothing told it which sources the engines trusted. Reddit is worked separately, as linked mentions in threads already being quoted; for an online exam and proctoring platform client, the 74 Reddit citations became their own workstream. Both are billed.
06 · May 2026
Checked against the dashboard the client already had
About two months in, the client opened the AEO dashboard in their own marketing stack on a check-in call and read back that they were ahead of the competitor, citations included. A fortnight later the visibility score across tracked prompts had matched or passed them.
Three client programmes and a new line on the book
| Metric | Before | After | Change |
|---|---|---|---|
| AI visibility · frontline employee communications platform | |||
| Average position in AI answers | — | 2.5 | New |
| Prompt coverage across engines | — | 25% | New |
| AI visibility · debt collection and AR management software | |||
| Visibility score | Behind | Level or ahead | Gap closed |
| Work shipped | |||
| Citation URLs exported as targets | — | ~700 | New |
| Reddit citations captured | — | 74 | +74 |
| Reddit threads cited on tracked prompts | — | 16 | +16 |
| Agency economics | |||
| New billable workstreams | 0 | 2 | +2 |
| New service line revenue | Separate | Included | Standard |
All three clients ran a full SEO retainer through the same window, so none of the movement belongs to the AI workstream alone. The debt collection client was publishing blog posts throughout, and those posts began appearing in the citations as they went live. At the frontline communications platform, mentions opened at about four across all tracked prompts, and the marketing lead later told Khorev that prospects were saying they had heard about them on ChatGPT and come across them in Perplexity.

For each client I pull the 500–700 URLs LLMs are citing for tracked prompts, hand them to a bulk outreach tool, and run targeted placement campaigns. Reddit linked-mentions became its own billable workstream the same way. AI optimisation is no longer a separate line item I have to sell — it's bundled into the retainer.
Mike KhorevFounder and Managing Director, Nine Peaks MediaCommon questions
What is actually in the citation export?
Every URL an engine pulled from while answering a tracked prompt, per prompt and per engine, across ChatGPT, Perplexity, Gemini and AI Overviews. On one Nine Peaks client that was roughly 700 rows, and sorted by page type it separates directories, listicles, threads and competitor pages.
How does an eleven-person agency bill for AI optimisation without adding a head?
Nine Peaks stopped selling it separately. AI search sits inside the existing retainer and the reporting each client already receives, and the work it generates — bulk outreach against cited URLs, Reddit linked mentions, directory submissions — is billed as delivery.
Why Reddit specifically?
Because the engines quote it. On one client's prompt set Amadora captured 74 Reddit URLs being used as sources; on another, 16 threads. A thread already being cited is a placement opportunity with the retrieval question answered in advance.
Does Nine Peaks still run a traditional rank tracker?
Yes. Keyword.com stays as the backup for Google rank tracking. What moved to Amadora is the AI side and the work coming out of it — prompt selection, citation exports, competitor gaps, AI Overview tracking, action plans.
How long did the competitor gap take to close?
About two months. The debt collection client opened in March 2026 behind a larger competitor sharing its parent company, and by late May the visibility score across tracked prompts had matched or passed them.