The context
A growing share of buyer research no longer goes through a traditional search engine — it goes through an assistant: ChatGPT, Claude, Gemini, Perplexity. A brand can rank perfectly on Google and stay invisible the moment a prospect asks an LLM instead.
The problem isn't just showing up there. It's knowing what those engines say about you. There is no Search Console for LLMs.
That's the starting point of Shiiift: a B2B SaaS positioned as an "AI CMO", which I co-founded and whose entire technical side I own.
The solution
The product rests on three pillars.
Visibility tracking across 6 AI engines
Shiiift continuously queries six engines and measures how the brand is cited, described and compared. This is the observability layer — without it, everything else is guesswork.
GEO/SEO content generation
From that diagnosis, the platform produces the content that closes the gaps it found, shaped for each channel's format: SEO, GEO, LinkedIn, X, Reddit, YouTube. Content arrives ready to publish, not as a brief.
Autonomous acquisition agent
A tool-equipped agent chains analysis, planning and execution across the channels that drive growth. That's what separates the product from a text generator: it decides what to produce, and when.
All of it multi-brand and multi-location: one organization runs several brands, each with its own data and its own tracking.
Technical challenges
Industrializing an AI-prototyped MVP
I came in on an MVP built quickly with AI assistance. It proved the value, but it wasn't a product. My first job was turning it into production software: code structure, tests, deployment pipeline.
It's a particular exercise. You have to preserve what works and proves the market, while rebuilding the foundations underneath the product without disrupting the customers already on it.
Orchestrating six models without blowing the budget
Continuously querying six engines, for several brands, gets expensive fast. The architecture rests on multi-model orchestration through OpenRouter, with versioned prompts: you know which version of which prompt produced which result, which makes regressions traceable.
Instrumentation is the critical part. Per-run cost is measured across every model queried, at a scale of 30 million tokens per month. Without that visibility, a SaaS whose variable cost is an LLM call doesn't have a business model — it has a bill.
Owning the product end to end
Scoping, work breakdown, fullstack development, continuous deployment. No handover halfway through: the same role decides the architecture and ships it.
Tech stack
| Category | Technologies |
|---|---|
| Frontend | React, TypeScript, Vite |
| Backend & data | Deno, Supabase, PostgreSQL |
| AI | OpenRouter, multi-LLM orchestration |
| DevOps | Docker, GitHub CI/CD |
What I took away
An AI product is judged on its unit cost. A demo impresses with any model. A SaaS where every user triggers dozens of LLM calls only survives if per-run cost is measured, attributed and controlled. That's an architectural constraint, not an end-of-project optimization.
Taking over AI-prototyped code is its own discipline. It's neither greenfield nor classic legacy: the code is recent, it works, it was simply never designed to last. Knowing what to keep and what to rebuild is the real decision.
