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 as a Game Master for Two-Player Tabletop RPGs

I’m retired and in my early 70s. I never got into RPGs growing up, but I decided to try a tabletop RPG with my wife. The game I purchased included a rulebook and a PDF of the book. I wanted my wife and me to play as the player characters without either of us having to be the game master, so I tested whether AI could take on that role. I used ChatGPT to parse the PDF and walk us through the process. It helped us create our characters, Heisenberg and Felicity, and then started the game as the game master. We’ve only just started, but it seems like this is going to work well. The AI can keep secrets to itself, roll the dice when needed, and guide us through the adventure. Step-by-step: 1. I purchased a tabletop RPG that included a rulebook and a PDF of the book. 2. I used ChatGPT to parse the PDF and walk us through the process. 3. ChatGPT helped my wife and me create our player characters, Heisenberg and Felicity. 4. We had ChatGPT start the game as the game master so neither of us had to fill that role. 5. We began playing while ChatGPT kept secrets to itself, rolled the dice when needed, and guided us through the adventure.

Phillip Porch, MD
  • ChatGPT
  • Codex
  • Grok
3

Build a Family Gift-Pool App with Claude and Recover from Data Loss

For years, my family has run a shared birthday fund: five of us contribute a fixed amount for each birthday, while the person whose immediate family is celebrating that month is exempt from paying. Tracking everything in a payment app and a chat thread meant nobody knew the balance, who was behind, or what the next gift would cost. I rebuilt the fund as a small web app with Claude. The app itself isn't the only reason I'm writing this up. The same build is also the demo I use to teach clients and students how AI-assisted product development actually works, including the parts that go wrong. Step-by-step: 1. I described the real rules instead of presenting Claude with a generic app idea: the contributors, the fixed amount per person, the family-exemption rule, and birthdays with birth years so ages could be calculated automatically. Claude built the app as a single, self-contained HTML file with no build step or server, so it opens in any browser. 2. I worked in phases and asked Claude to explain its reasoning at each stage. Instead of using one giant prompt, I added one layer per session: the calculation engine, the setup screen, then reports and CSV export. The explanations made the sessions reusable as teaching material. 3. I required the app to be configured through its own interface rather than by editing code. This was the turning point. Claude removed the hardcoded demo family and added a full setup screen for the group name, contributors, deposits, birthdays, amounts, and alerts. I can now build a family from scratch live in front of a class in about [X] minutes without showing a line of code. 4. I let a data-loss incident shape the next phase. I entered the real family data, then the browser tab closed and the download link I had been using to open the file broke. The data was stored in browser storage tied to that exact URL, and I had no backup. Nothing was recoverable at the time. 5. I turned that failure into features. Claude added CSV export for both reports, CSV import that automatically detects which file it is reading, and a backup reminder that appears in the app's alert banner when the data has never been backed up or has not been backed up for seven days. We also discovered that birth year was missing from the export, which meant a re-import would have silently lost everyone's age. 6. I had Claude test its own work. Before each handoff, it ran a jsdom test suite in a sandbox. By the end, the suite had 46 tests covering the exemption math, empty states, CSV round-trips, and backup logic. Several real bugs surfaced there instead of in front of a class. 7. I made a second version for a different audience. One prompt produced a fully English, left-to-right translation with flipped directional CSS, Latin typography, US date formatting, dollars instead of shekels, and Venmo and Zelle instead of local payment apps. It was a genuinely different build, not a find-and-replace translation. The project took 14 sessions over one week and six hours total. It had no hosting cost, dependencies, or accounts. The data still lives in the browser's local storage on each device. Opening the file on my phone and laptop creates two unrelated pools, so CSV import is the manual bridge between them. There is no authentication or sync; this is a personal record-keeper, not shared infrastructure. The data-loss incident was not a Claude failure. I failed to build a backup path before entering real data. If I did it again, I would add export before adding a single feature. The highest-leverage prompt in the whole project was not a feature request. It was: "let me configure this through the interface instead of the code." That shift turned a static demo into something my family actually uses and my students can watch being built from an empty screen. The broader point is that the failure was the most useful part of the project. A polished demo teaches people that AI makes building easy. Losing the data and rebuilding the safety net around it teaches them what building actually involves—and that is the lesson that survives the workshop.

