The projects here share one idea: automate agency routine so there is time for the one thing the client actually sees – the deliverable.
Not a showcase portfolio. These systems run daily in real agency operations, from first concept through architecture to production. The Lab documents tools and workflows; open panel research, methods and data boundaries live separately under Research.
Productive holds everything – budgets, tickets, follow-ups, hours – just spread across reports and views.
The connector makes this data queryable via MCP directly in Claude: one plain-language question instead of a click path through reports. No plan upgrade, on our own infrastructure, read-only.
Before, that meant pulling data from Productive by hand and checking it against the client budget spreadsheet. Now every client card carries one big number – live from Productive, frozen as a snapshot after the monthly close.
The discipline I work in, packaged as an executable format: the skill turns a general AI agent into a specialist for GEO content.
It walks the agent through the retrieval mechanic of answer engines – chunk, embed, retrieve, ground, cite – and applies it as a repeatable workflow. Two modes: create new content, or rebuild existing pages, baseline first.
Share of Voice, mention rate and citation rate in AI answers, measured without a SaaS subscription: 50 prompts through one OpenRouter account to ChatGPT, Gemini, Perplexity and Claude.
Every question three times per model, so the stochastic answer becomes signal instead of noise. Detection on regex rather than an LLM judge, so every number stays reproducible. Raw data in Google Sheets, a weekly email report, an alert when the citation rate hits zero – plus an honest reckoning of when the self-build costs more than Peec.ai.
A language model writes FAQ blocks for service and product pages in a minute – it gets delicate the moment that same model reads foreign page text while holding the company data.
The workflow separates the two along Simon Willison's dual LLM pattern: the model in control works strictly on enums, counters and IDs and never sees page text; the model that reads page text receives zero company data. Three code gates check without a model, every answer has to cite fact IDs – and nothing publishes itself.