Guide

A personal recommendation engine, built and run by an AI agent

Six steps, written for anyone; no technical background needed. Every box below is a real part of the system, drawn from what actually runs.

This page is the how-to. It has the method, plus the exact prompt you can copy to build a site like this for any topic. About covers what this particular dashboard does today and how it scores.

01Tools & mode

Built in Cowork, with one deliberate exception: every push runs from Susan's own machine, with her credentials, and only when she says so. Usually she types it herself; occasionally she reviews a batch and tells a Claude session to run it for her. Either way she authorises each one, no credential ever lives in the cloud session, and nothing reaches the live site without her say-so. The Chrome extension reads your already-authenticated Netflix and Prime sessions directly. No credential is ever requested or stored.

Chat
decide
  • signature genre calls
  • actor-match weight
  • what to permanently exclude
Cowork
build & maintain
  • skill & data files
  • the documented scoring rules
  • the exclusion list
  • this dashboard, end to end
Chrome extension
read your data
  • Netflix & Prime history, handed straight to Cowork
  • never touches credentials
Scheduled tasks
weekly upkeep
  • Monday CI, Wednesday artwork sweep, Friday review
  • checks the live site
  • stops rather than publishing a partial state
  • see Roadmap, weekly upkeep

Cowork carries the build role end to end. The only terminal involved is Susan's, for the push.

02No metadata, so it gets researched

Netflix and Prime's own history pages disclose a title and a date; nothing else. So every genre tag and cast credit was researched title by title. Watch status is inferred from episode counts and gaps, and the page says as much rather than dressing it up as scraped fact.

Coming Soon draws only from named, verifiable sources, and every tracked service now has its own rather than being caught incidentally: BritBox, PBS Masterpiece, Apple TV+, MGM+, Paramount+ and Hulu each have an official schedule or press page. Netflix Tudum, Den of Geek, What's on Netflix and JustWatch cover across services. Every claim is cited so its reliability can be judged independently. Where no verified art exists, the space stays empty. A plausible-looking guess would be worse than a gap.

03Signature genres in full, generic at a third

Comedy and Drama are spread across too many unrelated titles to mean much on their own. Genres that actually recur in your history carry full weight: British and European crime drama, spy thrillers, grounded action, music documentaries, and the rest of your signature list, with an added signal when the cast overlaps something you already valued. A genre you've ruled out stays capped however well the rest of a title scores.

Full weight

British and European crime drama, spy thrillers, grounded action, music documentaries and six more, all with real recurrence in your own watch history. Cast overlap adds on top.

Capped, regardless of score

Science fiction, horror, reality dating, superhero franchises. A high score elsewhere can't override a genre you've already ruled out.

04One published snapshot, refreshed when you ask

Nothing touches your Netflix or Prime account while you're reading the page. You're looking at one published snapshot. Syncing happens deliberately, in a Cowork session, when you ask for it, and only then does the static record get rebuilt. The weekly automated jobs check the site and carry your removals into the permanent record; they don't rebuild the recommendations. A Monday report does tell you how far the watch log has drifted and what a resync would pick up, so the call to run one is informed. The history pull needs your logged-in browser, which is why it stays something you start.

05Publishing changes automatically

A push to GitHub publishes to the live site on its own, with no manual deploy step after it. The push is the human gate, so the automatic part starts at GitHub, not before it. Having that continuous deployment in place is what made the live buttons possible, and those need no push at all: remove a title, or mark it as already seen, and every device you own catches up immediately.

Netflix / Prime read-only, your session Claude / Cowork builds and commits GitHub pushed at Susan's say-so Netlify publishes automatically streamingscout.org the live site, updated Live buttons: remove, and mark as seen no push needed; GitHub Actions records them permanently
How an update travels from Claude's workspace to the live site, with Susan's push in the middle.
06What's still manual

