Shamalo

SYS/NAV

SYS/CASE

Digital product creation · SEO · AI engineering · in production

SEO & GEO audit — the internal tool that analyses Google and AI engines

By Mathieu Milon, AI engineer growth & CRO · Published

This is not a brochure site or a public SaaS. It is the Django backend the studio uses to audit classic SEO (crawl, keywords, SERP) and GEO — Generative Engine Optimization: a brand's visibility in ChatGPT, Gemini, Perplexity, Claude answers. The same apps attach to RankyDocky.

SEO + GEO · in production

Context

On SEO engagements, gluing Screaming Frog, Search Console, a spreadsheet and a SERP tool no longer holds once you also need to know what AI engines say about the brand. The studio therefore built its own audit engine — two Django apps, seo_audit and geo_audit — to analyse client sites and review generative answers.

Problem

A classic crawler sees tags, not meaning. It also does not see whether ChatGPT cites a competitor instead of the client, or whether Gemini hallucinates an offer. We needed a semantic audit pipeline (BERTopic, spaCy) and visibility tracking across several LLMs, async, with a dashboard — without making it a public product.

Approach

Same family of stack as RankyDocky (RankyDocky is in fact a fork of it): Django, GraphQL, React, Celery for long jobs (30 to 120 s), SSE for progress. Two distinct domains, one backend.

SEO audit

Crawl, content parsing, performance metrics, keywords, rank tracking, SERP preview, link analysis, scheduled reports. The semantic engine (BERTopic, spaCy, HuggingFace) goes further than meta tags: topics, clustering, recommendations.

GEO audit

Visibility on ChatGPT, Gemini, Perplexity, Claude and Google: mentions, sentiment, position in the answer, trends, competitors, brand-hallucination detection. This is the dashboard the marketing mockup shows in SVG — illustrative, not a client KPI.

RankyDocky integration

RankyDocky was forked from this tool. The SEO/GEO GraphQL schemas are already in its backend, commented out. Reattaching the apps is copying seo_audit and geo_audit, uncommenting the schema, wiring Celery — without migrating authentication. CRM and audit then share the same tenant.

Tools

  • Django · GraphQL
  • BERTopic · spaCy
  • Celery · SSE
  • React

Where AI comes in

In the craft, not only in the code: topic modeling, semantic scoring, questions to LLMs for GEO, reports. GSD agents also speed up the making of the tool itself — I automate my audit work, I do not sell a chatbot.

Results

In production on client analyses. Not a commercial SaaS, so no usage metric to display — the deliverable is the audit, not a subscriber count.

  • SEO

    crawl, keywords, SERP, links, reports

  • GEO

    5 AI engines tracked · mentions · sentiment

  • Fork

    stack reused by RankyDocky

Takeaway

  1. 1

    Instrument your own craft: an SEO consultant who ships an audit engine no longer waits for the market tool to see what LLMs say about a client.

  2. 2

    GEO is not glued-on SEO: you have to query the engines, detect hallucinations, follow a trend — another data model.

  3. 3

    An analysis backend and a CRM can share the stack. RankyDocky does not have to rewrite the audit: it just has to reattach the apps.

Visuals

  • Illustrative dashboard preview — mockup, not a product screenshot.

Related expertise: SEO, SaaS, AI engineering.

A similar project?

Let's talk about your next engagement

A funnel, a product or an extract to analyse: book a 30-minute call, written scoping within 48h.

Book a 30-min call

SYS/VIEW