Ran Shinar
  • Claude
7

Use ChatGPT to Prepare a French House for Short-Term Rental

We used ChatGPT to make renting out our house in France for the first time far less overwhelming. By the end of the summer, we had hosted four families. Although the whole process was a lot of work, creating one master file with useful facts about the house was a major time-saver. It included everything from Wi-Fi and coffeemaker instructions to lighting quirks and bin days. From that document, AI built a room-by-room preparation checklist, drafted and translated a house guide in French and English, wrote separate listings for Airbnb and a local rental site, and created guest messages ranging from booking confirmations to check-in instructions. For pricing, we spoke with a local agent. AI’s final task was to flag the French administrative, tax, registration, and insurance details that we needed to sort out ourselves. Step-by-step: 1. We created one master file containing useful facts and practical details about the house, including Wi-Fi, coffeemaker instructions, lighting quirks, and bin days. 2. We used the file to have AI create a room-by-room preparation checklist. 3. We asked AI to draft and translate a house guide in French and English. 4. We had AI write separate rental listings for Airbnb and a local rental site. 5. We used AI to create guest messages, including booking confirmations and check-in instructions. 6. We met with a local agent for advice on pricing. 7. We asked AI to flag the French administrative, tax, registration, and insurance details we needed to handle ourselves. 8. By the end of the summer, we had hosted four families.

Jennifer Mossalgue
  • ChatGPT
0

Use Mindtrip to turn saved travel content into a day-by-day itinerary

Planning a trip often meant piecing together information from a dozen different places. I might save inspiration from Instagram Reels and carousels, bookmark useful links in my browser, receive booking confirmations as PDFs from different platforms, and have tickets spread across emails and travel apps. By the time the trip got closer, I had all the information I needed—but no easy way to see it together or turn it into a coherent plan. I recently started using an AI travel tool called Mindtrip to solve this. It’s free and brings my saved content, links, bookings, PDFs, and tickets into one place. Mindtrip uses AI to understand the context and organize everything into a single trip, including the tips and hacks in Instagram Reels. It then creates a day-by-day itinerary based on what I’ve saved, liked, and booked. I have one place to see, manage, and adjust my entire trip instead of constantly switching between different sources. It also provides reminders and checklists based on my plans, along with a map view of where I’m supposed to be going. Step-by-step: 1. I saved travel inspiration from Instagram Reels and carousels, bookmarked useful links, and collected booking confirmations, PDFs, and tickets from different platforms, emails, and travel apps. 2. I brought the saved content, links, bookings, PDFs, and tickets into Mindtrip. 3. Mindtrip used AI to understand the context and organize everything into a single trip, including tips and hacks from Instagram Reels. 4. I used the resulting day-by-day itinerary, based on what I had saved, liked, and booked. 5. I used Mindtrip’s reminders, checklists, and map view to manage and adjust the trip in one place.

Shubham Sharma
1

Build Three Interconnected Ministry Websites with GitHub, Vercel, Cloudflare, and Supabase

I built three interconnected websites for the Solomon for Jesus ministry. The first, solomonforjesus.com, houses the shining jewel: an AI chatbot named Solomon. The second, solomonforjesus.net, is a ministry academy with four levels of instruction and 16 lessons per level. The third, solomonforjesus.net, is home to my book *Fingerprint of Reality* and other articles and essays. All three websites are still in development, but they are operating and publicly available. I use GitHub repositories for coding, Vercel for hosting, Cloudflare for domains, and Supabase for back-end security. Step-by-step: 1. I built three interconnected websites for the Solomon for Jesus ministry. 2. I used solomonforjesus.com for the Solomon AI chatbot. 3. I used solomonforjesus.net for the ministry academy, which contains four instructional levels with 16 lessons per level. 4. I used solomonforjesus.net for my book *Fingerprint of Reality* and other articles and essays. 5. I use GitHub repositories to code, Vercel to host, Cloudflare for domains, and Supabase for back-end security. 6. I keep all three websites operating and publicly available while they remain in development.

