Workflow Hub

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.

Use ChatGPT to Turn Family Cooking Experiments Into Recipes

My mom and I love trying new recipes together, but our best dishes rarely turn out exactly like the original recipe. She adds a little more garlic, I suggest a different spice, and by the time we sit down to eat, neither of us remembers what we changed. 😂 I started using ChatGPT as our cooking journal. After we make something, I send it a photo of the dish and a quick voice note about what we used, what we changed, and what we’d do differently next time. ChatGPT turns those notes into a recipe we can make again while preserving our comments and the story behind the meal. Now, when we’re deciding what to cook, I can ask for a favorite we haven’t made in a while, a recipe that uses what’s in the fridge, or a shopping list for our next cooking day. It’s becoming a collection of our recipes and the time we’ve spent making them together. ❤️ Step-by-step: 1. I created one place to keep our recipes, with space for ingredients, steps, photos, ratings, and notes. 2. Each time my mom and I cook, I take a photo and record a short voice note about the changes we made. 3. I ask ChatGPT to turn our notes into a clear recipe and flag any measurements we forgot to record. 4. I review the recipe with my mom, fill in the missing details, and save the version we actually made. 5. We add what we liked, what we’d change, and any memories from that cooking day. 6. When we want to cook again, I ask ChatGPT to find a recipe, adapt it to the ingredients we have, or make a shopping list.

Tiffany Tu
  • ChatGPT
1

Convert 16:9 Video to 9:16 Vertical Format with Magnific

I built a workflow that converts landscape (16:9) footage into vertical (9:16) video without heavily cropping the original footage. Using AI tools and a simple node tree in Magnific, I generated the missing visual data outside the original frame so the final video looks as if it was captured vertically. Previously, this felt like too much trouble and too many steps to be worthwhile. Using Magnific Spaces, I extended the first frame of the video to fit a 9:16 frame with one prompt. Then I used a second prompt with the new frame and the original video as references in a video-generation node. I used Seedance 2.0 to save credits because I had low expectations that the workflow would work. To my surprise, the output was great immediately. It was not perfect, but the generated footage matched the original clip very well. Below are images of my node tree. Step-by-step: 1. I opened the original landscape (16:9) video in Magnific. 2. I used one prompt to extend the video's first frame into a 9:16 vertical frame. 3. I added the new frame and the original video as references in a video-generation node. 4. I used a second prompt to generate the expanded vertical footage with Seedance 2.0. 5. I reviewed the output and found that it matched the original clip well, although it was not perfect.

Nicholas Adams
  • ChatGPT
3

Use ChatGPT to Research, Negotiate, and Document a Watch Collection

I use ChatGPT to support a hobby that combines research, negotiation, history, craftsmanship, and family legacy: collecting mechanical watches. The workflow usually begins when I discover a watch that interests me. Rather than simply asking whether it is a good watch, I use ChatGPT as a research analyst. We investigate the exact reference, movement, production history, complications, materials, rarity, manufacturer history, comparable watches, secondary-market pricing, previous sales, and any known weaknesses or servicing concerns. With unusual independent watches, this can become surprisingly deep research. The goal is to answer two separate questions: Is the watch genuinely interesting? And is this particular example worth buying at this price? If I decide to pursue a watch, ChatGPT shifts into the role of negotiation adviser. I share dealer listings, asking prices, trade proposals, emails or text messages, previous offers, comparable sales, and my own walk-away price. We discuss likely dealer economics, negotiating leverage, possible counteroffers, and how aggressively or patiently I should approach the transaction. ChatGPT also helps draft correspondence, but the final decision remains mine. I find the greatest value in having an analytical partner that remembers the research and can challenge my enthusiasm before I spend money. After acquiring a watch, I create an entry in a private document I call my Horological Codex. Each entry includes the technical specifications and historical information, along with why I chose that particular watch, how I acquired it, its price, its appraised value, what was happening in my life at the time, and why it deserves a place in the collection. One early watch commemorates an educational milestone. Another is a one-of-one piece commissioned directly with an independent watchmaker. Other watches connect to family events, travel, my cars, personal interests, or particular periods of my life. The Codex preserves those stories and memories alongside the watches themselves. My original Codex eventually became a large, 70-page formatted document, and maintaining it manually became cumbersome as watches entered and left my collection. My next version will separate the structured information from the presentation layer: I will maintain a master record for each watch, then use AI to generate or update the polished Codex from that underlying data. That way, the collection can evolve without requiring me to rebuild an entire book every time something changes. I keep the full Codex private because it contains family and financial information, but the system itself has become a meaningful way to preserve the history behind the collection. Step-by-step: 1. I identify a watch that interests me and describe the exact reference and available listing information to ChatGPT. 2. I research the watch’s movement, production history, complications, materials, rarity, manufacturer, comparable watches, secondary-market pricing, previous sales, and known weaknesses or servicing concerns. 3. I evaluate both whether the watch is genuinely interesting and whether the specific example is worth buying at the asking price. 4. If I decide to pursue it, I share the dealer’s listing, asking price, trade proposals, correspondence, previous offers, comparable sales, and my walk-away price with ChatGPT. 5. I use that information to discuss dealer economics, negotiating leverage, counteroffers, and the right negotiation approach, then make the final decision myself. 6. After acquiring the watch, I record its technical details, history, acquisition story, price, appraised value, personal significance, and place in the collection in the Horological Codex. 7. I maintain a master record for each watch so AI can eventually generate or update the polished Codex without requiring me to rebuild the entire 70-page document whenever the collection changes.

