a little preview of my daily

seo briefing. gathered, written + read by ai

I got tired of reading the same SEO news in multiple places every morning, so I built something to do it for me. It gathers the most recent stories and creates a summary of what's worth knowing.


behind the briefing

why I built it

Keeping up with search means reading the same story restated across a handful of publications, most mornings, most of it noise. It is a genuine part of the job and a genuinely poor use of half an hour. So I built the thing I actually wanted: gather it all, strip the duplication, and give me one briefing I can read in two minutes, or listen to while the kettle boils. It has replaced the morning scroll entirely, which is the only measure of success I cared about.

why it talks

Every geek wants their own JARVIS, and this is my first attempt at something along those lines. The voice is inspired by FRIDAY, Tony Stark's other AI assistant - I felt the accent was more appropriate for a slightly sceptical take on SEO shenanigans.

The tone is still a work in progress. I want it not dull, a little wary of whatever the algorithm is up to this week, informative with a touch of snark, and holding that line consistently is harder than it sounds. The speech is the weaker half: the TTS comes out drier than I'd like, and hand-marking a whole briefing with inflections to fix that is more effort than the problem is worth.

what it does

It collects the day's stories from a set of sources I trust, removes the ones that are the same story wearing a different headline, and passes what's left to a language model with fairly opinionated instructions about tone and what counts as worth reporting. Out comes one briefing, plus a spoken version of it. The model runs once a day, not once a visit, so what you're reading here is a cached result rather than something generated by your arriving.

It also goes looking for what the sources missed. A feed only knows what its publishers chose to write about that morning, so before the briefing is written there's a separate pass that searches for significant stories the collected set doesn't already cover, and folds anything it finds into the same briefing. That's why the briefing sometimes covers something that isn't in the list below.

why this is only a preview

The version I use daily has more sources, more controls, and a few things that are useful to me and nobody else. None of that is here. This page is deliberately the simple version: enough to show the premise and what the output actually looks like, without publishing the source list, the prompt, or the keys that pay for it. The tool stays private largely because it runs on my own API budget, and an interactive version would be someone else's toy at my expense.

the honest limitations

The briefing summarises other people's reporting, so it inherits their errors and occasionally their spin. A language model writing to a house style will sometimes sand the edge off a story that deserved one. The status feed only shows incidents Google has chosen to confirm, which is usually a while after you noticed. And the recording expires after a couple of days, so if the player isn't there, nobody has played the briefing yet.


more things i've made

the seo handbook

A reference guide to how search works: technical SEO, content strategy, crawling and indexing, and where AI is changing things. Built as a public resource and written to last.

→ seohandbook.co.uk ↗

indexability checker

Paste a URL and find out why it might not be indexed - HTTP status, redirects, the X-Robots-Tag header, the robots meta tag, canonicals and robots.txt, all in one pass.

→ check a URL

ai visibility audit

See what an AI crawler actually gets when it turns up at a page - extracted content, structured data, robots.txt AI directives, sitemaps, llms.txt and per-bot readiness.

→ audit a site