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.

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

Turn a Trading Card Collection Into a Digital Inventory

I use ChatGPT to turn a physical trading card collection into a structured digital inventory. I start by photographing the collection and uploading the images to Google Drive. I divide the cards into logical groups and store them in separate subfolders, creating a clear structure before identification begins. ChatGPT then works through the folders in manageable batches, using OCR and visual recognition to extract information from the cards. This avoids manually uploading and describing every card one by one. I use consistent processing rules to reduce mistakes: I limit the number of cards per batch, make sure every source image is accounted for, and use one central card per photo when identification could otherwise be ambiguous. For each card, ChatGPT helps identify and organize the information I want to keep: card name, set code, set or series, edition, rarity, language, quantity, approximate year or period, condition notes, confidence level, and the source image. The useful part is not just OCR or card recognition. It is the combination of a structured Google Drive archive, visual identification, consistency checks, and systematic data extraction across a large physical collection. When identification is uncertain, I record that uncertainty rather than silently guessing. Damaged or unusual cards can also receive specific notes, such as foil scratches, edge wear, folds, or other condition issues. Once all folders have been processed, I consolidate the separate batches into one central inventory so I can check duplicates, quantities, and inconsistencies more easily. I first used this workflow for a Yu-Gi-Oh! collection and plan to reuse the same process for a Harry Potter trading card collection. The result is a searchable, structured overview of a physical collection that can later be used for valuation, selling, insurance, cataloguing, or simply knowing what is actually in the boxes. Step-by-step: 1. I photograph the physical trading card collection. 2. I upload the images to Google Drive and divide them into logical groups stored in separate subfolders. 3. I process the folders with ChatGPT in manageable batches using OCR and visual recognition. 4. I limit the number of cards per batch, account for every source image, and use one central card per photo when needed to reduce ambiguity. 5. I extract each card’s name, set code, set or series, edition, rarity, language, quantity, approximate year or period, condition notes, confidence level, and source image. 6. I record uncertainty instead of silently guessing and add specific notes for damaged or unusual cards, such as foil scratches, edge wear, and folds. 7. I consolidate the processed batches into one central inventory to check duplicates, quantities, and inconsistencies. 8. I reuse the process for additional collections, including my planned Harry Potter trading card collection.

Fien De Waele
  • ChatGPT
  • Google Drive
  • Microsoft Excel
2

Build a Vegetable Garden Planner with Claude

I’m a nurse with no tech experience, but I’m curious and have many creative ideas. I used Claude to build a website that helps people plan which vegetables to grow based on their location, available space, and the time they have. Veggiegrowguide.com Step-by-step: 1. I identified an idea for helping people choose vegetables to grow based on their location, available space, and available time. 2. I used Claude to help me build a website for the idea. 3. I created Veggiegrowguide.com as a resource for people planning their vegetable gardens.

Anon Quokka
  • Claude Code
1

Build a Predictive Maintenance Workflow with Snowflake and MaintainX

I built a predictive maintenance workflow in Awish for one of my manufacturing clients. The client had machine telemetry, production data, and maintenance history spread across different systems. The problem wasn’t collecting the data—it was spotting failure risk early enough to act. I built a custom Awish workflow that continuously checks machine telemetry and production signals in Snowflake alongside asset, meter, and maintenance history from MaintainX. When it detects abnormal performance or increasing failure risk, it identifies the affected equipment, estimates the likely operational impact, and prepares a recommended maintenance action. Nothing is scheduled automatically at that point. The recommendation first goes to the maintenance manager in Microsoft Teams for approval. Once approved, Awish creates and assigns the work order in MaintainX, then keeps tracking and updating its status until the maintenance is completed. The useful part is that the system does not wait for a machine to fail before maintenance starts, but it also does not let AI make the maintenance decision on its own. The analysis is automated, while the actual intervention still requires human approval. Step-by-step: 1. I described the maintenance process I wanted in the Awish chat. 2. Awish planned the workflow and selected Snowflake, MaintainX, and Microsoft Teams for the required steps. 3. I connected the client’s accounts and approved the automation plan. 4. Awish continuously analyzed production and telemetry data in Snowflake together with MaintainX asset, meter, and maintenance history. 5. When it detected abnormal behavior or increasing failure risk, it identified the affected equipment and estimated the likely operational impact. 6. It prepared a recommended maintenance action and sent it to the maintenance manager in Microsoft Teams. 7. Once the manager approved the recommendation, Awish created and assigned the work order in MaintainX. 8. The workflow continued tracking the work order and updating its status until the maintenance was completed. Trigger → Analyze → Approval → Action Machine signals → Failure-risk analysis → Teams approval → MaintainX work order