L.M.
  • ChatGPT
1

Create a Free AI-Assisted Labor Positioning Mini-Course

I’m pregnant with my second child. For my first, we had a doula, so my husband and I didn’t spend much time learning about labor positions or what can help during labor because we knew she would guide us. This time, we don’t have a doula, and we didn’t want to spend a lot of money on an online course or take the time to attend an in-person one. I asked ChatGPT to scour free resources from leading experts and create a mini-course we could work through, along with a cheat sheet for my husband to use during labor. It saved me hours of research and gave us an incredibly useful resource. Step-by-step: 1. I explained that I’m pregnant with my second child and that we had relied on a doula during my first labor. 2. I identified the information we needed to learn, including labor positions and what can help during labor. 3. I asked ChatGPT to scour free resources from leading experts and use them to develop a mini-course. 4. I also asked it to create a cheat sheet for my husband to use during labor. 5. We used the mini-course and cheat sheet as a more affordable and convenient alternative to an online or in-person course.

Anon Kingfisher
  • ChatGPT
3

Build a Map-Based Beauty Services Discovery Website

I built GlowNextDoor (glownextdoor.com), a map-based website for discovering nearby hair salons, barbers, nail studios, lash specialists, and other beauty services. I used ChatGPT/Codex and Claude to develop the idea, compare designs, and refine the experience. I then built and published the website with Base44. I connected Google Maps for live business listings and added location detection, distance and rating filters, reviews, directions, and links to salons’ existing booking systems. Through repeated testing on desktop and mobile, I improved the layout, added favorites without requiring a login, created realistic animated category icons, and included an option to add the website to a phone’s home screen. Finally, I connected a custom domain through Blacknight and configured Google Maps usage limits to control costs. My workflow was to describe each feature, review the AI-generated result, test it in the browser, and iterate before publishing. Step-by-step: 1. I described each GlowNextDoor feature to ChatGPT/Codex and Claude while developing the idea and comparing design options. 2. I built and published the website with Base44. 3. I connected Google Maps for live business listings and added location detection, distance and rating filters, reviews, directions, and links to existing booking systems. 4. I tested the website repeatedly on desktop and mobile, then refined the layout and added favorites without requiring users to log in. 5. I created realistic animated category icons and added an option to install the website on a phone’s home screen. 6. I connected the custom domain through Blacknight and configured Google Maps usage limits to control costs. 7. I reviewed each AI-generated result in the browser, iterated on it, and published the updated version.

Michael King
  • Claude Code
  • ChatGPT
2

Reconstruct a Lost Spotify Playlist from Listening History

