The Minimal GEO Stack: What You Actually Need to Win AI Citations
You need fewer tools than the listicles claim. The four jobs a GEO stack must do, what fills each slot, and what you can safely skip until later.
Tool roundups love a 23-item stack. In practice, winning AI citations requires exactly four jobs to be done well — and every tool you add beyond those jobs is workflow drag. Here's the minimal stack, job by job.
Job 1 — See the answers (citation intelligence)
You can't win citations you can't see. The first slot is a tracker that, for the prompts your buyers ask, tells you which sources the engines cite and whether you're among them — your citation share, and its movement over time.
This is the newest category in the stack and the one changing fastest. We use Geogen (disclosure: it's what Pitchref integrates for citation extraction) to map which entities and pages the engines actually cite for a tracked domain. Whatever you pick, the acceptance test is the same: can it name the exact pages granting citations in your category? If it only gives you a sentiment score, it's a dashboard, not intelligence.
Job 2 — Turn cited pages into reachable people (prospecting)
The gap between "this listicle gets cited" and "I can email its editor" is contact extraction. At small scale you can do this by hand; past a few dozen targets you want bulk extraction that pulls addresses from target pages without per-lookup fees eating your budget. A good extractor finds a usable contact on the large majority of blog-style pages; the rest need manual work — budget your time for that residue rather than pretending it doesn't exist.
Job 3 — Run the conversation (outreach engine)
The engine sends pitches from your real inboxes, spaces follow-ups (+3d / +7d / +14d is the classic cadence), cancels the sequence the instant a human replies, and keeps every thread inspectable. Requirements that actually matter:
- Multiple sending accounts with per-inbox daily caps (deliverability lives here)
- Auto-cancel-on-reply — non-negotiable
- Reply threading that keeps context, so negotiation doesn't reset
- Your own domains and mailboxes — reputation you rent is reputation you lose
What doesn't matter: AI subject line scorers, send-time optimizers, and most other add-ons sold on top of sequences.
Job 4 — Keep the score (source of truth)
Every prospect, ask, reply, and won inclusion in one place — so targeting improves each campaign and nobody re-pitches a site that said no in March. A spreadsheet works at the start. What breaks it is multi-inbox scale and the reply threads; when it breaks, you want the log born from the same system that ran the outreach, not reconstructed after the fact.
The stack, assembled
| Job | Minimal pick | Upgrade when |
|---|---|---|
| Citation intelligence | Geogen (or equivalent that names cited pages) | — |
| Prospecting | Bulk contact extraction on your target list | Volume makes per-lookup fees hurt |
| Outreach engine | Multi-inbox sequencer w/ auto-cancel | Reply volume needs real threading |
| Source of truth | Spreadsheet → campaign log | More than one inbox or operator |
Notice what's absent: no separate personalization AI, no intent-data platform, no all-in-one suite. Add those when a specific bottleneck demands them, not before.
The zero-glue version
Full disclosure of the obvious: Pitchref exists because jobs 2–4 (and the Geogen hand-off in job 1) are one workflow, and stitching them from separate tools makes you the integration. The agent runs discovery → prospecting → pitching → follow-ups → logging as a single loop on your own Cloudflare account — free for citation campaigns, with the full playbook built into how it works. If you'd rather assemble your own stack, everything above still applies — the jobs don't change, only who does the glue work.