← All sessionsHomeSearch
AI Catalyst C3·Core Session - Week 12·3:08:52

Session 23: Automating AEO/GEO — Audits, the File Layer, and Evidence-Led AI Search

Harshith Vaddiparthy Trainer — Outskill; works live on his own production site (harshith.com) throughout: SEO audit, GEO audit, fixes pushed to GitHub mid-session, and a paywalled audit tool built and shipped in the final hour · Shivani Cohort manager — session logistics, CSAT poll; confirmed the Thursday office-hours recording was uploaded to week 11

Session map

THE FRAMETHE MECHANICSTHE FRONTIERFrom SEO to GEOwhen discovery becomes the answerThe GEO file layerthe machine-readable front doorThe audit → fix loopskills as auditors, agents as remediati…The 3-words problemclient-rendered sites are invisible to…Become the sourceauthority as the GEO bottleneckFrom practice to productharnesses, daily agents, and the $8 rep…
The frameThe mechanicsThe frontier
click a node — its card pops up (drag it anywhere, × to close)
Concept

The map reads left to right — the frame flow into the mechanics, then into the frontier. Click any node to open that idea here; every timestamp jumps into the recording.

The short version

  1. The frame: AEO (answer engine optimization) and GEO (generative engine optimization) 'both just mean the same thing' — the shift is that 'discovery now includes being represented correctly inside an answer': what Google discovers becomes what ChatGPT answers.
  2. SEO is the FOUNDATION, not the casualty: LLMs are 'honestly... very good RAG' over everything published about you, so the point system (quality content, backlinks, domain authority, H1/H2 formats, keywords) still feeds the machine — 'zero-sum syndrome' is the bias to resist.
  3. The GEO file layer is small and concrete: robots.txt (allow GPTBot/ClaudeBot/PerplexityBot), llms.txt (short first-party identity), llms-full.txt (extended catalog), humans.txt, .well-known/security.txt (RFC 9116), sitemap.xml — with the honest caveat baked into the skill itself: 'it does not guarantee AI citation, ranking, or crawling. It does not replace public evidence.'
  4. The working loop is AUDIT → FIX, agentically: skills.sh SEO Auditor found 148 unindexed pages and an apex-vs-www duplicate-origin defect on his own site live; the fix prompt is literally 'can you completely go ahead and work on this' — pushed to production + GitHub during the session.
  5. The killer diagnostic for vibe-coded sites: 'the homepage returns only 3 words to crawlers' — client-rendered sites look perfect to humans and nearly empty to crawlers and LLMs; the site can be 'perfect visually while being weak for SEO and GEO.'
  6. Authority is the bottleneck no file fixes: his GEO composite scored 64/100 — 'strong access, weakest at authority' — and the remedies are earned (Forbes-class backlinks, Wikipedia notability, aligned public bios, independent citations, 3-6 months of consistency), or bought (authority blogs/newsletters via Flippa-class markets).

The concepts

01

From SEO to GEO: when discovery becomes the answer

The same query — 'how to set up an OpenClaw instance' — asked twice: once into Google (ten blue links, your article competing on points) and once into ChatGPT (one synthesized answer, your site either inside it or nowhere).

