case · 01
Building the Oracle
i built a tool that reads how a brand sounds.
you paste a url. it shows you what they say. what they actually have. and what they should say instead. then it builds their voice rules. then it writes a monday in that voice. live.
i made it because i needed proof. the past wasn’t going to be enough.
paste your brand. see what falls out.
the full story
i needed to prove i could do this work.
i didn’t have client work to point to that was new enough, or mine enough.
so i built it.
it’s called the oracle. you paste a brand’s url. it scrapes the homepage. then it does four things, in order.
it reads what the brand says about itself.
it reads what the brand actually has.
it writes what the brand should say instead.
then it keeps going.
it builds the voice rules. it writes a sample monday in that voice. it shows the stack. four steps. live. in front of you.
the stack underneath is small but specific.
cloudflare workers ai for the inference. llama 70b for steps 2 and 3 — i tried the 8b first and the output stayed flat in a way i couldn’t fix with better prompts. the 70b started producing things you’d save. a custom scrape layer that grabs at least 120 characters from the homepage before the llm gets anywhere near it (without that floor, the llm just makes things up). a post-llm filter that throws out invalid voice rules and retries with stricter constraints. astro islands so nothing hydrates until it has to. lenis smooth scroll because the oracle is the demo and the demo deserves to feel like a film.
the first version came together quickly. i spent more time fixing it than building it. i’ll write about that in the next note.
prompts kept failing me.
the llm would behave for three reads and then drift. you can tell an llm “never say ‘our’” five different ways and it will say “our” on the sixth try. the 8b in particular has the memory of a goldfish on tuesday.
what works is a second layer.
you write the prompt. you also write a filter that reads what the llm produced and throws it out if it broke the rules. then you retry. or you fail gracefully and tell the user “the model couldn’t reach the voice today. try a pre-cached brand.”
i call this the editorial layer. it’s an old idea. fits here.
most people building with llms are working on the first layer. they’re tweaking prompts. they’re chaining models. they’re getting better output than last year. the output still sounds the same. the second layer is the part most people skip.
i’m doing the second layer.
that’s the oracle, structurally.
you can try it.
paste any brand. or click one of the five i pre-cached (aman, aesop, goop, soho house, the row). see what falls out.
one note. some sites geo-block. some sites are mostly javascript. the oracle can’t scrape what isn’t there. if you get a weird read, the homepage gave the scraper a help page or a redirect. it’s a limit i haven’t solved yet.
i don’t know yet if this works as cold outreach.
i’ll know soon enough.
the oracle produces the work live, in the brand you choose. a portfolio of past work can’t do that.
if you’re hiring for something like this — editorial direction in ai-produced content, brand voice systems, ai content engines — try the oracle on your own brand. then send me what it said. tell me where it got you wrong.
that’s the conversation.
see it live