Alper Tayfur
5

Create On-Brand Company Graphics with ChatGPT

I asked ChatGPT to create a graphic for my company. I provided our company colors, logo, brand guide, the objective of the graphic, and information about our audience. ChatGPT then created the graphic based on those details. Step-by-step: 1. I asked ChatGPT to create a graphic for my company. 2. I provided our company colors, logo, and brand guide. 3. I explained the objective of the graphic. 4. I described the intended audience. 5. ChatGPT created the graphic using the information I provided.

Belle
  • ChatGPT
1

Build a Claude-powered fantasy hockey draft and lineup assistant

I built a fantasy hockey assistant with Claude Code for my Yahoo league. It supports two parts of the league: running our in-person draft and managing my team during the season. For the draft, it runs on my laptop as a live draft board. I enter each pick as it is announced, and the assistant re-ranks the remaining players based on what my roster still needs. The rankings combine projection sources with three seasons of NHL statistics, and each player is scored according to how much they would help in each of our ten categories. The board flags players who will likely be selected before my next pick, identifies injury and regression risks, and opens a detail card for any player with projections, historical data, and a short plain-English assessment. A separate display goes on the TV for the room, showing the pick clock, the next player on deck, and recent picks. After the final pick, the view switches to projected standings for every team, color-coded by category. During the season, I paste in my roster, and the assistant pulls the NHL schedule, starting-goalie reports, and injury news. It suggests the best lineup for each day, ranks free agents by value and by games played that week, and projects my weekly head-to-head matchup category by category. It can also ask Claude to propose a lineup and explain its recommendations, which costs about ten cents per run in API credits. Yahoo’s API is read-only. If it supported write access, I would probably have the app manage my team autonomously. Step-by-step: 1. I built the fantasy hockey assistant with Claude Code for my Yahoo league. 2. During the in-person draft, I run the assistant on my laptop as a live draft board and enter each pick as it is announced. 3. The assistant re-ranks the remaining players based on my roster’s needs, using projection sources, three seasons of NHL statistics, and each player’s value across our ten categories. 4. I use the board’s flags and player detail cards to evaluate likely pre-next-pick selections, injury and regression risks, projections, historical data, and plain-English player assessments. 5. I display the pick clock, next player on deck, and recent picks on a separate TV view, then switch that view to color-coded projected standings by category after the final pick. 6. During the season, I paste in my roster so the assistant can pull the NHL schedule, starting-goalie reports, and injury news. 7. I use that information to set daily lineups, rank free agents by value and weekly games played, and project my head-to-head matchup category by category. 8. When needed, I ask Claude to propose a lineup and explain its recommendations, at a cost of about ten cents per run in API credits. 9. Because Yahoo’s API is read-only, I currently use the assistant for recommendations rather than autonomous team management.

John Duval
  • Claude Code
3

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 Poker Luck Detection App with Claude

I love playing poker, both online and live. One month, I performed poorly. Although it felt like the cards were running badly, I wondered whether I had developed a problem in my game and was blaming my losses on bad luck. I asked around, including asking AI, whether a tool existed that could measure luck from poker hand histories. The unwelcome answer was that it did not. I'm not a coder, but after doing some research into vibe coding, I started building a luck-detection app in a Claude chat. Claude built the UI directly in the chat window and advised me on the formulas I was using to calculate luck for the cards dealt, my performance on the flop, and my performance when I went all in. All three metrics have strong averages, and luck is what varies them. I used a bell curve to model hand outcomes and a Monte Carlo simulator, which Claude suggested and executed, to evaluate all possible outcomes. The result astonished me because it was so useful. I immediately fixed two major leaks in my game and felt better knowing that bad luck really was the main problem affecting my results. I liked the tool so much that I decided to turn it into a full web app with Claude Code, and now an iPhone app that I may let other people use for free. I also had a lot of fun building it—except for learning how to use Xcode. That was a pain, even with step-by-step guidance from Claude. Step-by-step: 1. I reviewed a month of poor poker results and questioned whether bad luck or problems in my game were causing the losses. 2. I researched whether a tool existed that could measure luck from poker hand histories and learned that I would need to build one myself. 3. I used vibe coding to start building a luck-detection app in a Claude chat. 4. I had Claude create the UI and advise on formulas for evaluating cards dealt, flop performance, and all-in performance. 5. I used a bell curve to model hand outcomes and a Monte Carlo simulator to evaluate possible outcomes. 6. I used the results to identify and fix two major leaks in my game and confirm that bad luck was also affecting my results. 7. I expanded the project into a full web app with Claude Code and then began building an iPhone app, working through the added challenge of learning Xcode.