SEO first, on the whiteboard: Google ranks by an accumulating point system — quality content answering real questions, breadth, backlinks ('think of these as points'), domain authority, content authority, on-page formats (H1/H2 tags, image metadata, keywords), verified live with Google Trends (the Buzz-vs-Slack keyword comparison, OpenClaw's launch spike) and named up-market tools (SEMrush, Ahrefs 'the OG').

Then the shift: LLMs train on ALL available content about you — website AND social platforms (Reddit is explicitly farmed: 'these LLMs are constantly training on top of Reddit'; LinkedIn works standalone) — and at answer time they behave as 'very good RAG' over that corpus, with live retrieval sending real traffic through cited links (demoed: ChatGPT product queries surfacing clickable sources). AEO vs GEO in one line each: AEO 'earns a direct answer' (structure content so real questions are answered clearly); GEO 'makes first-party knowledge easy for generative systems to retrieve, cite, and represent.' And the anti-panic clause: SEO persists as GEO's substrate — 'zero-sum syndrome' (new thing kills old thing) is the bias, refuted by the mobile-apps-vs-websites precedent.

Worked example · from the session

His own name typed into Google's AI mode: three years of deliberate feeding renders a full, correct profile pulling from LinkedIn, GitHub, and the Forbes Technology Council feature — 'a lot of training that I've just been giving to the AI in the last 3 years.'

Why it matters

Everything else in the session (files, audits, authority) is a lever on this one model: the LLM's picture of you is built from what it could crawl and trust.

People get this wrong

GEO replaces SEO — optimize for chatbots and forget Google.

GEO consumes SEO's output. No crawlable, structured, authoritative content = nothing for the answer engine to retrieve or cite. Do both; they share 90% of the work.

Whatever Google discovers, that becomes the answer the next time someone chats and asks on ChatGPT.
Honestly, all that these LLMs are doing is very good RAG based on the topic that's already been published.
For your projects

This is the foundational frame for the OI-074 topic page — SEO-feeds-GEO, with the two-query test as the practitioner's entry point.

Go deeper

In one line: AEO ≈ GEO: optimizing to be retrieved, cited, and correctly represented inside AI-generated answers. Mechanism: LLMs train + RAG over all public content about you (site + socials). SEO remains the foundation (points system feeding the corpus); the new test is 'can an answer engine find, understand, and safely reuse your best knowledge.'

'Whatever Google discovers, that becomes the answer the next time someone asks on ChatGPT' ()

The point system enumerated: content quality/breadth, backlinks, domain authority, content authority, H1/H2 formats, image metadata, keywords (0:15:45-0:22:08)

Reddit/LinkedIn as first-class GEO surfaces; a site is optional but preferred (links get scraped first) ()

LLM ranking internals are opaque by design — 'if so, people might just game it' ()

AI-content penalty claim: Claude embeds 'invisible watermarks' and engines may downrank pure AI output — HIS CLAIM, unverified; the safe reading is: original, human-reviewed content wins ()

Conversion datum from the room, endorsed: only 20-30% of LLM referral traffic converts today; Google still dominant — 'a growing market, though' ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why does SEO work still pay off in a GEO world?

The LLM corpus IS the crawled web — the same signals that rank you (quality, links, structure) determine what the model learned about you and what its retrieval cites.

02

Become the source: authority as the GEO bottleneck

His GEO composite came back 64/100 — 'strong access, weakest at authority.' Every file was right; the machine still didn't trust him enough.

The target state: 'you have to become an authoritative source that these answer engines can actually trust' — once engines learn you produce reliable knowledge, 'they're always going to keep coming back and training from your data.' The earned path: original knowledge + evidence (link claims to research/authority pages) + clarity + HUMAN REVIEW ('keep it human in the loop... only then publish'); high-authority placements (his Forbes Technology Council backlink demonstrably feeds Google's AI mode); aligned public bios across platforms (the audit's own recommendation: 'align editable public bios'); independent citations earned 'authentically'; Wikipedia notability explicitly flagged by the audit as long-term authority work ('not a technical GEO fix'). Timeline honesty: '3 to 6 months is what you have to give for a particular topic.'

The accelerated path, stated plainly: buy authority — acquire blogs/newsletters that already have it (Flippa-class marketplaces) or sponsor them, redirecting their standing trust at your properties.

Worked example · from the session

The Forbes chain traced live: Forbes.com → his council profile → his LinkedIn/Twitter — 'now it clearly knows' — one high-authority backlink wiring his whole entity graph together.

Why it matters

Access problems are fixed in an afternoon of file edits; authority is the slow variable that actually orders answers — and therefore the honest budget line.

People get this wrong

GEO is a technical checklist — files, schema, done.

The files open the door; authority decides whether you're quoted. The scarce input is corroborated, evidenced content and third-party trust, on a months-long clock.

You have to become an authoritative source that these answer engines can actually trust.
Directional GEO composite is 64 out of 100... strong access, weakest at authority.
For your projects

The access/authority split is the organizing axis for the OI-074 topic page — most guidance conflates them.

Go deeper

In one line: GEO authority: original + evidenced + human-reviewed content, high-authority placements/backlinks, cross-platform bio alignment, independent citations, (long-term) Wikipedia-class notability; 3-6 months per topic; purchasable via authority-site acquisition/sponsorship. Diagnosis: audit composites splitting 'access' from 'authority.'

'Once OpenAI or Claude knows you're producing really good content, they keep coming back' ()

Evidence discipline: claims need sources; the audit flagged 'claims lack field-level provenance' on his own site ()

The audit's verification ethic: 'FAQ schema should only be added where real, visible FAQs exist... separating confirmed defects from heuristic suggestions' ()

Trust pillar named in his framework: 'governance is what keeps claims true, as engines, pages, and facts change' ()

Authority purchase routes: Flippa-class site/newsletter acquisition, sponsorships ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why did his technically-excellent site score 64?

Composites weight authority and extraction, not just access — crawlable-but-thin/uncorroborated content caps the score. 'I've given complete access to AI crawlers, but I don't have the really good content which the AI can even crawl from.'

03

The GEO file layer: the machine-readable front door

'The small public machine-readable layer that tells crawlers where they may go, tells AI systems what the site contains, and tells humans how to report a security issue.'

The inventory, as installed on his site during the session: ROBOTS.TXT — access policy, wildcard-allowing the AI crawlers by name (GPTBot, ClaudeBot, PerplexityBot; 'all of these AI tools have their own bots... our codebase has to be open for them'); LLMS.TXT — 'a short first-party identity'; LLMS-FULL.TXT — 'extended catalog for agents that need richer route and service details'; HUMANS.TXT — stewardship and site context; .WELL-KNOWN/SECURITY.TXT — RFC 9116 (new to him on camera: 'this I actually haven't heard of'); SITEMAP.XML; plus the trailing set (ai.txt, ads.txt, manifest). The audit found security.txt entirely missing from his production site and added it.

Two caveats keep it honest, quoted from the skill's own output: the layer 'does not guarantee AI citation, ranking, or crawling' and 'does not replace public evidence' — files are eligibility, not merit. And the source of truth lives in the repository: the files ship with the codebase, which is why the skills want to run INSIDE the repo ('these skills would have complete context on all of your folders').

Worked example · from the session

The mini-site the GEO agent built to display the file layer's status — each file, its role, its state — generated on request as a human-readable dashboard over the machine layer.

Why it matters

This is the afternoon-sized deliverable of the whole discipline: a fixed, enumerable checklist any site either has or lacks.

People get this wrong

llms.txt is the GEO silver bullet.

It's one file in a seven-file eligibility layer, and the layer itself guarantees nothing — the skill's own disclaimer says so. Content and authority still decide citation.

It does not guarantee AI citation, ranking, or crawling. It does not replace public evidence.
For your projects

This checklist goes verbatim into your site-health-audit skill and the OI-074 topic page — it's the concrete, finite artifact the topic needs.

Go deeper

In one line: GEO file layer: robots.txt (AI-bot allowances by name) · llms.txt (short identity) · llms-full.txt (extended catalog) · humans.txt · .well-known/security.txt (RFC 9116) · sitemap.xml · (ai.txt, ads.txt). Repo-resident; eligibility not merit — 'does not guarantee citation... does not replace public evidence.'

AI crawlers are named agents in robots.txt — blocking them is opting out of the answer layer ()

llms.txt vs llms-full.txt: identity summary vs agent-grade catalog — a two-tier disclosure ()

security.txt as a trust signal engines and researchers both read; RFC-numbered, frequently absent ()

Files travel with the codebase — audits and fixes belong inside the repo, not on the rendered site ()

His stack-level claim: being on Next.js/Vercel eases the whole layer (framework-rendered routes, skills.sh adjacency) ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

A site adds a perfect llms.txt but blocks GPTBot in robots.txt. Result?

Invisible. robots.txt is the gate; the identity file is only read by crawlers allowed through it. Order of operations: access first, description second.

04

The audit → fix loop: skills as auditors, agents as remediation

He runs one skill against his own site and discovers 148 unindexed pages and a duplicate-origin defect he never knew existed — then types, in effect, 'fix it,' and pushes to production before the break.

The loop: (1) install the audit skill INTO the site's repo (skills.sh SEO Auditor, ~200k installs; later a community GEO-first skill shared by cohort member Rajesh — 'the architecture is so good... GEO audit, GEO citability'); (2) run the audit — his live findings: apex-vs-www both returning 200 (split identity; 'consolidate the apex domain to www', canonical mismatch), 148 pages crawled-not-indexed, schema misalignment, prioritized P0-P2; (3) visualize (the skill built a sitemap graph and a scorecard site on request); (4) FIX by delegation — 'I just copied all of these, and I just said, just go ahead and fix... it already has complete context about your codebase'; (5) verify and push (Search Console reopened by the browser agent; GitHub merge with the SEO and GEO agents explicitly told not to clash — the GEO agent waits for the SEO agent's merge).

The craft details that make it work: model-tier discipline (audits on the max tier — 'audits, always better to proceed with the best version... medium is just for execution'); skills are per-folder unless explicitly installed globally; the report separates CONFIRMED DEFECTS from HEURISTIC SUGGESTIONS ('FAQ schema only where real FAQs exist'); and community verification — Rajesh's independent audit of the same site cross-confirmed the www defect before he shipped the fix.

Worked example · from the session

The apex/www discovery arc: the skill flags it, he doesn't believe it ('this I actually didn't know'), Rajesh's independent report confirms it, and the redirect ships — a defect invisible for the site's whole life, dead in an hour.

