Community

Share your best AI workflow. We could show it to 2M+ people.

Every day, we feature the community's top-voted AI workflow in The Rundown newsletter. One post will put you on the radar of top founders, hiring managers, and operators across the industry.

Welcome!

Turn Recipe Cards Into Structured Meal Plans With AI

Trivet is a recipe box for one household. I can photograph a recipe card—handwritten, printed, or a PDF—and get back a structured recipe with ingredients, quantities and units, numbered steps, prep, cook and rest times, oven temperature, and equipment. I can plan a dinner for each night of the week, and the shopping list builds itself: quantities are combined across meals, grouped by aisle, and texted to my phone. I built it because my family’s recipes were scattered across index cards in a drawer, including decades-old handwriting and cards from defunct meal services. Typing everything in was never going to happen. The entire AI workflow uses one model call. The photo is sent to Claude Opus as an image block with a Zod schema attached as the structured output format, so the response is already typed and validated—there’s no JSON parsing, retry loop, or “please respond only with valid JSON.” The extraction schema is intentionally looser than the database schema, with nullable numbers throughout. If a card has no cook time, the model returns `null` instead of inventing a plausible-looking value. The load-bearing instruction in the system prompt is that a missing cook time is a small gap, while an invented one is wrong every time somebody cooks from it. Nothing saves automatically. The extraction first appears in an editable review screen. The model also returns a confidence field, so a blurry card or a page that is not a recipe gets flagged instead of silently becoming a bad entry. Step-by-step: 1. I built a Next.js app with Postgres via Prisma and deployed it on Vercel. 2. I made the upload accept an image or PDF. I check the file size before encoding because the API limit applies to base64, which inflates the bytes by about a third; a 7 MB raw ceiling is the real limit. 3. I defined the extraction shape in Zod and sent it as the output format instead of describing JSON in the prompt. 4. I described fields in the schema. For example, `.describe("Unit as written, e.g. 'tbsp'")` does more than a paragraph of instruction. 5. I render the result into a review form and save it only when the form is submitted, never immediately after the model responds. 6. I store quantities as numbers with separate units so servings can be scaled and ingredients can be combined across recipes later. This is the decision that cannot be retrofitted easily. 7. I sum ingredients across planned meals, round at the end, group them by aisle, and send the list via Twilio. The pattern is not limited to recipes. Anything I would otherwise have to retype—receipts, notes, or forms—can use the same three moves: a schema looser than the database, a model told that `null` is better than a guess, and a review screen between the response and the database write.

Tools used
Industry
#familymeals#familyrecipes#grocerylist#heirloomrecipes#mealplanning
3

Build an AI Editorial Intelligence System for a Midlife Newsletter

Midlifecurious is a newsletter for women navigating midlife—honest, funny, and allergic to being talked down to. Its Sunday issue, the Midlife Missive, is a roundup covering health, wellness, money, beauty, and family. My sister, Claire, edits it; I build the machine behind it. That machine is Missive, a five-part publishing intelligence system that runs the newsletter as one closed loop: scan → triage → publish → measure → remember. It monitors Reddit, search trends, and RSS to identify what midlife women are paying attention to before those topics reach our feeds. Discovery pulls in those sources, ranks every feed using a click-rate-based quality score, and lets Claire triage articles into the week’s issue. Curation composes Sunday’s newsletter and drafts the introduction in her voice. Performance reads the Mailchimp results back into the system and feeds them into the rankings, so strong sources rise and weak ones fall over time. Underneath all four stages is Memory: a vector-searchable corpus of every article, save, rejection, and the reasoning behind each decision. Memory is the real spine of the system. It lets Missive ask editorial questions such as “Have we covered this before?” and “Is this source still earning its slot?” instead of requiring one person to hold everything in her head. We’re a two-person operation: I build with Claude Code, and Claire edits. The system runs on one database for under $25 a month. I built it because the alternative was Claire drowning in a Feedly-and-spreadsheet routine that discarded everything as soon as an issue shipped. We had no record of what we had run and no feedback on what actually landed. My bet is that the corpus is the moat. Claire’s editorial taste—every save, rejection, and “cornerstone” stamp, with the reasoning stored alongside the decision—is a training set no one else has. A system that remembers turns her job from synthesizer into judge. Missive is deliberately internal-only: no SaaS and no customers, ever. That frees me to build for our exact workflow instead of a hypothetical buyer, and to build for 2028 instead of this quarter. The near-term payoff is a calmer Sunday. The long-term goal is a proprietary editorial-intelligence layer we could never buy off the shelf—the foundation for the research and audience products that come next. Step-by-step: 1. I monitor Reddit, search trends, and RSS for topics that midlife women are paying attention to. 2. I pull those sources into Missive and rank each feed using a click-rate-based quality score. 3. Claire triages the ranked articles into the week’s Midlife Missive. 4. Missive composes Sunday’s newsletter and drafts the introduction in Claire’s voice. 5. I import the Mailchimp results so the system can update source rankings based on performance. 6. Missive stores every article, save, rejection, “cornerstone” stamp, and the reasoning behind each decision in a vector-searchable corpus. 7. We use that memory to check whether a topic has already been covered and whether a source is still earning its place. 8. I build and maintain the internal system with Claude Code, while Claire handles editing, using one database that costs under $25 a month.

Tools used
Industries
3