Sanjay Singhal
  • Claude Code
3

Build a Multi-Channel Load Blast Platform for Freight Brokerage

I work in the freight brokerage industry. When speaking with trucking companies, we usually want to send offers to multiple contacts at once. This is called a load blast. Clients prefer different communication channels, mostly email and Telegram, so freight brokers often have multiple screens open to manage all of those conversations. Using Claude Code, I built a platform where I can save each client’s preferred communication method—email or Telegram—once. The platform then blasts the load information to the appropriate contacts through their chosen channels. I also built a tooltip guide to help non-technical salespeople set up the system. It guides them through adding contacts, connecting Telegram, and sending load information to multiple contacts at once. This lets them manage the process from one screen instead of switching between multiple screens. This process happens hundreds of times per day. Based on the demo, I convinced my company to start building the same platform internally. Step-by-step: 1. I identified that freight brokers needed to send load offers to multiple trucking-company contacts at once, or create a load blast. 2. I built a platform with Claude Code that lets me save each client’s preferred communication method, such as email or Telegram. 3. I configured the platform to send load information to contacts through their selected communication channels. 4. I added a tooltip guide explaining how non-technical salespeople can add contacts, connect Telegram, and send a load blast. 5. I designed the process so salespeople could manage these communications from one screen instead of using multiple screens. 6. I demonstrated the platform to my company and convinced them to start building it internally.

Thomas (Josh) Thephasdin
  • Claude Code
2

Create a spoiler-free NotebookLM visual recap for books and shows

When I’m continuing a book series or a show season and have forgotten key plot points—especially in fictional stories with large casts—I use NotebookLM to research a spoiler-free refresher before starting the new season or latest book. I used this approach with the new *Murderbot* series and the latest science-fiction book by James S. A. Corey, who wrote *The Expanse* and the *Leviathan Wakes* series. After loading the sources, I ask NotebookLM to create a slide deck with illustrations of the key characters, their relationships, and a quick dossier for each one. This gives me a visual anchor for the characters and earlier plot lines without revealing future events. I also want a hero image designed as a slide, cover, or thumbnail to promote this workflow. It should use and represent the NotebookLM logo and the logos of any other relevant tools, track down their current branding where possible, and turn these .dcs into HTML slide decks.

Nate Grahek
0

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

Build a Self-Improving AI Meeting Protocol for Clearer Decisions and Action Items