Why it matters

This is 'automating AEO/GEO' made literal: the audit is a skill, the fix is an agent, the verification is a second opinion — the human's job shrinks to judgment calls and the merge button.

People get this wrong

SEO audits are a report you buy, then a backlog you schedule.

With skill+agent+repo, audit and remediation are one loop measured in hours — the backlog survives only where judgment (or authority-building) is genuinely required.

The GEO audit → fix loop Site the client property Audit skill findings, scored Agent fixes remediation runs Re-audit proof of change the loop is the product: the $8 report engine Skills as auditors, agents as remediation — findability becomes a recurring service, not a one-off
Skills audit, agents fix, the loop re-audits: the $8 report engine
Get the audit first. And then ask it to fix it. That's it.
For your projects

The harvested attachments include the audit guides + prompts + BOTH harness variants (Ego Browser and Vercel Agent Browser) — the executable form of this concept.

Go deeper

In one line: Loop: install audit skill in-repo → run (max-tier model) → findings as prioritized confirmed-vs-heuristic report (+ visual scorecard) → delegate fixes to the agent with repo context ('fix it') → independent re-audit → merge/push. Skills: skills.sh SEO Auditor + community GEO-first skill; agents deconflicted explicitly when parallel.

The two headline defect classes: duplicate origins (apex/www both 200) and indexation backlogs (crawled-not-indexed) — both invisible without an audit (1:21:18-1:23:19)