Sometimes a playlist disappears before you realise how much you depended on it. That happened to a meditation playlist I used constantly for months. Then Spotify removed it, and I discovered an inconvenient detail: I barely knew the track or artist names. I remembered the music and what it did for me, but I could not reliably search for it. The reconstruction began accidentally. While analysing my Spotify listening history for another purpose, AI noticed that I had played roughly the same fifty tracks again and again for about four months. Suddenly, I did not need to remember the missing playlist. My listening history had remembered it for me. A playlist can leave a behavioural fingerprint even when its name and contents are gone. Look for repetitive periods, recurring groups of tracks, similar sequences, and songs that appear together for several months before disappearing around the same time. Step-by-step: 1. I inspected my historical Spotify listening data instead of relying only on which songs I could remember. 2. I used unusual repetition to identify the likely time window. In my case, a four-month cluster helped me recognise the missing meditation playlist, even though I did not know the exact dates beforehand. 3. I built a broad candidate pool of tracks played frequently during that period, recording titles, artists, play counts, dates, listening duration, and nearby tracks. 4. I looked for tracks that repeatedly occurred in the same sessions, on the same days, or in similar sequences. Tracks that travelled together were stronger evidence than songs that were merely popular individually. 5. I compared listening outside the suspected period. A song played throughout several years might be a general favourite, while one that appeared repeatedly within the cluster and rarely elsewhere was a stronger candidate. 6. I used timestamps to recover possible order, including tracks that usually followed each other or appeared near the beginning or end of sessions. Because shuffle may obscure the original order, I treated these smaller sequences as clues rather than proof. 7. I showed the candidate tracks to the person, including names, artists, and, where useful, album art or audio previews. I asked whether each track felt familiar and belonged to the playlist. 8. I relied on recognition rather than recall. Someone may be unable to name a single song but still recognise dozens when presented with them. This is especially useful for instrumental music, mantras, classical works, or unfamiliar names, because remembering the sound does not require remembering its spelling. 9. I ranked candidates as highly likely, likely, possible, or uncertain using repetition, co-occurrence, timing, listening elsewhere, and human confirmation. I did not treat every recovered track as equally certain. 10. I created a provisional playlist from the strongest candidates and listened to it. A list can look convincing in a spreadsheet but feel wrong when played; listening may reveal an unrelated song, a missing transition, or immediate recognition. 11. I used confirmed tracks as anchors and checked which uncertain candidates repeatedly appeared beside them. Data suggested candidates, recognition confirmed anchors, and those anchors improved the next search. 12. I recorded why the playlist mattered, when it was used, and whether its order mattered. Mine was a meditation playlist, so recovering that musical environment mattered even if the exact original list remained uncertain. 13. I saved an external record containing the playlist name, track titles, artists, albums, links or identifiers, reconstruction date, and uncertainty or contextual notes. I kept the listening history, candidate analysis, and confirmed playlist separately so I could revise the result without losing the evidence. The workflow was: analyse listening history → find repeated clusters → locate the time window → collect candidates → compare co-occurrence and sequence → remove unrelated tracks → confirm through recognition → rebuild and listen → refine → save externally. The deeper principle is that humans often remember experiences better than metadata. I remembered that the playlist existed, what it did, and how constantly I played it. I did not remember what most of it was called. The platform had lost the collection, but the listening history still contained its shadow. One observation made it searchable again: > “Hey. For about four months, you were basically listening to the same fifty songs.” 😅🎧

Fien De Waele
  • ChatGPT
2

Build a Custom GPT That Engineers Production-Ready Prompts

I built a Custom GPT Prompt Engineer to make the build phase more efficient. Instead of generating a result immediately, it helps transform ideas, business requirements, and objectives into production-grade ChatGPT prompts. The assistant is coached to operate as an expert prompt engineering partner. Its primary mission is to help produce consistently accurate, thorough, and useful results from ChatGPT. Its seven core responsibilities are: Step-by-step: 1. Understand the objective before writing by asking targeted clarification questions. 2. Ask questions one at a time instead of overwhelming the user with a questionnaire. 3. Never assume missing information; ask for clarification when something is unclear rather than inventing details. 4. Engineer structured, high-quality prompts that include: - Role assignment - Task and objective - Relevant context - Detailed instructions - Expected output format - Constraints and guardrails - Examples when beneficial 5. Minimize hallucinations by instructing ChatGPT to distinguish verified facts from uncertainty, avoid unsupported claims, and never fabricate information. 6. Deliver enterprise-ready prompts that are professional, clear, actionable, formatted in Markdown, and generally under 3,000 characters. 7. Validate and refine each prompt by checking its completeness, ambiguity, consistency, and alignment with the requirements, then refine it based on feedback. The key difference is that the assistant engineers the instructions that produce the result rather than simply generating the result itself. For example, if I say, “I want ChatGPT to analyze my business and identify growth opportunities,” it does not immediately generate a generic business analysis. Instead, it helps construct a reusable prompt that specifies how ChatGPT should perform the analysis, what evidence it should use, what questions it should ask, and how it should present its findings. Its governing principle is: Clarity + Context + Constraints + Structure + Verification = A stronger prompt. The operating instructions also direct it to reference the Custom GPT Prompt Engineer – System Prompt document and check its work against that document’s guidelines. Ultimately, it is designed to be a prompt engineering partner for business strategy, marketing, finance, operations, research, analytics, and other professional applications. I built it to bring more efficiency to the build phase and am continuing to look for opportunities to improve it. Step-by-step: 1. Create a Custom GPT and position it as an expert Prompt Engineering Assistant. 2. Instruct it to understand the user’s objective by asking targeted questions one at a time. 3. Tell it never to assume missing information or invent details. 4. Require each completed prompt to include a role, task and objective, context, detailed instructions, output format, constraints and guardrails, and examples when beneficial. 5. Instruct it to distinguish verified facts from uncertainty, avoid unsupported claims, and never fabricate information. 6. Set the delivery standards: professional, clear, actionable, formatted in Markdown, and generally under 3,000 characters. 7. Have it validate each prompt for completeness, ambiguity, consistency, and alignment with the user’s requirements. 8. Direct it to reference the Custom GPT Prompt Engineer – System Prompt document and use its guidelines when checking and refining its work.