Anon Giraffe
1

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

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 Custom Wedding RSVP and Seating Chart Workflow

Every RSVP tool I found wanted a monthly subscription to collect a few hundred yes-or-no answers, and none would return my data in a format I could use. So I built my own with Claude Code. The RSVP system is small: a form deployed on Vercel and embedded into our wedding website. We also emailed the direct link because plenty of guests might never visit the site. The form asks for more than a yes-or-no response. It collects meal choices, dietary restrictions, and plus-ones. Every submission adds a row to a Google Sheet through the Sheets API. That sheet ended up mattering more than the app. Months later, when it was time to create the seating chart, every guest was already represented in clean, structured rows that I could give to a completely different tool. For seating, I opened the same sheet in Claude and wrote out the rules in plain English: who had to sit together, who could not sit anywhere near each other, which relatives needed a quiet corner, and which friends could anchor a table of people who did not know anyone else. Claude produced a first draft that respected those constraints, along with an interactive board where I could drag people between tables. Step-by-step: 1. Tell Claude Code which fields you want on the RSVP form and have it build the front end and back end. Have Claude deploy it to Vercel. 2. Set up a Google Cloud service account, enable the Google Sheets API, and share the sheet with the service account’s email address. Configure each submission to append a row. 3. Embed the form on your wedding website and email the direct link separately. Some people will never open the website. 4. Ask for everything you will eventually need, not just attendance. Your caterer and venue will want meal counts and dietary restrictions, and going back to collect that information later is miserable. 5. When it is time to seat people, point Claude at the same sheet and write your rules in plain language: who must sit together, who cannot sit together, who needs a quiet table, and who can anchor a table of strangers. 6. Have Claude generate a first draft based on those rules, then move people yourself. This works anywhere you have a public form collecting data and a private tool that needs to reason about it. Put a spreadsheet between them instead of building one app that tries to do both. The form stays simple, and whatever you build six months later can read from the same place.

Dean Mazlish
  • Claude Code
4

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

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

Clean Up Near-Duplicate Artwork Photos with an AI Visual Checklist