Build a Self-Improving AI Meeting Protocol for Teams This workflow was inspired by a question Brooke Benson posted in the Rundown Hub about meeting transcripts that miss action items or assign them to the wrong person. That felt familiar because I used to take meeting minutes as a management assistant. I often had to ask: Who said this? Was it a decision or only a suggestion? Who owns this action? Was the deadline confirmed? As a human note-taker, I could ask the people in the room and summarize while listening. A speaker might say: “Maybe Friday, but that depends on Marc.” My notes might become: “Friday is tentative and depends on Marc.” A transcriber captures more, but it also captures the verbal spaghetti. So the problem is not only transcription quality. It is ambiguity. Instead of only asking AI to interpret a messy transcript afterwards, what if the meeting itself produced clearer signals? The system has four layers: Step-by-step: 1. Meeting grammar Speaking habits that clarify speakers, decisions, actions, ownership and uncertainty. 2. Team information Context about names, roles, responsibilities, terminology and decision scope. 3. Output template A fixed structure for the meeting report. 4. Feedback loop AI compares corrections with its previous output and suggests improvements. The meeting grammar should stay lightweight. At the start, each participant states their name and role. Name the next speaker when possible: “Marc, go ahead.” “Sofie, what do you think?” Unclear contributions can be restated: “So Marc, Friday is possible only if the technical review is complete. Correct?” Mark proposals, decisions and actions differently: Proposal: “I suggest we move the launch to Friday.” Decision: “We are moving the launch to Friday.” Action: “Marc will update the schedule by Wednesday.” Tentative action: “Marc may update it, pending confirmation.” At transition points, repeat what was agreed: “The decision is Friday.” “Marc owns the schedule update.” “The deadline is Wednesday.” Uncertainty should also be explicit: “Owner to confirm.” “Deadline is provisional.” “This is a proposal, not a decision.” The AI should receive these rules directly: - Treat explicit decision language as confirmed. - Do not assign an owner unless ownership is clear. - Label tentative deadlines as tentative. - Flag uncertain speakers instead of guessing. - Prefer later explicit summaries over earlier ambiguous wording. The AI should also receive team context: name, role, responsibilities, decision authority, terminology and communication patterns. Example: Pieter Vermeulen Operations Usually responsible for scheduling and logistics. Often uses tentative language for proposals. Only assign ownership when he explicitly confirms it. These notes should stay transparent and editable. People should be able to review, change or reject notes about their own communication patterns. The report should use a fixed structure: Meeting title Date Participants Main topics Decisions Action items Owner Deadline Status Open questions Risks or dependencies Items requiring confirmation TL;DR This can be built into a shared internal assistant. It receives the meeting grammar, team information, transcript and output template. It should be conservative about certainty: Owner unclear → “Owner to confirm” Suggested deadline → “Tentative deadline” Unknown speaker → “Speaker unclear” Discussed proposal → “Proposal discussed, not confirmed” A human still reviews speaker attribution, decisions, owners, deadlines and confirmed items. Then the corrected report is fed back to the AI: “Which errors came from unclear meeting signals? Which came from missing team context? Which came from your interpretation? What should be improved?” The AI can suggest updates to the meeting grammar or team information. Example: Error: Several people discussed a task, but nobody clearly accepted ownership. Suggested grammar update: “When assigning an action, confirm owner and deadline in one sentence.” Or: Observed pattern: “Pieter often says ‘we should’ when proposing something.” Suggested profile update: “Treat ‘we should’ as a proposal unless explicitly confirmed.” Profile changes should be reviewed before they are stored. The workflow: meeting → transcript → AI report → human correction → error analysis → grammar/team-context update → review → next meeting Over time, fewer errors should need correction because the system becomes easier to interpret. The division of labor is simple: The transcriber captures everything. Humans resolve meaning and ambiguity. AI structures, summarizes and detects patterns. AI output quality depends not only on the prompt, but on the signals the AI receives. Sometimes the best improvement is to reduce ambiguity before it reaches the model.

Fien De Waele
  • ChatGPT
2

Build a Personal AI Prompt Library from Physical-World References