Anon Cormorant
  • ChatGPT
0

Run MinecraftEdu on a Modern Mac with Java 8 and Rosetta

MinecraftEdu first launched nearly 15 years ago, but the classroom world we built with it is still growing. Years of students have contributed to the school and town-building project, creating a shared record of their creativity and learning. Getting it running on a modern Mac meant preserving that history and giving the next group of students a way to add their own chapter. Finding the right version of Java—the software MinecraftEdu needs to run—was central to the process. We used OpenAI’s Codex desktop app, powered by GPT-6, to examine the old setup, research compatibility issues, and test what would work. An older Java version launched the client, but resizing its window caused it to crash. ChatGPT read the crash reports and tested a newer Java 8 version, which gave us a setup that could launch the game and handle window resizing successfully. ChatGPT also repaired the server launcher and created standalone apps, using Apple’s Rosetta compatibility layer to run the older software on Apple Silicon. The result is a usable MinecraftEdu setup on modern hardware with the existing worlds preserved. We can now continue teaching and building in a place that successive classes of students have helped create. Step-by-step: 1. We examined the existing MinecraftEdu setup and researched its compatibility requirements on a modern Mac. 2. We used OpenAI’s Codex desktop app, powered by GPT-6, to investigate the old setup and test possible solutions. 3. We tested an older Java version, which launched the client but caused crashes when the window was resized. 4. We had ChatGPT read the crash reports and test a newer Java 8 version. 5. We used the working Java setup to launch MinecraftEdu and handle window resizing successfully. 6. We had ChatGPT repair the server launcher and create standalone apps. 7. We used Apple’s Rosetta compatibility layer to run the older software on Apple Silicon. 8. We preserved the existing worlds so future classes can continue building and learning in them.

Andrew Bartlett
  • ChatGPT
  • Codex
3

Create a College Assignment Tracker from Syllabi with Codex

To stay organized, my daughter used to spend hours entering every assignment from her college syllabi into a Google Sheet to create a semester assignment tracker. To save her that data-entry time, I put all of her downloaded syllabi into a folder on my computer. I then directed Codex to access the folder, read the syllabi, and create a spreadsheet with the course name, assignment, due date, and a completed column with a checkbox. Codex created a beautiful, easy-to-sort-and-filter spreadsheet containing all of the assignments. Now, my daughter only needs to spend a few minutes reviewing the spreadsheet before starting her semester. Step-by-step: 1. I collected all of my daughter’s downloaded college syllabi in a folder on my computer. 2. I directed Codex to access the folder and read the syllabi. 3. I asked Codex to create a spreadsheet with the course name, assignment, due date, and a completed column with a checkbox. 4. I reviewed the resulting spreadsheet, which included all of the assignments and was easy to sort and filter. 5. My daughter now spends a few minutes checking the spreadsheet and is ready for her semester.

Karin Hutchinson
  • ChatGPT
2

Build a Local Creative Research Database with GPT and PeopleSparkles

I built a workflow called PeopleSparkles for researching people connected to creative fields, schools, collectives, residencies, local art scenes, and cultural networks. The workflow starts from a defined group of people, for example teachers, alumni, artists, current or former members of an association, residents, or associates connected to a specific academy, organization, or cultural scene. A typical research request can be as simple as: “Look at this art website and identify all current and former residents and associates. Build a list. Then research them in batches of ten, checking their websites and other relevant sources, and write a short description of their work. Deliver the results in a format that can be imported into my local database.” Before each new research run, I provide GPT with a ZIP containing the current state of the PeopleSparkles database. This means the research starts from the existing corpus rather than from scratch. New people can be added, existing entries can be expanded, and previously researched people can be recognized before new material is prepared for import. The actual database lives locally on my computer. Apart from the initial development of the code and the research needed to create new lists of people, the database itself runs locally. Once a new batch has been researched and imported, browsing, organizing, scoring, annotating, and using the material does not require the whole corpus to be sent back for analysis. The database also generates a human-readable HTML version with a designed layout, so the research is not trapped inside raw data or spreadsheets. I can browse the people and their notes visually as a small personal research publication, while the underlying structured data remains available for future additions and processing. The “Sparkles” part is personal. I can add my own notes and scores to each person to capture whether their work sparked something in me, and if so, how. That might be curiosity, recognition, inspiration, aesthetic attraction, a strong question, a surprising association, or simply the desire to look again. This means the database does not only record who someone is and what they make. It also records my evolving relationship to their work. Over time, that creates a second layer on top of the research corpus: not just a map of creative people, but a map of resonance. The database also includes a “Surprise me” function that brings up a person from the collection without me choosing them deliberately. This helps break habitual search patterns and allows older, less obvious, or previously overlooked entries to resurface. Someone I barely noticed months ago can suddenly become relevant in a completely different creative context. The purpose is not to create conventional biographies. I am interested in the sparks around a person: what they make, the media and themes they work with, the organizations or people they connect to, and which traces may lead somewhere unexpected. This is particularly useful for creative ecosystems where information is fragmented across artist websites, academy pages, exhibition archives, old posters, association websites, interviews, catalogues, and small cultural organizations. The workflow gathers those fragments into a cumulative research corpus. It also allows the research to grow organically. One artist may lead to a collective, a teacher to a former student, an exhibition to another maker, or an old membership list to someone whose work would never have appeared in a conventional search. In simple terms: existing local database → new source or people list → GPT-assisted discovery and research in batches → import-ready structured data → local database → HTML browsing, notes and scores → surprise rediscovery → new creative connections The result is a living creative research database that combines external research with personal resonance, so I can not only discover people, but also trace which work actually sparks something in me over time.