Clean up near-duplicate artwork photos with a visual checklist THE PROBLEM I had hundreds of photos of my handmade collages. Some showed the same work photographed at different times, from different angles or against different backgrounds. Others were cropped versions, detail shots or useful making-of photos. The duplicate finder in my image manager missed real matches and suggested unrelated collages instead. Simply keeping one file from each group would also have thrown away useful material. THE WORKFLOW 1. Export a working set and preserve the filenames. I exported the images from Eagle. Smaller copies made the collection easier to upload, while the original-resolution files stayed on my computer. Keeping the filenames intact made it possible to apply decisions to the originals later. 2. Ask AI to compare the artwork, not just the whole photograph. The comparison looked for matching local image details and their relative positions. This helped connect photos despite changes in angle and background. Candidate groups still needed review: two collages might contain the same clipping, and a detail photo might overlap with a wider shot without being redundant. 3. Turn the results into a visual decision page. The AI produced a standalone HTML file with photos grouped side by side and their original filenames underneath. I requested a “Keep” checkbox beneath each candidate and a category dropdown: “Collage” or “Making of”. Multiple images could stay in either category. One photo might show one part clearly while another preserved a different part better. I made the decisions; the AI did not choose a winner automatically. 4. Validate and export my choices. The page flagged any group with nothing selected and any selected photo without a category. Photos without a confirmed match were preserved separately. A download button exported my decisions as a small JSON file, which I sent back to the AI. 5. Generate a local cleanup script from that exact selection. The resulting Windows script checks the expected files, asks me to confirm the folder, sorts the retained photos into “collages”, “making of” and “loose items”, and sends rejected photos to the Recycle Bin. It targets the ordinary export folder, not Eagle’s internal library. The loose items can then be sorted manually before reimporting. WHAT THIS PRODUCED From 296 photos, the review grouped 204 into 90 candidate groups and left 92 without a confirmed match. My final choices retained 96 collage photos and 23 making-of photos, plus all 92 loose items: 211 retained, 85 designated for removal. The checklist and selection were completed, and the script was generated. At the time of writing, I had not yet run the cleanup on Windows. WHY IT HELPED The key was separating three jobs: finding likely matches, deciding what matters, and applying those decisions to files. “The same artwork” does not necessarily mean “an unnecessary photo”. A visual checklist let me make those distinctions without manually tracking filenames. STARTER PROMPT “I have photos of the same artwork taken from different angles and against different backgrounds. Find candidate matches using details within the artwork, and distinguish duplicates from details, changed versions and making-of photos. Create a standalone HTML review page with original filenames, a Keep checkbox and a category dropdown for each candidate. Allow multiple retained photos per category. Flag empty groups and selected photos with no category. Preserve unmatched images. Let me export my choices as JSON. After I return the selection, generate a script that validates the original filenames, sorts retained files into the chosen folders and moves only rejected files to the Recycle Bin after showing the target folder and counts. Do not choose or delete files on my behalf."

Fien De Waele
  • ChatGPT
  • Google Drive
2

Turn Granola Meeting Notes Into Notion Tasks With Claude

I have a lot of calls, and follow-ups were the first thing to get lost once my day filled up. Granola notes helped, but I still had to remember to go back and read them. I connected Granola, Claude, and Notion, then set up a scheduled task in Claude. Every day at 6 p.m., it reviews that day’s Granola meeting notes, finds any to-do items or commitments I made, and creates them as tasks in my Notion to-do list. Step-by-step: 1. I connected Granola and Notion to Claude through Settings > Connectors. 2. I created a scheduled task with a prompt like: "Read today's Granola meeting notes. For each action item assigned to me, create a task in my Notion to-do database with the meeting name and date." 3. I set the task to run daily at the end of the day.

Brooke Benson
  • Granola
  • Notion
  • Claude Cowork
0

Track Energy, Pain, and Mood Fluctuations with GPT