'Fix it' suffices BECAUSE the skill ran in-repo — context is the prompt ()

Model economics: Terra 'being lazy' on audits; Sol/Ultra for the audit, medium for execution ()

Deconfliction as a first-class prompt line: 'please do not clash with my SEO agent' ()

Continuous mode: a daily agent watches SEO/analytics and pushes; 'you can automate this entire thing as a GitHub Action' on every push ()

Working on production defended: confidence came from the report + independent confirmation — 'I'm looking at the report, and I feel confident to proceed' ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why install the audit skill inside the repo rather than pointing a tool at the URL?

In-repo, the auditor sees source truth (routes, canonicals, schema, configs) AND can fix what it finds; URL-only tools see the rendered symptom and can only describe it.

05

The 3-words problem: client-rendered sites are invisible to the answer layer

A cohort member's audit says her homepage 'returns only 3 words to crawlers.' The site looks perfect in a browser. Both facts are true.

The mechanism, read straight from the audit report: the site 'is rendering its real content in the browser, but the crawler is only receiving the nearly empty app shell' — client-side JavaScript builds the page AFTER the HTML arrives, so crawlers and LLM scrapers that read the initial response see a stub. Consequences enumerated: 'search engines may struggle to understand and index the page consistently. AI systems may have little usable text to quote or summarize. Open Graph previews, metadata, headings, links, and schema will be missing from the initial response.' The summary line worth framing: 'the site can look perfect visually while being weak for SEO and GEO.'