Fien De Waele
  • ChatGPT
2

AI Lead Qualification and Follow-Up Workflow

I use this workflow to handle new business enquiries by connecting AI to the actual business process instead of using AI as a standalone chatbot. The process moves each lead from AI qualification to a CRM update, sales notification, and follow-up. AI extracts the service required, budget, location, and urgency, then routes the lead based on the result: - High intent: Notify sales immediately - Medium intent: Start an automated follow-up - Low intent: Add the lead to a nurture sequence Step-by-step: 1. Capture the new business enquiry. 2. Use AI to extract the service required, budget, location, and urgency. 3. Update the CRM with the qualification details. 4. Route the lead according to its intent level. 5. Notify sales immediately for high-intent leads, start automated follow-up for medium-intent leads, and add low-intent leads to a nurture sequence.

Hashim khan
  • ChatGPT
1

Build a Full-Stack Bot Reaction Engine with Claude and Cost Controls

Faceplant is a real full-stack app, not a mockup. It uses a FastAPI and PostgreSQL backend, a React and MUI frontend, and the Anthropic API (Claude) to power bot replies. The core is the reaction engine. When a human posts, the backend schedules two timed waves of reaction jobs. A background scheduler built with APScheduler polls for due jobs, calls Claude for an in-persona reply, and writes that bot’s comment and like. The 56 personas are stored as data in a roster file. Adding a voice requires only one new entry, so the crowd can scale without additional code. A subset of the personas are GIF-first bots: they ask the model for a caption and search tag, then pull a matching GIF from Giphy. The part I’m proudest of is the honesty layer. Every Claude call is metered and priced, and “The Meter” rolls the data up live with the cost per post, the dollar-per-minute burn rate, and a “spent on nobody” line for bot-to-bot chatter with no human at either end. A “% human” badge drains toward “dead internet” for each thread. The dead-internet loop—bots posting and replying to one another with no human present—is disabled by default and protected by three guardrails: generation decay, a per-thread cap, and a global spend kill switch. Optional cost controls include the Message Batches API at half price and prompt caching for a shared house-style prompt. The whole project is a working demonstration that manufactured engagement is cheap to produce and expensive to mean anything. Step-by-step: 1. I built the app with a FastAPI and PostgreSQL backend, a React and MUI frontend, and Claude replies powered by the Anthropic API. 2. When a human posts, the backend schedules two timed waves of reaction jobs. 3. APScheduler polls for due jobs and triggers Claude to generate an in-persona reply before writing the bot’s comment and like. 4. I keep the 56 personas in a roster file so adding a voice requires only one new data entry. 5. For GIF-first bots, I have the model generate a caption and search tag, then use that tag to pull a matching GIF from Giphy. 6. I meter and price every Claude call, then display live cost per post, dollar-per-minute burn, “spent on nobody” costs, and the “% human” status for each thread. 7. I keep bot-to-bot activity disabled by default and limit it with generation decay, a per-thread cap, and a global spend kill switch. 8. I can reduce costs further with the Message Batches API at half price and prompt caching on a shared house-style prompt.

Ben McOsker
  • Claude Code
  • Claude
4

Build an Incremental Archive for ChatGPT Conversation Exports