I built a workflow called InnerWeather to help me understand fluctuations in energy, pain and mood over time, in the context of neurodivergence and a chronic muscular pain condition. The workflow creates lightweight daily scans and a weekly overview. Its purpose is not to diagnose symptoms or pretend that every change has a single cause. Instead, it helps make patterns visible across time: when energy drops, when pain increases, when stimulation or emotional load seems higher, how recovery unfolds, and which combinations tend to appear together. The daily scans are possible because I naturally talk to GPT throughout the day, sometimes in very short updates and sometimes in longer conversations, about how things are going, what I am doing, how my body feels, how much energy I have, and what seems to be affecting me. InnerWeather uses those scattered moments as observational material. It does not require me to fill in a formal tracker several times a day. The information is already present in the conversations I am having. The daily scans do not reduce an entire day to one fixed state. They map changing moments across the day, using colour-coded states and paying attention to common transitions between them. That makes it possible to see not only how I felt, but how my internal state moved: whether high stimulation tends to be followed by fatigue, whether pain appears after certain kinds of activity, or whether a low-energy period gradually shifts into recovery. This matters because capacity can vary significantly within one day. A difficult morning does not necessarily define the whole day, and a good afternoon does not erase what happened before it. The workflow is also explicit about uncertainty. If there was not enough input during a particular day to support a meaningful observation, the daily scan says so rather than filling in the gaps. The same applies to the weekly overview: if the available material is too sparse or uneven to support a pattern, that limitation is recorded instead of turning absence of information into a conclusion. The weekly overview brings the daily fluctuations together and looks for recurring sequences, transitions, clusters and recovery patterns across the week rather than treating each day as an isolated event. An important part of the workflow is that the weekly review is also collaborative. When the overview is generated, I use it as a starting point to think together with GPT about what patterns seem to be emerging, whether the current colour codes and transitions are capturing them well enough, and what might need to change in the workflow itself. That means InnerWeather is not a fixed tracker. The task evolves with the patterns it is trying to observe. If a recurring state, transition or distinction is missing, we can refine the categories, adjust the scan, or change the weekly interpretation so the system becomes better at representing what is actually happening. The aim is practical rather than medical: to get a more realistic sense of capacity and recovery over time, so I can make better decisions about pacing, rest, creative work, appointments, and how much I can reasonably take on. I especially like that the workflow treats fluctuations as information rather than failure. Instead of asking only, “Why was I worse today?”, it can reveal a broader sequence: what came before, how the state changed, how long it lasted, and what recovery looked like afterwards. Over time, InnerWeather becomes both a personal pattern archive and an evolving observation tool. In simple terms: day-to-day conversation → colour-coded fluctuation map → transitions across the day → weekly pattern review → collaborative interpretation → refine the task → better future scans The goal is not to predict my body perfectly. It is to keep improving the map while remaining honest about what the available information can and cannot support.

Fien De Waele
  • ChatGPT
2

Recover Songs, Books, and Videos from Vague Memories

Sometimes I remember something perfectly badly: not its title, creator, or where I found it, but a sound, a color, a vague cover, a sentence, or a period in my life. I know it exists because I loved it, but I cannot name it. I use AI and my digital traces to recover songs, books, videos, articles, and quotes. Memory is not a catalog; it stores traces. AI can turn those traces into searchable hypotheses. Step-by-step: 1. I dump every surviving clue without waiting for a proper search query. The clues can be as rough as “The title sounded like nu nau tau,” “It was ambient or humming,” “The cover was maybe a green desert?” or “I knew it around 2019.” Another example is: “A book about makers and Disney. White 3D-printed figures, tiny people, and bears on a blue cover.” This is raw memory evidence. 2. I separate certainty from guessing by labeling each clue as certain, fairly sure, possible, or probably distorted. I keep uncertain clues, but do not treat them as facts. A wrong attribution or outdated cover does not invalidate everything else. 3. I reconstruct the original encounter. I ask where I was and whether I Shazamed it, saved it, sent it to someone, screenshotted it, or bought it at a book fair. In one case, I remembered hearing a song in someone’s car and Shazaming it because I could not parse the pronunciation. Remembering that capture action pointed to a retrieval source. 4. I search my own collections first: playlists, liked songs, Shazam history, saved videos, old posts, messages, bookmarks, notes, photos, receipts, and reading lists. The object may already be there under metadata I no longer remember. I start with the smallest reliable fragment. 5. I search for “nu” inside my playlists after remembering “nu nau tau.” That recovered Man O To — Nu. The artist and title had blended into one phrase, and the song was sitting in several playlists, including my Shazam collection. A clue does not need to be complete; it only needs to be distinctive enough inside the right collection. 6. I allow memory to scramble metadata. An artist and title may merge, album art may become song art, and a quotation may survive with the wrong poet attached. I split remembered phrases, swap artist and title, try different word boundaries, consider older releases, and search phonetically using similar syllables, vowel sounds, homophones, alternate spellings, or other languages. I also ask what the cover looked like when I knew it, because artwork changes. 7. I use context and cross-reference traces. A year, trip, relationship, or platform can narrow the search more than a half-correct title. Spotify might preserve the song, Shazam the discovery moment, and an old message the recommendation. Old posts are accidental archives, and dead links may still leave names, dates, or descriptions. If memory fails completely, I inspect behavior from the relevant period, such as repeated listening, watch history, purchases, or library loans. 8. I let AI propose candidates and compare them against several independent clues, including sound, subject, period, cover, and personal context. One matching detail is not confirmation. I show titles, covers, creator names, and short descriptions because recognition may succeed where recall fails. Rejections also help: “No, but the cover was more minimal,” “The title was shorter,” or “It was fiction, not nonfiction.” Each correction sharpens the search. 9. I pay attention to the strangest clue. The blue cover with white figures, bears, and a makers-and-Disney theme led to *Makers* by Cory Doctorow. 10. Once I confirm the object, I save the title, creator, link, why it mattered, and how I recovered it. For example: - Clue: “nu nau tau” - Encounter: heard in someone’s car and Shazamed - Search: Spotify/Shazam collection → “nu” - Result: Man O To — Nu - Distortion: artist and title blended together This becomes a retrieval playbook: which clues survive, where traces live, and how my memory distorts them. The overall workflow is: collect fragments → mark uncertainty → reconstruct the encounter → search personal traces → try phonetic, visual, and contextual clues → compare candidates → recognize and confirm → save the result and retrieval path. I do not need to remember the database fields. I need enough fragments to rebuild the trail. Sometimes the best clue is what I did when I first encountered something. Sometimes it has been sitting in five of my own playlists while I spend years wondering what it was called. 😑😭🎧

