Inspiration

The rise of AI-powered search (ChatGPT, Perplexity, Gemini) is rewriting the rules of online visibility. Traditional SEO optimizes for Google's crawler, but what about being cited by an LLM? Most businesses have zero awareness of their "AI discoverability," and only a few existed to measure or fix it. We built Steyer Aura to change that.

What it does

Steyer Aura takes any website URL and delivers a full AI-readiness report: a GEO score ∈ [0, 100], a coherence score and a comparison score both computed as the cosine similarity between sentence embeddings:

$$\text{similarity} = \frac{\vec{v}_A \cdot \vec{v}_B}{|\vec{v}_A| \cdot |\vec{v}_B|}$$

The coherence score compares the site's own content against its web reputation (retrieved via Tavily); the comparison score benchmarks it against the sector leader. Steyer Aura then auto-generates an llms.txt file optimized for AI crawlers, rewrites the site's metadata and structured data using Gemini, and exports the full audit as a visual mind map on Miro.

How we built it

Four-stage pipeline:

  1. Crawl — Crawl4AI + BeautifulSoup extracts clean Markdown and JSON-LD structured data
  2. CompressCompresr (YC 2026) semantically distills the content into a token-minimal summary safe to feed to an LLM
  3. Audit — Gemini 2.5 Flash via LangChain scores the site; Sentence Transformers compute the similarity metrics
  4. Improve — Gemini rewrites metadata, structured data, and content for AI engines

Wired together through a FastAPI backend, Supabase webhooks, and ngrok. We used Streamlit as a rapid sanity-check UI during development, then Lovable to ship a polished production React frontend connected to the backend in under two hours.

Challenges we ran into

Raw website content easily overflows an LLM's context window, producing hallucinated scores and invented recommendations , our biggest correctness bug. Integrating Compresr's compression API fixed it entirely. We also had to surgically isolate Crawl4AI's async event loop from synchronous LangChain calls using concurrent.futures, and spent significant time mapping nested audit JSON onto a meaningful spatial layout in the Miro MCP server.

Accomplishments that we're proud of

End-to-end working pipeline in 24 hours: crawl any site so far, score it, compress it with a YC-backed tool, rewrite it with Gemini, and visualize the full audit as a Miro mind map — all from a single API call. The Streamlit → Lovable frontend strategy let us validate fast and ship clean without sacrificing either speed or quality.

What we learned

Context window management is a correctness problem, not just a performance one. Combining multiple specialized models (Gemini for analysis, Sentence Transformers for similarity) yields far richer outputs than any single-model approach. And GEO is a real, measurable, underserved problem that every business with a web presence will need to solve.

What's next for Steyer Aura

Continuous monitoring (track your GEO score over time), sector benchmarking across industries, a one-click llms.txt deployment to production sites.

Built With

  • beautiful-soup
  • claude
  • compresr
  • crawl4ai
  • fastapi
  • gemini
  • lovable
  • miro
  • ngrok
  • streamlit
  • supabase
  • tavily
  • transformers
  • uvicorn
Share this project:

Updates