I built a workflow for turning large ChatGPT conversation exports into a usable personal and creative archive instead of simply storing them as backups. The archive is processed incrementally. The inventory is built offline, and conversations that have already been indexed are not needlessly reanalyzed on every run. Each new export is compared with the existing archive, and only newly added conversations or conversations that have been revisited, extended, or otherwise changed are processed again and updated in the inventory. This keeps the workflow lightweight while allowing the archive to evolve over time. A conversation can remain stable for months, then become relevant again and receive new material without forcing the entire archive back through analysis. This matters because many of my conversations are long, layered thinking sessions: creative explorations, project development, research, problem-solving, or extended reflection. Without an inventory, the depth inside those individual conversations and thinking processes becomes difficult to retrieve later. The workflow makes long-form analysis and creative thought processes findable and reusable without flattening them into a few generic summaries. On top of the inventory, I use lightweight “blubscans” (analysis to improve retrieval): small, human-readable summaries that capture what mattered during a day or period without replacing the original conversations. They act as a navigational layer between thousands of raw messages and the things I may want to find, understand, revisit, or continue later. The important principle is that compression never becomes deletion. The raw conversations remain the source of truth, the inventory provides structure, and the scans provide context and tone. The result is more than a backup system. It becomes working creative memory: something I can preserve, search, revisit, connect across time, and reuse for projects, research, writing, pattern-finding, and future creative work. In simple terms, the structure is: raw exports → offline incremental inventory → blubscans/context layer → retrieval and reuse for later projects and creative work That way, the archive stays deep without becoming heavy, and useful without constantly reprocessing everything that was already understood. Step-by-step: 1. I collect large ChatGPT conversation exports as the raw source material for the archive. 2. I build and maintain an offline inventory of the conversations that have been indexed. 3. With each new export, I compare the conversations against the existing archive. 4. I process only newly added conversations and conversations that have been revisited, extended, or otherwise changed. 5. I update the inventory with the results while leaving stable conversations untouched. 6. I create lightweight “blubscans” with small, human-readable summaries of what mattered during a day or period. 7. I use the raw conversations as the source of truth, the inventory for structure, and the scans for context and tone. 8. I retrieve and reuse the archive for projects, research, writing, pattern-finding, and future creative work.

Fien De Waele
  • ChatGPT
  • Microsoft Excel
2

Build a Self-Hosted AI Wine Cellar App with Docker and Claude

I built a self-hosted wine cellar app that runs in a Docker container on my home NAS and doubles as a personal AI sommelier. I add a bottle by taking a photo of its label with my iPhone. A vision model identifies the wine, vintage, region, and grape varieties, while a second model estimates its market value and writes tasting and pairing notes. The app renders a visual map of my rack, so I can see exactly where each bottle is and pull one without hunting. My ratings feed a taste profile built from my own history, which the AI sommelier chat uses to answer questions such as what to open with dinner or which bottles are drinking at their peak. The feature I use most is Scan & Check. When I’m in a store, I photograph a bottle and get a Collection Fit score based on my profile before buying it. The app also exposes an MCP endpoint, so Claude can search my cellar, score a wine, or list my top-rated bottles from any conversation. I built it almost entirely with Claude Code and use it daily from my phone. Step-by-step: 1. I run the wine cellar app in a Docker container on my home NAS. 2. I photograph a bottle’s label with my iPhone when adding it to the collection. 3. A vision model identifies the wine, vintage, region, and grapes, and a second model estimates market value and generates tasting and pairing notes. 4. I use the app’s visual rack map to locate bottles by slot. 5. I rate wines so the app can build a taste profile from my history. 6. I use the AI sommelier chat to choose what to open, including bottles that are drinking at their peak. 7. I use Scan & Check in stores to photograph potential purchases and review their Collection Fit score. 8. I connect to the app’s MCP endpoint so Claude can search my cellar, score wines, and list my top-rated bottles from a conversation.

Ray Toth
  • ChatGPT
  • Claude Code
3

AI Archery App for Arrow Detection, Grouping, and Scoring

I built an archery app that uses AI to detect arrows and bullseyes on an archery target. It groups the arrows, measures how tight the groupings are, and calculates each arrow’s distance from the bullseye. It also shows the arrows’ locations and their relationship to the bullseye—for example, whether a shot is too far left, right, high, or low, or is dead on. The app can use targets from competition standings to score a shoot according to different standards. After shooting a set of arrows, the archer takes a photo, and the AI detects the target, identifies one or more bullseyes, predicts which arrows are intended for each target, and completes the measurements and scoring almost instantly. The results can then be sent to a coach, who can provide feedback, tips, and techniques to help improve the archer’s shooting. I trained my own model using 3,000 photographs that I took and hand-labeled with the bullseyes and arrows identified. I ran a series of training sessions over several weeks and refined the model to improve its accuracy. It currently achieves about 95% accuracy for arrows and about 90% accuracy for bullseyes. Step-by-step: 1. I took 3,000 photographs of archery targets. 2. I hand-labeled the arrows and bullseyes in those photographs. 3. I trained my own AI model in a series of sessions over several weeks. 4. I refined the model to improve its detection accuracy. 5. An archer shoots a set of arrows and takes a photo of the target. 6. The app detects the target, one or more bullseyes, and the arrows, then predicts which arrows are intended for each target. 7. The app groups the arrows, measures grouping tightness and distance from the bullseye, identifies each arrow’s position relative to the bullseye, and scores the shoot according to the selected standard. 8. The results are sent to a coach for feedback and advice on improving the archer’s shooting.