Fien De Waele
  • ChatGPT
2

Build an Autonomous AI SDR Engine in n8n with CRM Memory

I built an autonomous, end-to-end AI Sales Development Representative (SDR) engine entirely in n8n. On a scheduled trigger, the agent calculates targeting parameters, reads long-term CRM memory to avoid duplicate outreach, searches for and qualifies prospective leads, scrapes company websites for buying signals, drafts tailored outreach emails, writes structured relational data to PostgreSQL, and reports execution summaries through Telegram—with zero manual intervention. The system is currently deployed in production for a B2B agricultural export business, generating qualified international wholesale leads on a recurring schedule. Most AI automations rely on simple linear scripts or break down when handling complex agentic tool workflows. This system addresses three common failure points: - High API costs: Re-sending large system prompts and tool schemas on every agent iteration drains tokens. - Context blindness: Agents without memory of previous contacts can send duplicate outreach. - Database crashes: Agents may hallucinate ENUM values or fail to insert nested one-to-many arrays into relational tables. The workflow uses a Cloudflare-proxied Claude Sonnet 4.6 model with prompt caching, persistent CRM memory reads, and a fault-tolerant parallel database-write architecture. The stack includes n8n as the orchestrator; Claude Sonnet 4.6 through a Cloudflare Worker proxy as the LLM core with ephemeral prompt caching; PostgreSQL for CRM contacts, intelligence, and outreach tables with custom ENUMs; SerpAPI for prospect discovery; Firecrawl for website content extraction; and Telegram for execution reporting. The workflow exposes these tools to the n8n agent: - `read_relationship_memory`: Read-only SQL access to historical contact and outreach data, preventing duplicate prospecting. - `Lead_Finder`: Searches for and identifies target prospects by country and sector. - `Scrape_Website_Content`: Extracts website content, buyer-intent signals, and objections from discovered domains. - `write_relationship_memory`: Writes leads, intelligence facts, and drafted emails to Postgres in one resilient call. Step-by-step: 1. A Schedule Trigger feeds a JavaScript “Country Calculator” node that resolves the day’s targeting parameters—region and industry focus—using ISO week rotation. This cycles outreach across markets automatically. 2. The AI Agent connects to an OpenAI Chat Model node whose Base URL points to a custom Cloudflare Worker. The worker translates OpenAI-formatted requests into Anthropic’s Messages API, enabling Claude Sonnet 4.6 while injecting ephemeral cache-control headers into the system prompt and tool definitions to reduce repeat-token costs. 3. Before researching, the agent calls `read_relationship_memory` to check relationship status and outreach history, preventing duplicate contact attempts. 4. `Lead_Finder` searches target sectors in the day’s region and returns seven filtered candidates. `Scrape_Website_Content` then visits each domain, extracts clean page text, and surfaces offerings, value propositions, and likely objections. 5. The workflow writes nested one-to-many data—multiple facts and one outreach log per contact—without item duplication or ENUM crashes. The tool schema requires a strict JSON array with exact ENUM string choices spelled out in the description. 6. A sub-workflow triggered by “When Executed by Another Workflow” splits the array, then flattens nested `contact.*` fields to root keys using JavaScript. 7. An upsert query, `ON CONFLICT (email) DO UPDATE`, writes the contact, increments `email_count` for repeats, and returns `contact_id`. 8. A “Re-attach Context” node merges `contact_id` back with the original intelligence array and outreach payload because n8n strips extra data through single-row database nodes. 9. Two parallel branches run: one inserts the outreach log with `ON CONFLICT DO NOTHING`, while the other splits and inserts each intelligence fact with defensive ENUM sanitization. This eliminates crashes and duplicate rows during retries. 10. The agent’s final output triggers a Telegram message summarizing the discovered leads, extracted facts, and drafted emails, sent directly to the operator’s phone. The result is a production-grade, self-healing AI outbound pipeline running with zero manual intervention. It maintains CRM data integrity, avoids duplicate outreach, and uses prompt caching to keep LLM costs low at scale.