The prescription for vibe-coded sites: get the codebase onto GitHub, run the SEO and GEO skills inside it, and address rendering — his stack answer is framework-level (Next.js server rendering); the general answer is any server-side/pre-rendered delivery so the first response carries the content. This is precisely the failure class Paul has already worked: Lovable's React/Vite shells and the TanStack Start migration exist to fix exactly this.

Worked example · from the session

The live triage: 'only 3 words to crawlers' → his first guess (thin content) corrected by the report itself → the app-shell explanation — the diagnostic outperforming the instructor in real time.

Why it matters

It's the single most common fatal GEO defect in the vibe-coding era, and it's invisible from the browser where builders live.

People get this wrong

If the site renders and Google shows it, crawlers see it fine.

Human browsers and (partially) Google run your JavaScript; the answer layer mostly doesn't. Only the first HTTP response is guaranteed read — put the content there.

The site is rendering its real content in the browser, but the crawler is only receiving the nearly empty app shell... the site can look perfect visually while being weak for SEO and GEO.
For your projects

Direct hit on your lovable-tanstack-migration skill: 'returns only N words to crawlers' is the before/after metric those migrations should publish.

Go deeper

In one line: Client-rendered (CSR) sites serve an app shell; crawlers/LLMs reading initial HTML see near-zero content, metadata, or schema despite a perfect visual render. Detection: crawler-view word count in a GEO audit. Fix: server-side rendering / pre-rendering (Next.js-class frameworks; TanStack Start-class migrations) so first-response HTML carries the content.

The audit's exact framing: 'nearly empty app shell' to crawlers ()

Missing from the initial response: OG previews, metadata, headings, links, schema — the whole GEO surface ()

Vibe-coded-site protocol: repo on GitHub → both skills in-repo → rendering fix ()

His stack bias doubles as the fix: Next.js server components render content into the first response ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why can a CSR site rank a little in Google yet be absent from ChatGPT answers?

Google executes JavaScript on a secondary rendering pass (inconsistently); most LLM scrapers and answer-engine crawlers read the initial HTML only — the shell — so the AI layer sees even less than Google does.

06

From practice to product: harnesses, daily agents, and the $8 report

In the last forty minutes he glues the two audit skills to Firecrawl and a dashboard, gates the PDF behind an $8 paywall UI, pushes it to GitHub under MIT — and cites a site that made $153,000 in 67 hours as the reason you ship small things fast.