Sam Reti
  • Claude Code
4

Build an Energy-Aware Content Publishing System

I’m designing a publishing system that keeps producing value without requiring constant output. This workflow started with frustration about the usual content model: publish constantly, stay visible, feed the algorithm, and repeat. That model works poorly when my energy varies, my interests shift, and forcing output quickly turns creativity into maintenance. Instead of asking, “How do I post more?” I’m asking: “How can content keep moving without requiring me to keep producing at the same pace?” The system is built around uneven energy. During high-energy periods, I can generate ideas, draft pieces, collect fragments, or prepare several posts at once. During low-energy periods, existing material does not become a failure state. It can sit, mature, be lightly edited, be reused, or simply wait. Ideas can exist in different stages: a note, a half-developed thought, a finished piece, something worth revisiting later, or something that can be repurposed in another format. Older material is not automatically “used up” after publication. A long-form idea can become a short post. A workflow can become a case study. A conversation fragment can become an essay seed. A previous post can return later from a different angle. The goal is not to build a machine that constantly demands feeding. It is to create a content reservoir I can draw from when I have the capacity. This workflow has not been fully implemented yet, but the design principle is useful: > Build around energy reality, not around imaginary consistency. Content should fit into life. Life should not be reorganized to serve the content treadmill. Step-by-step: 1. I design the publishing system around variable energy rather than a constant production schedule. 2. During high-energy periods, I generate ideas, draft pieces, collect fragments, and prepare several posts at once. 3. During low-energy periods, I let existing material sit, mature, receive light edits, be reused, or wait. 4. I allow ideas to remain in different stages, from notes and half-developed thoughts to finished pieces and material worth revisiting later. 5. I repurpose older material across formats, such as turning a long-form idea into a short post, a workflow into a case study, a conversation fragment into an essay seed, or a previous post into a new angle. 6. I draw from the resulting content reservoir when I have the capacity instead of constantly feeding a content treadmill.

Fien De Waele
  • ChatGPT
2

Automate Late Invoice Reminder Drafts with Claude Cowork

I built a workflow that prepares late invoice reminder emails for me. Our industry has tight margins, and our back end is rudimentary with limited capabilities, so sending these reminders was annoying, repetitive manual labor. I had Claude Cowork walk me through creating an agent that logs in every Monday night, checks our late AR, and compares the customer names against a Google Sheet list I created. It uses an email template I provided, adds the contact name from the Sheet, and includes each late invoice’s identifying number, amount, and due date. The agent puts the emails in my Drafts folder and emails me a report showing which customers were included, how much each one owes, and the totals. All I have to do is review the drafts, confirm everything looks good, and hit Send. This has saved me about an hour every Monday night of tedious, repetitive manual labor. Step-by-step: 1. I created a Google Sheet with the customer names and contact names. 2. I had Claude Cowork walk me through creating an agent that logs in every Monday night. 3. The agent checks our late AR and compares the customer names against the Google Sheet. 4. It uses my email template and adds the contact name, invoice identifying number, amount, and due date. 5. It places the completed emails in my Drafts folder. 6. It emails me a report listing the included customers, the amount for each, and the totals. 7. I review the drafts, confirm that everything looks good, and send them.

Michel
  • Claude Cowork
  • Google Drive
  • Google Calendar
2

Human-Directed AI Music Workflow From Idea to Release

I built a repeatable, human-directed AI workflow for turning an original emotion, memory, or story into a finished WazWorld song, complete with cover artwork and release content. It addresses one of the biggest problems with AI music: a simple prompt can produce something technically impressive but generic, overproduced, or disconnected from the creator’s real intention. The workflow begins with a human trigger—an experience, relationship, place, mood, or musical idea that I genuinely want to express. WazWorld generally moves between dark alternative/electronic music and California coastal country-rock. Step-by-step: 1. I create a detailed artistic brief describing the song’s emotional core, story, genre, energy, vocal character, instrumentation, arrangement, dynamics, and intended listener experience. 2. I work with ChatGPT to develop and challenge the concept, write and rewrite lyrics, remove clichés, and design the full arrangement. This includes the intro, verses, choruses, instrumental passages, transitions, musical peaks, and outro. ChatGPT also helps translate my direction into precise production language and exclusions that Suno can understand. 3. I generate versions in Suno, treating each result as a demo rather than a finished song. I evaluate the vocal delivery, lyrics, bass, guitars, synths, drums, tempo, arrangement, and emotional impact. Then I make targeted prompt changes and generate new versions. A song may go through dozens of iterations before it sounds the way I originally heard it in my head. 4. After selecting the final music, I use ChatGPT and AI image generation to develop cover artwork that matches the song’s emotional identity. I adapt the artwork for streaming, YouTube, Instagram, Stories, and Shorts, then create the metadata, descriptions, captions, and promotional material needed for release. 5. I distribute the finished music through services such as DistroKid and publish it across streaming and social platforms. The final result is not a one-click AI song. AI provides creative and production tools, but I direct every major decision—from the original emotion and lyrics to the arrangement, instrumentation, vocals, artwork, and release strategy. Someone can recreate this workflow by starting with a clear human idea, documenting the desired sound, generating multiple versions, evaluating each one like a producer, and iterating until the finished work communicates the original intention.