AI image prompting often starts online: search for a style, collect references, describe them, and generate. But your visual vocabulary can also begin in the physical world—a plant, a tile, a book cover, a strange facade, a piece of furniture, or a detail in a church. This workflow turns everyday discoveries into a personal prompt library. AI helps investigate and translate what catches my attention, while I decide what matters. Step-by-step: 1. When something catches my eye, I photograph it and record where I found it and why it interested me. I do not need to understand my attraction immediately. It might be, “This plant has fascinating leaves,” “Who is the writer quoted on this tile?” or “Is it the copper, its patina, or the reflected light that I like?” Attention comes before classification. 2. I ask AI to help identify unfamiliar materials, objects, plants, techniques, or historical connections. A tile might lead to a writer, a literary movement, typography, or metalworking techniques. I preserve the original context—including the location, date, material, maker if known, and my observations—and mark uncertain identifications as uncertain. 3. I separate each object from what makes it visually interesting. For example: - Source: Plant with folded leaves. Principle: Layered fan-like forms with radial repetition. - Source: Weathered copper plaque. Principle: Warm metallic surface, uneven oxidation, and shallow relief. - Source: Facade with irregular windows. Principle: Repeated vertical rhythm interrupted by asymmetry. - Source: Green and coral book cover. Principle: Muted green with a single warm coral accent. This lets me reuse the visual logic without copying the object. 4. I translate each visual principle into concise, reusable prompt fragments, such as: - “Fan-like folded forms with radial repetition” - “Aged copper with dark patina and shallow embossed texture” - “Regular architectural rhythm interrupted by one off-grid element” - “Muted green field with one warm coral accent” These descriptions give me more control than generic words such as “beautiful,” “organic,” or “vintage.” One object can produce multiple fragments related to typography, surface, colour, proportion, lighting, or composition. 5. I store the entries in a document, database, or tagged visual archive. Useful fields include the reference, photo, location, date, what caught my attention, identification and research notes, visual principle, prompt-ready fragment, tags, related references, and confidence. I tag entries by visual function, such as colour, material, texture, rhythm, lighting, or composition, and always preserve links to the original reference. 6. I connect discoveries that may share underlying principles. Folded leaves, pleated fabric, ribbed metal, and fan-shaped architecture might express similar structural rhythms. I ask AI which relationships are visually meaningful, which are superficial, and which could combine well. The library becomes a connected visual vocabulary rather than a collection of isolated images. 7. When creating an image, I select references according to what they contribute. For example, a plant can provide shape language, copper can provide surface and lighting, a facade can provide compositional rhythm, and a book cover can provide colour balance. I ask AI to explain each contribution and remove references without a clear purpose. The goal is not to place all four objects into one image, but to combine their visual principles into something new. 8. I keep collecting and refining. A walk, museum, garden, or café can introduce new references. I update entries when I discover better information and preserve personal reactions, even when the only explanation is, “I just really like this.” Repeated attraction can reveal a personal visual vocabulary I had not consciously recognised. The workflow is: Notice → Capture → Investigate → Extract visual principles → Translate → Store → Connect → Reuse → Refine. AI does not have to be where inspiration begins. The world can stay upstream. A plant can start a prompt. A tile can start a research trail. A material can become a lighting instruction. A facade can become a composition rule. A book cover can become a colour recipe. I notice. AI helps unpack, translate, and connect. The prompt library becomes the bridge between seeing something in the world and being able to use what I saw later.

Fien De Waele
  • ChatGPT
2

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

Create a Retro Horoscope-Style GPT Workflow for Creative Inspiration

I built a playful GPT workflow called Prosperity Oracle, inspired by the astrology and mystical magazine columns I loved in the 1990s. It is deliberately not financial advice, forecasting, or decision support. It is a small ritual of fun: part horoscope, part creative prompt, and part retro-internet weirdness. Instead of asking GPT to optimize something useful, I wanted to recreate the slightly magical feeling of opening a magazine and finding a mysterious prediction written just for me. Sometimes AI does not need to increase productivity. Sometimes it can simply make the day a little stranger and more delightful—and, on some days, inspire my artwork. Step-by-step: 1. I drew inspiration from the astrology and mystical magazine columns I loved in the 1990s. 2. I built Prosperity Oracle as a playful GPT workflow that produces a horoscope-style experience. 3. I framed it as a ritual of fun, creative prompting, and retro-internet weirdness—not as financial advice, forecasting, or decision support. 4. I used the format to recreate the feeling of discovering a mysterious prediction written just for me. 5. I let the results serve as creative inspiration for my artwork.

Fien De Waele
  • ChatGPT
6

How I Governed Two Claude Agents to Build and Test a Live Word Puzzle