Three escalating automation tiers: (1) THE HARNESS — his master/sub-agent setup (as heard 'Agent Rooster') with Ego Browser doing real browser work (opening Search Console unprompted); shared in two variants (Ego for Mac, Vercel Agent Browser otherwise); (2) STANDING AUTOMATION — a daily agent reviewing SEO/growth analytics and pushing its own repos, and the GitHub-Action pattern: every push triggers the skill to fix pages; (3) THE PRODUCT — external audits need a crawler (Firecrawl reads what engines see: sitemap, metadata, tags, front-end surface — 'you won't get the backend') plus an LLM key for report generation; UI from a shadcn dashboard + TweakCN theme; report export gated at $8 ('people can pay for a basic audit... in-detail audit through email'); shipped to GitHub with README + MIT, offered to the cohort to build on.

The motivational case study is the week's viral artifact: outbid.lol — 'just a website where you bid, and you just get the number one position' — $1 opening bid to $14,000, $153k gross, 1.1M visitors, 67 hours, built on Replit: 'sometimes it can just be a very simple tool... build it out, go ahead and ship.'

Worked example · from the session

The end-to-end demo: paste a URL → Firecrawl crawls → skills score → dashboard renders the report → export blocked by the $8 gate — a monetizable artifact assembled from parts the session already taught.

Why it matters

It closes the loop Paul's whole KB keeps finding: practice → automation → product, with the audit itself as the sellable unit.

People get this wrong

Audit tools are products only platforms can build.

Two public skills + a crawler API + a dashboard = a gated report product in an afternoon — the moat is distribution and trust, not the machinery.

It's just a website where you just bid, and you just get the number one position... that guy made over $153,000... it only launched in the last 67 hours.
For your projects

PolarMirror (yesterday's sprint showcase) is this concept executed as a business — two independent sightings in 48 hours says the category is live.

Go deeper

In one line: Automation tiers: agent harness (master/sub-agents + agentic browser) → standing agents (daily analytics watcher; GitHub Action per push) → productized audit (Firecrawl + audit skills + LLM report + dashboard + payment gate). Externalization requires a crawler; internal use doesn't. Ship small; the outbid.lol economics justify speed.

Ego Browser's autonomy moment: 14,000 page views checked in Search Console without being asked ()

The GitHub-Action pattern is the 'automating' in the session title — GEO as CI ()

Firecrawl's scope stated honestly: front-end surface only — which is exactly what engines see ()

outbid.lol: $153k/67hrs/1.1M visitors — the same artifact Sugam showed the sprint the day before ()

Open-source reflex: MIT + README + cohort invitation within minutes of working ()

Report format is presentation, not standard: 'the formats will definitely differ. It's not a standard' ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why does the external tool need Firecrawl when the in-repo audit didn't?

In-repo, the skill reads source directly. Auditing someone ELSE'S site means seeing only what's served — a crawler is the only honest window, and its limits (front-end only) mirror the engines'.

Every concept, three clicks deep

The same concepts as a quick reference: the closed row is the glance, open is the study card, and every timestamp jumps into the recording.

01From SEO to GEO: when discovery becomes the answerAEO ≈ GEO: optimizing to be retrieved, cited, and correctly represented inside AI-generated answers.

AEO ≈ GEO: optimizing to be retrieved, cited, and correctly represented inside AI-generated answers. Mechanism: LLMs train + RAG over all public content about you (site + socials). SEO remains the foundation (points system feeding the corpus); the new test is 'can an answer engine find, understand, and safely reuse your best knowledge.'

'Whatever Google discovers, that becomes the answer the next time someone asks on ChatGPT' ()

The point system enumerated: content quality/breadth, backlinks, domain authority, content authority, H1/H2 formats, image metadata, keywords (0:15:45-0:22:08)

Reddit/LinkedIn as first-class GEO surfaces; a site is optional but preferred (links get scraped first) ()

LLM ranking internals are opaque by design — 'if so, people might just game it' ()

AI-content penalty claim: Claude embeds 'invisible watermarks' and engines may downrank pure AI output — HIS CLAIM, unverified; the safe reading is: original, human-reviewed content wins ()

Conversion datum from the room, endorsed: only 20-30% of LLM referral traffic converts today; Google still dominant — 'a growing market, though' ()

02Become the source: authority as the GEO bottleneckGEO authority: original + evidenced + human-reviewed content, high-authority placements/backlinks, cross-pl…

GEO authority: original + evidenced + human-reviewed content, high-authority placements/backlinks, cross-platform bio alignment, independent citations, (long-term) Wikipedia-class notability; 3-6 months per topic; purchasable via authority-site acquisition/sponsorship. Diagnosis: audit composites splitting 'access' from 'authority.'

'Once OpenAI or Claude knows you're producing really good content, they keep coming back' ()

Evidence discipline: claims need sources; the audit flagged 'claims lack field-level provenance' on his own site ()

The audit's verification ethic: 'FAQ schema should only be added where real, visible FAQs exist... separating confirmed defects from heuristic suggestions' ()

Trust pillar named in his framework: 'governance is what keeps claims true, as engines, pages, and facts change' ()

Authority purchase routes: Flippa-class site/newsletter acquisition, sponsorships ()

03The GEO file layer: the machine-readable front doorGEO file layer: robots.txt (AI-bot allowances by name) · llms.txt (short identity) · llms-full.txt (extende…

GEO file layer: robots.txt (AI-bot allowances by name) · llms.txt (short identity) · llms-full.txt (extended catalog) · humans.txt · .well-known/security.txt (RFC 9116) · sitemap.xml · (ai.txt, ads.txt). Repo-resident; eligibility not merit — 'does not guarantee citation... does not replace public evidence.'

AI crawlers are named agents in robots.txt — blocking them is opting out of the answer layer ()

llms.txt vs llms-full.txt: identity summary vs agent-grade catalog — a two-tier disclosure ()

security.txt as a trust signal engines and researchers both read; RFC-numbered, frequently absent ()

Files travel with the codebase — audits and fixes belong inside the repo, not on the rendered site ()

His stack-level claim: being on Next.js/Vercel eases the whole layer (framework-rendered routes, skills.sh adjacency) ()

04The audit → fix loop: skills as auditors, agents as remediationLoop: install audit skill in-repo → run (max-tier model) → findings as prioritized confirmed-vs-heuristic r…

Loop: install audit skill in-repo → run (max-tier model) → findings as prioritized confirmed-vs-heuristic report (+ visual scorecard) → delegate fixes to the agent with repo context ('fix it') → independent re-audit → merge/push. Skills: skills.sh SEO Auditor + community GEO-first skill; agents deconflicted explicitly when parallel.

The two headline defect classes: duplicate origins (apex/www both 200) and indexation backlogs (crawled-not-indexed) — both invisible without an audit (1:21:18-1:23:19)

'Fix it' suffices BECAUSE the skill ran in-repo — context is the prompt ()

Model economics: Terra 'being lazy' on audits; Sol/Ultra for the audit, medium for execution ()

Deconfliction as a first-class prompt line: 'please do not clash with my SEO agent' ()

Continuous mode: a daily agent watches SEO/analytics and pushes; 'you can automate this entire thing as a GitHub Action' on every push ()

Working on production defended: confidence came from the report + independent confirmation — 'I'm looking at the report, and I feel confident to proceed' ()

05The 3-words problem: client-rendered sites are invisible to the answer layerClient-rendered (CSR) sites serve an app shell;

Client-rendered (CSR) sites serve an app shell; crawlers/LLMs reading initial HTML see near-zero content, metadata, or schema despite a perfect visual render. Detection: crawler-view word count in a GEO audit. Fix: server-side rendering / pre-rendering (Next.js-class frameworks; TanStack Start-class migrations) so first-response HTML carries the content.

The audit's exact framing: 'nearly empty app shell' to crawlers ()

Missing from the initial response: OG previews, metadata, headings, links, schema — the whole GEO surface ()

Vibe-coded-site protocol: repo on GitHub → both skills in-repo → rendering fix ()

His stack bias doubles as the fix: Next.js server components render content into the first response ()

06From practice to product: harnesses, daily agents, and the $8 reportAutomation tiers: agent harness (master/sub-agents + agentic browser) → standing agents (daily analytics wa…

Automation tiers: agent harness (master/sub-agents + agentic browser) → standing agents (daily analytics watcher; GitHub Action per push) → productized audit (Firecrawl + audit skills + LLM report + dashboard + payment gate). Externalization requires a crawler; internal use doesn't. Ship small; the outbid.lol economics justify speed.

Ego Browser's autonomy moment: 14,000 page views checked in Search Console without being asked ()

The GitHub-Action pattern is the 'automating' in the session title — GEO as CI ()

Firecrawl's scope stated honestly: front-end surface only — which is exactly what engines see ()

outbid.lol: $153k/67hrs/1.1M visitors — the same artifact Sugam showed the sprint the day before ()

Open-source reflex: MIT + README + cohort invitation within minutes of working ()

Report format is presentation, not standard: 'the formats will definitely differ. It's not a standard' ()

Tools referenced

ToolCoverageMomentContext
CodexdemonstratedThe working agent throughout — skills, audits, fixes, the tool build; GPT-5.6 tier switching live
FirecrawldemonstratedThe crawler for the external audit tool; scope = the front-end surface engines see
Next.jsdemonstratedRecommended substrate; fresh install demoed; server rendering as the js-shell fix
GitHubdemonstratedProduction pushes mid-session; MIT repo for the audit tool; Actions as continuous GEO
VercelmentionedEcosystem argument: skills.sh, Agent Browser, hosting
Claude Codementioned'Codex or Claude — you can use any of these tools'; Rajesh's GEO skill targets it
PerplexitymentionedNamed among the answer engines ('wrappers like Perplexity') whose bots the file layer admits

Session materials

Archived locally on V: — click to open. Companion pages link to the LMS.

Action items

Resources mentioned

Resources
  • docThe 18 lesson attachments — HARVESTED to V:\_CLASSES-media\AI Catalyst C3\materials\week9-12-attachments\ (s23__ prefix)
  • docskills.sh SEO Auditor skill (~200k installs) + the community GEO-first skill (Rajesh's share)
  • docThe session Google Drive resources folder ('Resources for this session')
  • docThe SEO/GEO audit dashboard tool (GitHub, MIT) — built and published in-session
  • docAside tools: Macro (open-source agent workspace, self-hosted), TweakCN (shadcn themes), outbid.lol (the case study)

Extraction notes

This page was built from an auto-generated transcript, which garbles product and people's names. Those were corrected silently in everything above and logged here for transparency. The warnings flag claims that were true on the recording day but change fast.

Transcript corrections applied

The transcript saysThe trainer actually means
Harshith Vaddiparthy / Harshish / parsheth.com / fashion.com / Food and Slip (site contexts)Harshith Vaddiparthy / harshith.com
Agent Rooster / the roosterhis multi-agent harness name (as heard, unverified)
hardness (throughout)harness
Ego Browser / Eco Browser / Ego lightEgo Browser (Mac agentic browser; 'Ego Light' tier as heard)
Terra / Sol / Soul / Seoul / SOL / Ultra / Dera Lite / Stera (model tiers)GPT-5.6 tier names as heard (Terra/Sol/Ultra + light/medium) — spellings unverified
wipe code / white-coded / Vipoded / Wipe-codedvibe code(d)
open claw / open cloth / open slop / Open Clock / OpenCloud / open clothOpenClaw
xCalidrawExcalidraw
SEO ladderboardSEO leaderboard
outbid.law / dot loloutbid.lol
Jonathan Weilk(builder of outbid.lol — as heard, unverified)
N80 templates / NA10 / Enatumn8n templates
Satability / Citabilitycitability
RMEs agent / RMS agent / HermesHermes agent (his agent stack; matches s21's Hermes materials)
C.io(company name as heard, unverified — context: brands paying for outbid.lol placement)
Vikram API keyFirecrawl API key
5Pro / FiveProFirecrawl (as heard in key-pasting context)
PXT filesTXT files (robots/llms/humans/security)
RFC9116RFC 9116 (security.txt standard) — correct
Apple 18 Pro MaxiPhone 18 Pro Max (Google Trends demo)
before Fable 5 got banned(as heard — his site was rebuilt when Fable 5 released; the 'banned' remark echoes the July pull-forward episode referenced in sprint-osp-d2)
Shivani / Sumida (host confusion)Shivani (this session's cohort manager)

True on recording day — verify before relying