Wayne Freeman
  • ChatGPT
2

Build WarrantKit to Kill Switch AI Agents with Epoch-Based Authority Revocation

I built WarrantKit, an open-source (Apache-2.0) kill switch for AI agents. Each agent run receives a Warrant: a typed contract that specifies what the agent may do, for how long, and under which policy. A gateway checks every action before it reaches the outside world. When containment triggers, the runtime’s epoch advances, immediately invalidating every Warrant issued under the old epoch instead of allowing it to linger until a timer expires. Evidence of what happened remains separate from authority, and receipts can be verified offline with a standalone Python script. I designed the architecture and threat model, then used AI coding assistants for most of the implementation. I reviewed everything against an adversarial test suite and a real-host enforcement demo that others can run themselves. Before writing the mechanisms, I wrote tests for the attacks: replayed runtime reports, tampered event sequences, evidence attempting to upgrade itself into authority, and authority carried across execution boundaries. The suite has 202 passing tests, and several core behaviors exist because a test caught the system trusting too much. One example is a recovered runtime carrying a stale report into a new epoch. I then proved enforcement on a real Linux host with a cgroup-v2 real-kill demo before claiming it. The no-root demo is simulated, and the README says so. It also lists what WarrantKit is not. The architecture is layered: WarrantKit owns the authority lifecycle and verification; AgentContainment owns the enforcement boundary; and Warden, DProvenanceKit, and ClaimProofKit record evidence independently. Step-by-step: 1. I defined a Warrant as a typed contract specifying an agent’s permitted actions, duration, and governing policy. 2. I placed a gateway in front of the outside world so it checks every agent action before allowing it through. 3. I made containment advance the runtime’s epoch, invalidating every Warrant issued under the previous epoch immediately. 4. I kept evidence separate from authority and made receipts verifiable offline with a standalone Python script. 5. I wrote adversarial tests for replayed runtime reports, tampered event sequences, evidence attempting to become authority, authority crossing execution boundaries, and stale reports carried into a new epoch. 6. I implemented the system with help from AI coding assistants and reviewed the implementation against the test suite and a real-host enforcement demo. 7. I validated enforcement on a real Linux host with a cgroup-v2 real-kill demo, while clearly labeling the no-root demo as simulated in the README. 8. I kept authority lifecycle, enforcement, and evidence recording in separate architectural layers using WarrantKit, AgentContainment, Warden, DProvenanceKit, and ClaimProofKit.

Danny Kissel
  • ChatGPT
4

Build a Self-Hosted AI RSS Briefing with OpenAI Embeddings

I built SITREP, a self-hosted AI RSS reader that turns roughly 30 articles a day into a single briefing I can act on. It runs in a Docker container on my home NAS, ingests full article text instead of the teasers most feeds provide, and uses OpenAI embeddings to collapse the same story reported by five outlets into one item. Every morning, it writes “The Brief” with the sections Headline, Defense & Aerospace, AI & Tech, and Elsewhere, followed by the two sections I care about most: Implications for my company and Personal Leverage. Each section includes numbered citations linking back to the source articles. SITREP only proposes leverage when the evidence supports it. It also uses a curated, non-sensitive profile of my business lanes and priorities, synced from my Obsidian vault, so its recommendations are specific to my work as a defense-industry VP rather than generic advice. I can select Update Brief at any time during the day to regenerate the briefing in place with a timestamp. Step-by-step: 1. I run SITREP in a Docker container on my home NAS. 2. I have it ingest the full text of roughly 30 articles each day rather than relying on feed teasers. 3. I use OpenAI embeddings to identify and combine the same story when it is reported by multiple outlets, including cases where five outlets cover it. 4. Each morning, SITREP generates “The Brief” with the sections Headline, Defense & Aerospace, AI & Tech, and Elsewhere. 5. It adds Implications for my company and Personal Leverage, using my curated, non-sensitive business profile and priorities synced from Obsidian. 6. It includes numbered citations to the source articles and proposes leverage only when the evidence supports it. 7. I select Update Brief during the day when needed, and SITREP regenerates the briefing in place with a timestamp.

Ray Toth
  • ChatGPT
2