Every morning at nine, a cron job pulls events from venue calendars I care about — McNally Jackson, Pioneer Works, Powerhouse Arena, the Morgan, WNYC's Greene Space, ThoughtGallery, Pete's Candy Store, Eventbrite's lectures and book-readings filters, and Luma NYC — fetches them deterministically, then hands the list to an LLM to score and format the digest.

The deterministic-then-LLM split is the whole point. The LLM never visits the web; if a fetch fails, the model gets an empty list, not a hallucinated calendar of plausible-sounding events that don't exist. That failure mode — "the model invents reasonable-sounding events with real-looking URLs when the tool returns nothing" — is the entire reason this is a pre-script and not a single agent call.

Sources are mixed and ugly: iCal here, JSON-LD there, __NEXT_DATA__ for Luma, Playwright for the React-rendered venues, plain HTML for the few that still ship server-rendered pages. A handful are permanently blocked by Cloudflare and noted in the docs so future-me doesn't try them again.

Scoring is by interest taxonomy — primary categories are AI alignment, LLM capabilities, heterodox economics, and the Tyler Cowen orbit. Concerts are excluded. Anything north of 96th Street is excluded. Brooklyn gets a small bonus.