I'm not a professional developer, but I built Sujido, a live word puzzle, with multiple AI agents. For months, they gave me bloat, lost context, and slop, and neither I nor the models could untangle what had been decided or why. I eventually settled on two agents: one Claude instance that plans and reviews, and another that builds. I imposed rules on both, one failure at a time. None of these rules would surprise a professional engineering team, but nobody handed them to me. That's the key lesson I learned: agents won't bring the discipline for you. You have to impose it. When I showed the first game revision to strangers, their verdict was that the first half was "boring" and the second half was novel. It was hard news to hear about my baby, but I took the feedback to heart and cut the game in half. That required surgery on code tangled across both halves, followed by a rebuild under the rules below. Before the rebuild, a separate AI audit graded the codebase B−. Afterward, it graded it A−. The deployed site shrank by 97.5%, and every serious finding was fixed and locked in by an automated test. The models didn't change drastically, but my operating rules did. Step-by-step: 1. I wrote a constitution before the first prompt. The repo holds what every agent must read before working: `CLAUDE.md` files for the project as a whole and for each major part of the code, a collaboration protocol for how the agents and I work together, a spec for the core data format, and a decision log. The data format is changed there first and then in code. Nothing is remembered unless it is written down. That's my life as well. :) 2. I split the work by role, not by task. One Claude instance is the strategist: it writes briefs, reviews reports, and never commits code. Claude Code in VS Code is the builder: it executes the brief, writes the tests, reports back, and never releases. Neither agent can approve its own work. 3. I made every job start from a written brief, and I never edit briefs. Each brief is committed to the repo with an exact scope, such as "do X only, do not begin Y." If plans change, a dated amendment states what it supersedes. The builder may skip a risky item with a written reason; skipping is better than forcing it. 4. I used mock-ups with real data instead of descriptions. Anything I will look at gets a mock-up, and I approve it before any code is written. I learned this when a status report described only in words arrived on my phone formatted as a wall of text. The approved mock became the spec, and the tests pin the output to it. 5. I proved that every test could fail. No test is trusted until it has been run against deliberately broken code and caught the bug. A test suite that has never failed hasn't proven anything. 6. I verified reports against the real repo. Agent reports drift. One summary said players rated a puzzle "just right" when the log said "too easy." An audit said there were about 25 unused functions; a recount found 29. The strategist spot-checks load-bearing claims against the actual files and data before anything ships. 7. I built gates the agents can't talk their way past. All work lands on a branch that auto-deploys to a test site. GitHub Actions lints and runs the Python and headless-browser tests on every push. A git hook refuses direct pushes to production. Releases are fast-forward merges that only I perform, after CI is green and I've tested the build personally. The live site shows the release's commit ID, and I check it before calling it shipped. Nothing merges automatically. An agent's "looks good" is just another report, and reports drift. 8. I gave the system a memory. Every session ends by updating the decision log and a "resume here" document, so the next session—a fresh model with no recollection—picks up exactly where the last one stopped. Without this, every session starts by relitigating old decisions. 9. I let the data and end users overrule me. A scheduled GitHub Action turns player telemetry into a daily report. It showed that the difficulty dials I assumed mattered did not predict what players found hard; what mattered was how misleading the starting arrangement was. When testers were confused by the tutorial, I rebuilt it even though I had already approved it. Player feedback about their own experience outranks my earlier rulings. AI agents are velocity multipliers, but they multiply bad structure as quickly as good code. The rules came from me, not the models: the AI writes the code, while the rules, gates, and written record keep the process honest. See the result at Sujido.com. Finding the anagram is the easy part; sliding it into place is the hard part. One board took me 902 moves. My S.O. solved it in 242, and I haven't heard the end of it. Try to break it!

Tony Surfwell
  • Claude
2

Spot recurring ideas across your conversations with PatternSpeak

I built a small GPT automation called PatternSpeak that periodically looks back across my conversations for ideas, themes, or approaches that keep resurfacing over time. It is not meant to analyze me or turn recurring thoughts into tasks. Its job is much simpler: occasionally say, in effect, “Hey, this idea keeps coming back. Maybe there is something here.” I like it because repetition can be meaningful without being urgent. Sometimes an idea disappears for weeks and then returns in a completely different context. PatternSpeak helps me notice those echoes without forcing them into a productivity system. It feels less like tracking and more like having a friendly observer tap me on the shoulder when a thread has quietly become a pattern. It works very well with the scan and analysis workflow I also shared here. Step-by-step: 1. I use PatternSpeak to periodically look back across my conversations. 2. It identifies ideas, themes, or approaches that keep resurfacing over time. 3. When it notices a recurring thread, it surfaces it as a gentle prompt rather than turning it into a task. 4. I review the recurring ideas and notice whether they have become meaningful patterns, even when they return in different contexts. 5. I use the scan and analysis workflow I also shared here alongside PatternSpeak.

Fien De Waele
  • ChatGPT
2

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

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

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