Konstantinos Bampaliaris
  • Claude
4

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

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

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

Audit Open Decisions Before Generating Film Shots

Ten days ago, I posted about keeping a `HANDOFF.md` so an AI film project doesn't lose the decisions it has already made. This is the other half, and it turned out to be the expensive one: the decisions that haven't been made yet. Credit where it belongs: Tony Ojeda posted a spec-generator agent that sits between an idea and implementation. The rule I borrowed is his: the agent inspects what already exists before proposing anything. I applied it to film production instead of code. I pointed an agent at my production documents for a short film I hadn't started generating and asked it to identify what was still undecided, what each item affected, and what would break if it were decided late. It came back with ten open decisions. One of them was worth the whole exercise. My environment description is locked verbatim across all 40 shots so the world stays identical. The film is called *The Thaw*. Whether the ice visibly melts during the film is written down nowhere. If I decide that in week three, all 40 keyframes get regenerated at once. I would have found out around shot 12. The counterintuitive part is who writes the list: not me. Asking the person who already has the whole film in their head what's missing gets you very little, because they have all of it—and that's exactly why they can't see the hole. The list has to come from something that only knows what's written down. Step-by-step: 1. I put the open questions in section 0 of the handoff, above everything else, so it's the first thing read and the first thing emptied. 2. I have the agent write that list, not me. It reads every existing document for the project and returns only what it cannot know from them. 3. I have it return three things for each item: what's undecided, which shots it affects, and what breaks if it's decided late. The third column sets the priority. 4. I have it sort by what costs the most to change afterward, not by what's easiest to answer. 5. I keep one hard rule: while an open question affects a shot, that shot doesn't get generated. The question gets decided, or deferred in writing with the cost of being wrong stated. 6. Every answered item leaves section 0 through one of two doors: into the closed canon or into the rejected list. Nothing is simply deleted. 7. I ask specifically about the things that go missing every time: the rule of the world; the physical scale of anything impossible, such as whether the character can touch or climb it; any object appearing in more than one shot; screen direction; how it ends; who speaks and in what voice; and the delivery format. 8. When it finds nothing real, it says so. A list padded to look thorough is worse than an empty one. The version I'd used for a year ran at the end of a session and recorded what got decided. Running it at the start, focused on what hasn't been decided, is the same document pointed the other way—and it's the direction that saves money.

Guillermo Gómez
  • Claude Code
3

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