Removing a title syncs everywhere instantly. Since 2026-08-16, keeping it off next week's rebuilt list takes no message to anyone: a weekly GitHub Actions job compares what's been dismissed live against the permanent exclusion list, fixes any gap itself, and opens a pull request. The fix is automatic. Only the merge is manual. The ✓ button has worked the same way since 2026-08-17, so nothing you've already watched can come back next week.

One button is still genuinely manual. Marking something "currently watching" syncs live at once, but turning that into a permanent entry, one that survives a rebuild and keeps its poster art, wants real artwork and accurate progress text. That's a judgment call, not a diff-and-append. A weekly job flags when the entry is missing instead of guessing at it.

A scheduled health check added on 2026-08-14 confirms weekly that the live site loads, that both Functions work, and that every Currently Watching row has real artwork. It tells you the site is healthy in general. It can't tell you that one specific change published, so a look at the live page after a real update is still worth the ten seconds.

Two more gaps closed on 2026-08-17. Your watching and dismissed flags used to exist only inside Netlify with no copy anywhere; a weekly job now saves them into the repository and opens a pull request. Every push is also checked for titles that would show a plain monogram instead of real artwork, across the whole page, after four separate rounds of missing posters being spotted by eye first. Three more checks arrived the same day, each aimed at something that had already gone wrong: a pick can no longer be something already in the watch log, a row can no longer survive for a title that was removed, and a list that collapses into a single genre fails outright.

Build your own · a starting point

Copy this prompt to start

This entire site (the recommendation logic, the dashboard, the domain, the scheduled checks) started from a single written request to Claude. It was built in stages, in conversation, with every irreversible step (spending money, publishing, connecting accounts) held for explicit approval along the way. Below is a version of that starting request. Copy it and paste it into a new Claude conversation, with your own topic swapped in.

I want to build a small personal recommendation site for [your topic, e.g. books I've read, restaurants I've tried, podcasts, wine, whatever you actually track].

Here's the pattern I want it to follow:
1. Pull my real history from wherever it already lives (an account, a spreadsheet, an app). I don't want to re-enter anything by hand.
2. Rank new candidates against what I've actually liked before, not a generic popularity or trending list.
3. Publish it as a small, real website I can bookmark and check from my phone. No login needed for me to view it day to day.
4. Let me dismiss things I'm not interested in with one click, and have that stick permanently.
5. Run its upkeep on a schedule: check that it still works, and tell me when the data has gone stale so I know when to refresh it. If a refresh needs me signed in somewhere, say so rather than promising it will happen unattended.
6. Be honest in the interface about what's automatic versus what still needs me. Never invent or guess at data it can't verify.

Please help me scope this into a first small version we can finish today, tell me exactly what you'd need from me at each step (any account access, any purchase like a domain name, anything you can't do without my say-so), and don't do anything irreversible without checking with me first.

Swap the bracketed topic for your own, or hand it to Claude exactly as written and answer its follow-up questions. Either works.

01

Claude asks before it assumes

Expect clarifying questions about what "good" means for your topic before anything gets built.

02

A first version, same session

A working, if small, version is realistic to see before the conversation ends.

03

You approve anything with a consequence

Spending money, connecting an account, or publishing something public always waits for your yes.

04

It grows in later sessions

Everything on this site, the domain, the scheduled checks, the dismiss button, arrived in later passes, not all at once. See the Roadmap for the real order it happened in.

What it takes on your end

Field notes

What we'd tell you before you start

A better formula can't fix a bad starting list. An early version ranked movies from a generic "trending now" list: the same list every visitor to a streaming site sees. A slapstick comedy nearly outscored a spy thriller starring Rami Malek, because both titles came from that same undifferentiated pool and every genre was weighted equally. The fix was to pull candidates only from Susan's own multi-year watch history. No formula rescues a starting list that was never personal in the first place.

Claude asks before it spends, every time, no exceptions. Registering this site's domain name is the clearest example: before buying streamingscout.org, Claude confirmed the exact domain and the $10.49 price with Susan, and would not complete the purchase without her card on file and her explicit go-ahead. The same rule applies to every dollar this system touches.