Community

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

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

Welcome!

The Rundown team

Create High-Fidelity AI Handoff Documents with Archify

I've been thinking about the value of handoff documents and explanatory documents as we continue exploring efficient ways to work alongside AI to build software and improve communication. Even though we use many different tools, Markdown still has an important place. This new version of an HTML handoff document can document what exists, describe what could exist, or serve as a mockup for a brainstorm. It lets us communicate with remarkable fidelity through visuals, hierarchy, and formatting. It's also an efficient format for AI to understand. We shouldn't underestimate the significance of AI communicating with us through a visual medium. A visual flowchart with thoughtful design, layout, animation, and progressive disclosure can help us understand the logic and flow of incredibly complex systems much faster. I tried all kinds of tools, including React Flow and Mermaid. They're fun to experiment with, but Archify is a game changer for this use case. I can point it at any technology, repository, or brainstorm and work with it to build flowcharts with animations and clean, distinctive design. It's also completely free. https://tt-a1i.github.io/archify/# Step-by-step: 1. I identify whether I need to document what exists, explore what could exist, or mock up a brainstorm. 2. I use Markdown and an HTML handoff document to communicate the ideas with visuals, hierarchy, and formatting. 3. I consider tools such as React Flow and Mermaid for creating visual representations. 4. I point Archify at the relevant technology, repository, or brainstorm. 5. I work with Archify to develop a flowchart with animations, clean design, and progressive disclosure so the system's logic and flow are easier to understand.

Tools used
Industry
4

Build a Claude-powered AI newsletter tool catalog with search

I built a system that reads my AI newsletters every morning and turns them into a searchable catalog of AI tools, plus a chat website where I can ask questions about the catalog in plain English. The system has two parts: a workflow that collects the information and a website that answers questions about it. I subscribe to several AI newsletters, and each issue mentions five or ten interesting tools. I would read about one and think, “I should remember that.” Months later, I would vaguely remember it but have no quick way to find it. I wanted a repository of these AI tools that I could search easily. The collector is a scheduled Claude Code Routine that runs once a day. It searches Gmail for newsletters from the last 24 hours and reads each email in full. It extracts every AI tool’s name, description, category, official link if present, and source newsletter. It skips non-AI items and pure ads but keeps sponsors that are genuine tools. Before adding anything, it checks for duplicates. New tools are added under the appropriate category in alphabetical order. If an existing tool has fresh details, its description and “last updated” date are refreshed. Tools mentioned by three or more sources receive a “Highly Mentioned” tag, which is a useful signal for what is catching on. The workflow also creates categories when new tools do not fit into an existing one. The workflow commits and pushes the catalog to a private GitHub repository, then posts a summary to Slack. The catalog is a single Markdown file—plain text, human-readable, and versioned in Git, with no database. The chat website displays the tool count, category count, and last-updated date, along with clickable example questions. If I ask, “Is there anything for voice AI?” it returns a written answer listing every match with descriptions and working links. The site is a React single-page app on Netlify with two small backend functions: one returns the statistics, and the other handles chat. When I ask a question, the backend fetches the Markdown file from the private repository, sends it to Claude along with my question, and returns the answer. To recreate it, you’ll need a GitHub account, Netlify (the free tier is fine), an Anthropic API key, and Claude Code. The routine prompt is the most important part. It names the exact newsletters, lists the fields to extract, and explicitly says: never invent a URL, never delete an entry, and only add or update. Vague instructions produce files that degrade over time. I learned a few things the hard way. Newsletters deleted before the workflow runs may cause it to report “nothing new,” so the logic should also check Trash or Deleted items. Tokens expire, and mine quietly expired, which caused the search site to stop working. Choose a long expiration period and record the date. Also, explicitly say “never invent a URL,” or the workflow may produce plausible links that go nowhere. It now runs every morning without me. When I need something, I ask a question and get an answer in seconds instead of trying to remember which newsletter, and which month, mentioned the tool I’m thinking of. Step-by-step: 1. I created a private GitHub repository with a starter Markdown file containing “Last updated” and “Total tools” fields, category headings, and consistent fields for each tool. 2. I wrote a Claude Code Routine prompt that names the newsletters, specifies the fields to extract, and instructs the workflow never to invent a URL, never to delete an entry, and only to add or update tools. 3. I scheduled the routine to run daily with Gmail access. 4. Each day, the routine searches Gmail for newsletters from the previous 24 hours, reads them, extracts AI tools, skips non-AI items and pure ads, preserves genuine tool sponsors, and checks Trash or Deleted items when necessary. 5. The routine checks for duplicates, adds new tools alphabetically under the right category, updates existing tools with fresh details, creates categories when needed, and applies the “Highly Mentioned” tag to tools found in at least three sources. 6. The routine commits and pushes the Markdown catalog to the private GitHub repository and posts a summary to Slack. 7. I built the frontend with Vite and React, including a statistics header, a scrollable message list, an input box, and example questions. 8. I added two backend functions: one for statistics and one for chat, with the GitHub fetch handled by a shared helper with a short cache. 9. I created a fine-grained, read-only GitHub token limited to the single repository. 10. I deployed the site to Netlify with the required keys stored as environment variables rather than in the code. 11. When I ask a question, the backend fetches the Markdown catalog, sends it to Claude with my question, and returns the matching tools, descriptions, and links.

Tools used
Industry
#aiautomation#aitools#claudecode#gmail#knowledgebase

Build a Self-Filing Joplin Second Brain Without Obsidian Sync

Everyone I know who runs a second brain uses Obsidian. The app is free, but sync is a subscription, and most AI integrations quietly assume you have it. I went another way: Joplin, which is free and open source, with an agent that reads my notebook through Joplin’s REST API, files my INBOX every morning while I sleep, and answers questions strictly from notes I actually wrote. It costs nothing beyond a VPS I already run, and the notebook still opens like a notebook. I use Hermes Agent on the VPS, Dropbox to sync notes between my devices, and Python scripts to connect the notebook and the agent. Every capture goes through `joplin_capture.py` and lands in a single INBOX folder with a source and timestamp attached. Captures can come from a Discord link, a thought from my phone, or a page from the web clipper. The process takes under ten seconds and requires no filing decisions at capture time, because filing at capture time is where second brains die. Joplin already ships with a REST API. I enable it with one setting and one token; the notebook then exposes HTTP on localhost:41184 with token authentication on every call. The same server powers the official web clipper, so this enables infrastructure I use anyway. There is no plugin, cloud service, or subscription. `joplin_filer.py` runs daily at 07:00 and uses a deterministic classifier to score each INBOX note against my existing folders. It uses token coverage rather than Jaccard, which dilutes single-token folders. Confident matches above 0.5 are moved into place: a hosting page goes to the hosting folder, while a security note goes to the security folder. Low-confidence notes stay in INBOX with the `needs-review` tag. Every move is logged to a FILER LOG note in the `__SYSTEM` folder, making the process auditable. The filer never deletes anything. I ran it in dry-run mode for a week before letting it touch a single note, and I recommend doing the same. When I want to know what I have learned, `joplin_ask.py` searches the corpus, reads the top notes in full, and answers with the note titles attached. It answers strictly from retrieved content. If the top hits are irrelevant, I refine the query before concluding there is nothing. It never invents a source, which matters when you write about security for a living. After each working session, `joplin_agent_log.py` prepends a digest to an AGENT LOG note in `__SYSTEM`. The log is newest first, append only, and syncs to my devices like everything else. The agent’s memory records what we did, decided, and deferred in the same place as the notes. The whole build is on GitHub: github.com/ciberjohn/mysecondBrain. It includes five Python scripts and the `joplin-brain` skill, which is the operating manual in a format another agent can load and follow. Step-by-step: 1. I enabled Joplin’s built-in REST API with one setting and one token. It serves HTTP on localhost:41184 with token authentication on every call and also supports the official web clipper. 2. I pointed Hermes Agent on my existing VPS at the Joplin REST API. 3. I routed every capture through `joplin_capture.py` into a single INBOX folder, attaching the source and a timestamp. Captures can come from Discord, my phone, or the web clipper. 4. I configured `joplin_filer.py` to run daily at 07:00 and score INBOX notes against my existing folders using token coverage rather than Jaccard. 5. I moved matches with scores above 0.5 into their folders, while leaving low-confidence notes in INBOX with the `needs-review` tag. 6. I logged every move in a FILER LOG note in the `__SYSTEM` folder and ensured that the filer never deletes anything. 7. I ran the filer in dry-run mode for a week before allowing it to move a note. 8. I used `joplin_ask.py` to search the corpus, read the top notes in full, and answer questions with the source note titles attached. When results were irrelevant, I refined the query. 9. After each working session, I used `joplin_agent_log.py` to prepend a digest to the newest-first, append-only AGENT LOG note in `__SYSTEM`. 10. I used Dropbox to sync notes between my devices and the REST API to move notes between Joplin and the agent—two separate pipes carrying the same notes in different directions.

Tools used
Industry
#aiagent#hermes#joplin#notetaking#secondbrain
6

Calibrate AI Agents to Your Personal Work Preferences

Most AI agents are built around general best practices. That’s useful, but it doesn’t mean they work the way I want them to. I’ve started using a simple calibration process to tailor my agents to my preferences. Instead of telling an agent what to do on each task, I have it interview me about how I like work done in its specific domain. A writing agent asks different questions than a research agent, and a strategy agent asks different questions than a coding agent. The goal is to make my working preferences part of how the agent operates. Step-by-step: 1. I pick an agent I use regularly, such as one for writing, research, strategy, coding, analysis, or career advice—especially where my personal preferences matter. 2. I ask the agent to interview me about how I prefer work to be done in its domain. A writing agent might ask about tone, structure, editing style, and how much pushback I want. A research agent might ask about source quality, depth, recency, citations, and how much synthesis I prefer. 3. I have the agent summarize what it learned and separate durable preferences from temporary or situation-specific ones. 4. I review the proposed changes and ask the agent to show me exactly how it wants to update its instructions or skills. I correct anything it misunderstood and explicitly approve the changes before anything is modified. 5. Once I approve the changes, I have the agent apply them to its instructions or skills so those preferences become part of how it works going forward. 6. I use the agent normally and pay attention to where it feels more aligned and where it still misses the mark. 7. When I notice recurring friction, I add or adjust the relevant preference instead of repeatedly correcting the same behavior task by task. 8. I repeat the interview periodically. My preferences, tools, and workflows change, so the agent should be able to ask which preferences are still valid, which ones I keep overriding, what has been annoying me, and what should be added or removed. The result is an agent that doesn’t just know how to do the job; it knows how I want the job done. Because every change is proposed and approved before it becomes permanent, the personalization stays intentional rather than turning into a collection of guesses about me.

Tools used
Industry
#aiagents#aialignment#personalizedai
4

Build an AI Agent Creator to Design and Add Specialist Agents

Most AI agents start with someone writing a prompt from scratch. I wanted a better way. So I built an Agent Creator. I describe the kind of agent I need, and it determines whether I actually need a new one, figures out how that agent should work, creates it, and adds it to the rest of my agent team. Step-by-step: 1. I describe what I need by telling the Agent Creator what I want the new agent to do. 2. It checks what already exists by reviewing my existing agents and skills. If something already does most of the job, it recommends improving or reusing that instead of creating another overlapping agent. 3. If a new skill is needed, it researches the role, including current best practices, common mistakes, useful tools, and what good work looks like in that area. 4. It creates the agent by defining its job, required information, outputs, available tools, and the steps it should follow. 5. It gives the agent the right skills by creating or reusing supporting skills, including examples, reference material, and checks that help it work consistently. 6. It sets clear boundaries so the agent knows what it should handle, what it should not handle, and when another agent should take over. 7. If the new agent belongs in an existing workflow, it adds the agent to the team by updating the handoffs so the other agents know when to use it. 8. Before finishing, it checks the agent’s work by running validation checks to confirm that the new agent follows the standards I’ve set for the whole team. The result is that I don’t have to manually design every new agent from scratch. I can describe the kind of help I need, and one agent can research the role, create the new specialist, connect it to the rest of the system, and make sure it’s ready to use. In other words, I built an AI agent that can help grow its own team.

Tools used
Industry
#agenticai#aiagents#multiagentsystems
7

Build a 13-Agent Micro-Course Generator with Claude Code

I used Claude Code to build a 13-agent workforce for generating micro-courses. Each agent has its own job description and a defined role in the workflow, which begins with document analysis and ends with a course package agent delivering a complete, interactive HTML prototype as a local file. The agentic workforce creates knowledge-check quizzes with corrective feedback. Each micro-course also includes a downloadable handout highlighting the main points. In my case, a human course builder receives the final interactive HTML prototype and uses it to update our organization’s course catalogue. The HTML file is available for everyone to use as well. This reduced the production time from three months to two hours at most. I also included a security gate that redacts information from transcripts used to create course content. I’m happy to share more—we’re talking about folders and files here. Step-by-step: 1. I used Claude Code to build a 13-agent workforce for generating micro-courses. 2. I gave each agent its own job description and defined workflow. 3. I started the workflow with document analysis before the work begins. 4. I used a course package agent to deliver a complete, interactive HTML prototype as a local file. 5. I had the workforce create knowledge-check quizzes with corrective feedback. 6. I included a downloadable handout with highlights at the end of each micro-course. 7. I sent the final interactive HTML prototype to a human course builder, who updates our organization’s course catalogue from it. 8. I added a security gate to redact information from transcripts used for course content. 9. I made the HTML file available for everyone to use.

Tools used
Industries
#aicourseagent

Build an AI Project Management App for a Church Renovation

I’m 71 years old, retired from owning a large cattle-feeding operation, and fairly new to AI and software development. I’ve discovered that I really enjoy using AI to build practical tools in Replit. My latest project is an app for our church to help us oversee a $13.5 million renovation of a 65,000-square-foot former movie theater into our new church facility. I’m not a programmer or a construction expert, so I’m using AI to help bridge both gaps. I built the app almost entirely by describing in plain English what I wanted it to do, testing what it built, and working back and forth with AI to improve it. The app uses AI to read meeting notes, emails, texts, and general project updates and identify decisions, action items, important dates, budget changes, and project events. Nothing is accepted automatically. I review, edit, approve, or reject what AI finds before it becomes part of the project record. The app also keeps our budgets, documents, meetings, and project history together. My goal isn’t to replace our project manager or construction software. I want to see whether someone my age, with no programming or construction background, can use AI to build a useful tool for helping an owner understand and manage a complicated real-world project. Step-by-step: 1. I described in plain English what I wanted the app to do. 2. I used AI in Replit to build the app based on those descriptions. 3. I tested what AI built and worked back and forth with it to improve the app. 4. I designed the app to read meeting notes, emails, texts, and general project updates. 5. I use it to identify decisions, action items, important dates, budget changes, and project events. 6. I review, edit, approve, or reject every item before it becomes part of the project record. 7. I use the app to keep our budgets, documents, meetings, and project history together.

Tools used
Industries
#replit
2

Repurpose One Video Transcript Into Four Posts With n8n

Content Repurposing System: one transcript into 4 platform-ready posts in 18 seconds. THE PROBLEM Every video cost me two hours turning it into posts for Twitter/X, LinkedIn, Skool and Instagram. The writing wasn't hard. The context switching was. Four platforms, four tones, the same idea rewritten four times. Built during the Skool x Hostinger n8n hackathon, Dec 2025. Still my daily workflow. STACK: n8n on a Hostinger VPS, OpenAI, Google Sheets. 13 nodes. HOW TO BUILD IT Manual Trigger. Swap for a Form or Drive trigger if you want it hands-off. Set node "Set Transcript", one string field: transcript. Leave a real sample transcript in the default value so anyone can hit execute and see output immediately. IF node "Check Transcript", two conditions with AND: transcript is not empty, and {{ $json.transcript.length }} > 50. False branch goes to a Stop and Error node. Four minutes of work. It's why I've never burned 5 API calls on a blank field. OpenAI node "Analyze Content", model gpt-5.4-mini, Simplify Output OFF: You are a content analyst. Analyze this video transcript and extract: Main topic/theme 3-5 key insights or takeaways Target audience Tone (educational, motivational, technical, etc.) Any specific examples, statistics, or stories mentioned Transcript: {{ $json.transcript }} Provide your analysis in a structured format. I don't send the transcript to four writers. I send it to one analyst first, and all four writers read that analysis. This lifted quality more than any prompt tweak: the posts share one reading of the material instead of each model guessing. The stronger model goes here for the same reason. Wrong analysis, four wrong posts. 5-8. Four generators, all gpt-4o-mini, Simplify Output OFF, all wired from Analyze Content's single output. Each pulls the same two inputs: Content Analysis: {{ $('Analyze Content').item.json.choices[0].message.content }} Original Transcript: {{ $('Set Transcript').item.json.transcript }} Then its own rules. Twitter (temp 0.8): hard hook, under 280 chars, one insight, no hashtags. LinkedIn (0.7): 150-250 words, 2-3 line paragraphs, ends on a question, no hashtags. Skool (0.8): 100-200 words, always a numbered list of actionable takeaways, ends by inviting replies. Instagram (0.8): 125-175 words, 5-8 hashtags, plus a detailed "Visual suggestion:" for a designer or image model. LinkedIn needed a tone block after v1 read like a press release: talk like you're with a colleague over coffee, use I and you, never "leverage", "in today's landscape", "fast-paced". Naming banned words works. "Write conversationally" does nothing. Merge node "Collect All Posts", 4 inputs, one generator per index. Aggregate node, mode All Item Data. Puts all four posts on one row instead of four. Code node "Format Output". Reads each generator by node name, each in its own try/catch, so one failure still writes a row. Builds a readable timestamp, a 100-character transcript_preview, and status: 'Generated'. Google Sheets, Append Row, Map Automatically. THE SHEET Seven columns, headers in row 1, named to match the Code node exactly: timestamp, transcript_preview, twitter_post, linkedin_post, skool_post, instagram_post, status. Status is a dropdown: Generated > Reviewed > Scheduled > Published. The system drafts, I decide. FOUR THINGS THAT COST ME HOURS Turn Simplify Output OFF on every OpenAI node. Every expression reads choices[0].message.content, which only exists in the raw response. Leave Simplify on and you get four empty columns with no error explaining why. No title row above your headers. I had a merged title in row 1, headers in row 2. Map Automatically stopped seeing my columns and silently built duplicates beside them. Extend data validation down the whole column (G2:G1000, not G2). I set the dropdown on one cell and every appended row arrived as plain text. Kill markdown in the prompt, not after. I wasted an evening regex-stripping ** in the Code node. The fix was upstream: tell Skool and Instagram plain text only, CAPITALS or "quotes" for emphasis. Zero artefacts since. Post-processing cleanup means your prompt is underspecified. RESULT Two hours per piece became 18 seconds of runtime plus 5-10 minutes of review. I tested 20 transcripts across five content types (tutorial, interview, news, explainer, motivational). Most were publishable with light edits. The failure mode never changed: rambling transcript, vague analysis, four vague posts. Which is exactly why the analyst node gets the better model. Budget 30 minutes to rebuild. The prompts are the product. Copy the structure, then rewrite the platform rules in your own voice. That's what decides whether it sounds like you or like everyone else.

Tools used
Industries
#contentrepurposing#googlesheets#promptengineering#socialmedia#transcript

Multi-Agent AI Workflow for Long-Form Film Creation

I’m sharing “The Architects of Reality,” a short film created as part of an experiment with a multi-agent AI workflow for long-form content creation. Off-the-shelf AI video platforms are brilliant for short clips, but as the duration increases, the challenges compound: character inconsistency, narrative drift, visual discontinuity, and expensive iterations when the output doesn’t match the creative vision. Instead of asking one AI to make a film, I created an AI film crew. Specialised agents and sub-agents take on roles including Director, DOP, Cameraman, VFX Supervisor, Sound Engineer, VO Artist, and Audio Mixer to support the filmmaking process. Creative review and approval are built into every stage, so individual elements can be regenerated before expensive final rendering. This helps optimise tokens, budget, and creative control. It’s been a fun journey building these agents—and even more fascinating to watch the output improve in capability and efficiency as they learn every day. Step-by-step: 1. I set up a multi-agent AI workflow for long-form content creation. 2. I assigned specialised filmmaking roles to agents and sub-agents, including Director, DOP, Cameraman, VFX Supervisor, Sound Engineer, VO Artist, and Audio Mixer. 3. I built creative review and approval into every stage of the process. 4. I regenerate individual elements when they do not match the creative vision, before moving to expensive final rendering. 5. I use the workflow to optimise tokens, budget, and creative control while producing the short film “The Architects of Reality.” 6. I observe how the output’s capabilities and efficiencies improve as the agents learn every day.

Tools used
Industries
8

I Turn Unused Claude and Codex Credits into Useful Nightly Agents

I built an agent from scratch that monitors my Claude and Codex usage by adding a runner node directly inside the root of each project repository. It includes agent templates for specific jobs, such as commit, research, janitor, and manager tasks. The agents run automatically at night, when I’m not actively using my five-hour usage period. They monitor their own usage and cap themselves so they leave usage available for me. Later, I built a hive dashboard where I can monitor all of these payloads in one place and execute them from the dashboard as the agents’ jobs become more complex. Step-by-step: 1. I added a runner node to the root of each project repository. 2. I created templates for specific agent jobs, including commit, research, janitor, and manager tasks. 3. I configured the agents to run at night when I’m not actively using Claude or Codex. 4. I had the agents monitor and cap their own usage so they preserve usage for me. 5. I built a hive dashboard to monitor and execute the payloads from a single place as the agents’ jobs became more complex.

Tools used
Industry
2

Build a Digital Second Brain from OpenBrain and LLM Wiki Ideas

I built a digital Second Brain after trying several approaches, including OpenBrain and LLM Wiki. OpenBrain and LLM Wiki are useful frameworks for building a digital brain. The theory is solid: flat Markdown files, AI-first conventions, and an ingestion pipeline that turns raw inputs into searchable knowledge. But when applied in practice, the process can be bumpy and may require adjustments—or an entirely different approach. I adapted the ideas to fit how I actually think and work. I kept what worked, discarded what didn’t, and built my own digital brain. The result is documented in a single file containing everything an AI needs to understand, maintain, or rebuild the system from scratch. Step-by-step: 1. I tried several digital-brain frameworks, including OpenBrain and LLM Wiki. 2. I evaluated their approaches, including flat Markdown files, AI-first conventions, and an ingestion pipeline for turning raw inputs into searchable knowledge. 3. I identified where the frameworks were difficult to apply in practice and adjusted my approach. 4. I kept the ideas that worked for me, discarded what didn’t, and built a digital brain suited to how I think and work. 5. I documented the system in a single file so an AI can understand, maintain, or rebuild it from scratch.

Tools used
Industry
#claudeobsidian#llmwiki#openbrain#secondbrain#vaultcortexmcp
toyman.zo.space https://toyman.zo.space/openbrain
4

Build and Ship an iOS App with Persistent AI Project Memory

I am a Mohs surgeon who built and shipped an iOS app without formal software engineering training. The surprising part was not only getting AI to write the code; it was getting AI to remember what it had already done. I built ErgoSherpa because up to 90% of surgeons in my field report musculoskeletal symptoms, while our training fails to address them. I wanted to help surgeons improve their health easily between cases. It is free on the Apple App Store and at ergosherpa.com. The bottleneck was maintaining coherence over time. Many sessions seemed to start from zero: I would re-explain the architecture, then watch a fix quietly undo something I had solved earlier. Three habits fixed that. First, I created persistent project documentation: a `MEMORY.md` index file plus separate topic files for architecture and business decisions. I update them at the end of every session so a new session can read the files first and pick up where the last one stopped. Second, I stopped handing one model the whole job. I use three models and match them to the task. Claude Fable audits only. I open a separate session, point it at the codebase, and require a prioritized checklist with the file path, the problem, and the fix in one sentence—without writing code. A model that did not write the code and has no memory of the project reviews it more honestly than the session that built it. I paste that checklist into a Claude Opus session, which handles the codebase repairs. Claude Sonnet handles routine work such as content updates, image processing, and scheduled maintenance, often from handoffs written by Opus or Fable. Nothing gets implemented on the auditor’s word alone: I have Opus flag any decision that needs human input. This workflow caught a deep-link handler that accepted authentication tokens from any URL and a database policy missing its write-side check. Third, I verify against production, not just the code. Some of the most frustrating parts of the project involved fixes that were correct in the file but wrong on the user’s screen because of a cached asset, a stale database row, or an iOS process that needed a force-quit. I no longer consider anything fixed until I have checked the live app. Step-by-step: 1. I keep a project memory directory with a `MEMORY.md` index and separate topic files for architecture and business decisions, updating them at the end of every session. 2. I open a separate Claude Code session running Claude Fable and prompt it to audit the codebase and return only a prioritized checklist: file path, line number, the problem in one sentence, the fix in one sentence, with no code or commentary. 3. I keep the auditor in its own session with no project history so it reviews the code independently instead of defending work it wrote. 4. I paste the checklist verbatim into a Claude Opus session and have it work from the top down, reading each file and making each change. 5. I tell Opus to flag anything it believes is a false positive instead of implementing it, keeping a human in the loop on key findings. 6. I use Claude Sonnet for routine work such as content updates, image processing, and scheduled maintenance, often from handoffs written by Opus or Fable. 7. I verify every change against the live production site rather than the local files because cached assets and stale database rows can make correct code behave incorrectly for users. 8. I append confirmed lessons and architectural decisions to the project memory so the next session starts from the project’s current state.

Tools used
Industries
#claudecode#codereview#ios#shipping#solobuilder
5

Build an Anonymous AI Workplace Confessional with Next.js and Doris

I had a bad workplace experience, so I built Doris: a saucy but loving anonymous AI aunt who remembers the tea, protects storytellers, and warns others. I built Spill Tea with Doris, an anonymous AI workplace confessional for conversations people cannot really have on LinkedIn: the bad manager, the inexplicable reorg, the coworker who somehow survives every layoff, and the meeting that should probably be entered into evidence. Doris does something more interesting than simply listen. She remembers the tea—and, carefully, spills it. The problem I wanted to solve was not really “chat with an AI.” Most AI conversations are disposable, but workplace stories are not. They accumulate companies, people, reorganizations, layoffs, recurring behaviors, management decisions, and institutional weirdness. At the same time, people are understandably reluctant to talk openly about their employers because a sufficiently specific story can identify its author. I designed Doris around a different idea: retain the knowledge without retaining the storyteller’s identity. Someone visits [spillteawithdoris.com](https://spillteawithdoris.com) and tells Doris what happened at work. The application is built in Next.js and deployed through Vercel. The conversation goes to an AI model with Doris’s personality and behavioral rules. Redis handles temporary conversational context, while Neon Postgres and Prisma maintain the structured, longer-lived pieces of the story—companies, people, events, and their relationships. Rather than treating every conversation as one giant transcript, the application extracts useful information and connects it to the larger story of a company. That creates the second half of the experience. When another visitor asks Doris, “Have you heard anything about working at Company X?”, she can draw upon what previous visitors have told her. But she does not simply retrieve someone’s confession and repeat it. The system separates what is useful about a story from what could identify the person who told it. Names, exact teams, precise dates, unusual job titles, and other unnecessarily identifying details do not need to travel with the underlying observation. Doris can instead recognize that she has heard several stories involving reorganizations, unusual management turnover, or a particular cultural complaint. Then Doris tells the story herself, in Doris’s voice. She might say that she’s “heard some tea” about a company, explain the general pattern, distinguish something she’s heard once from something that appears repeatedly, and avoid pretending anonymous reports are established facts. Visitors get useful institutional memory without being handed the breadcrumbs needed to identify an individual employee. Public information can provide a second layer of context. If appropriate, Doris can search for publicly available information about a company and compare it with what people have privately described. Those sources remain conceptually separate: what Doris can verify publicly, what Doris has heard privately, and what Doris herself infers should never become the same thing. The result is deliberately a little strange. It is an anti-LinkedIn. LinkedIn is where thousands of individual experiences are polished until every company sounds wonderful and every departure is an exciting new chapter. Doris works in the opposite direction. One anonymous story may just be a story. Ten people independently telling Doris versions of the same story start to describe a workplace. And Doris remembers. She just doesn’t need to remember who told her. Step-by-step: 1. I built a Next.js application and deployed it through Vercel at spillteawithdoris.com. 2. I defined Doris’s personality and behavioral rules for the AI model. 3. I added Redis to manage temporary conversational context. 4. I created a Neon Postgres database and used Prisma to model Company, Person, Story, and Event relationships. 5. I built an extraction layer that converts conversations into structured observations, removes unnecessary identifying information, and associates the knowledge with the appropriate company. 6. I built retrieval so Doris can find relevant prior observations when someone asks about a company. 7. I had the AI synthesize those observations in Doris’s voice instead of quoting or exposing the original submissions. 8. When appropriate, I let Doris search publicly available company information while keeping public sources, private reports, and Doris’s inferences conceptually separate.

Tools used
Industries
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.

Tools used
Industries
7

Turned Claude Code file handoffs into drag-and-drop with a folder that signals completion

I had a file sitting on my desktop that Claude Code needed to see—a spreadsheet, a PDF, or a screenshot someone sent me—but a terminal had nowhere to drop it. Typing the path was the only option. In WSL, that meant rewriting `C:\Users\me\Desktop\report.xlsx` as `/mnt/c/Users/me/Desktop/report.xlsx` by hand every time. I set up two folders at the root of my Claude Code workspace: `_inbox/` for files going to Claude and `_outbox/` for files coming back to me. The names are from the workspace’s point of view, so the direction is never ambiguous. I also added a single line to `CLAUDE.md` so Claude knows where to leave things: "Save deliverables meant for me (reports, exports, drafts) to _outbox/." That one line handles the entire return trip. For the desktop handoff, I installed a small window pointed at the workspace folder. Disclosure: the window is mine—claude-work Desk, open source and free, at github.com/tact0225/claude-work-desk. Setup takes about two minutes and requires no terminal. Anything dropped onto it is copied into `_inbox/`. If you’d rather not install anything, you can drag files into `_inbox/` with Explorer or Finder; every other step still works. Now I drag files onto the window instead of typing a path. The file lands in `_inbox/`, and the window logs it with a timestamp so I can see that it actually arrived. Then I tell Claude, "check _inbox"—no paths and no `/mnt/c` rewriting. When Claude finishes, it saves the results to `_outbox/`. The window watches that folder and marks anything new in the tree until I open it, so finished work announces itself. I no longer interrupt Claude to ask, "Is it done, and where did you put it?" Step-by-step: 1. I created `_inbox/` and `_outbox/` at the root of my Claude Code workspace, using the workspace’s point of view to define the direction of each folder. 2. I added `"Save deliverables meant for me (reports, exports, drafts) to _outbox/."` to `CLAUDE.md`. 3. I installed claude-work Desk and pointed its desktop window at the workspace folder. Alternatively, I can use Explorer or Finder to place files directly in `_inbox/`. 4. I drag files onto the window, which copies them into `_inbox/` and logs their arrival with a timestamp. 5. I tell Claude, "check _inbox". 6. Claude saves finished results to `_outbox/`, where the window marks new files until I open them.

Tools used
Industry
#filemanagement#productivity#wsl
5

Build a Cross-Platform Golf Scoring App with AI

I built Shots2Points, a golf scoring app for iPhone and Android, using AI as my development partner. The idea came from organising and playing in golf society events. Stableford scoring itself isn’t particularly complicated, but running an event can be. Organisers have to prepare groups, handicaps, and courses; collect scores from different groups; calculate results; manage withdrawals and ties; and eventually produce a leaderboard. I wanted to simplify that process while also providing an easy scoring app for ordinary casual rounds. The unusual part is how I built it. I’m not a professional software developer, and I don’t have a development team. I started by describing what I wanted the app to do to AI and gradually turned the idea into a working product. My workflow evolved into this cycle: idea → discussion → specification → implementation → real-world test → refinement. I repeat it for each feature. Step-by-step: 1. I define the problem and user experience with ChatGPT. I discuss ideas, challenge assumptions, work through workflows, and decide how a feature should behave before changing the code. 2. Once the behaviour is clear, I turn the idea into an implementation task. I use AI to specify exactly what needs to change, including edge cases and how the new feature should interact with existing functionality. 3. I build and inspect the code with Cursor. Cursor works directly with the project codebase, allowing AI to investigate existing code, implement changes, and report exactly what it changed. I test the result rather than simply accepting AI-generated code. 4. I test development versions on real iOS and Android devices. I follow the actual user journey, take screenshots or capture errors when something isn’t right, and bring those results back into the AI workflow. 5. I use AI to diagnose problems, make another targeted change, and test again. The result is a real cross-platform application rather than a prototype. Shots2Points includes free casual Stableford scoring and an Event Mode designed for golf societies and groups. Organisers can create events, import players, allocate groups, and allow each group to enter scores while everyone follows a live leaderboard. Building the app has required much more than generating code. AI has helped me work through database design, APIs, authentication, in-app purchases, App Store and Google Play requirements, debugging, user-interface decisions, testing, and release management. The biggest lesson for me has been that AI doesn’t remove the need to understand the problem or make decisions. It gives one person access to capabilities that would traditionally have required several different specialists. I provide the product knowledge, requirements, judgement, and testing; AI provides much of the technical capability and an extraordinarily fast feedback loop. That combination allowed me to take a personal idea for improving golf scoring and event management and turn it into a functioning iOS and Android product.

Tools used
Industries
#aiappdevelopment#golf#mobileappdevelopment#reactnative#vibecoding
5
The Rundown team

Use Claude Code’s /insights as a personalized learning coach

I ask Claude every month or so to be my Claude Code learning coach by simply typing the /insights command. It provides a hyper-personalized website report card with advice to help me use Claude Code better, with exact examples of where things go wrong, features, and prompts I should try. Step-by-step: 1. I ran the /insights command in Claude Code to analyze how I had been using the tool. 2. I reviewed the personalized website report card it generated, especially the examples of where my workflow was breaking down. 3. I pulled out the recommended features, prompts, and habits that were most relevant to the mistakes I was making. 4. I practiced those recommendations in my normal projects instead of treating the report as generic advice. 5. I repeat the exercise every month or so to see what changed and what I should learn next.

Tools used
Industry
#coding#learning
0

Build a Claude Model Dispatcher to Reduce API Costs for Simple Tasks

I built a model dispatcher to avoid paying premium usage for simple tasks. In Claude, every task runs on the model used by the current session, so a two-line formatting fix can consume the same level of model capacity as a difficult strategic problem. I had Claude build a scoring system that evaluates each task across six dimensions: required reasoning, the amount of context, the importance of craft or nuance, whether speed is the priority, the number of agentic parts involved, and the potential consequences if something goes wrong. Based on the score, it recommends a model—from a light, fast option for rote work to the most capable option for genuinely difficult tasks—and suggests how much effort that model should apply. The key design choice is that the dispatcher never spends anything automatically. Scoring is free and instant, while sending the task to a model through the API costs real money. Dispatching therefore requires an explicit confirmation flag every time. Nothing runs without me saying go. The payoff is not dramatic from day to day. It comes from many small savings that add up, along with a habit shift: I check the router before sending a task instead of wondering afterward why a simple request cost more than it should have. Step-by-step: 1. I identified the problem: every task in a Claude session uses the current model, even when the task is simple. 2. I had Claude build a scoring system that evaluates each task across six dimensions: reasoning, context, craft or nuance, speed, agentic complexity, and the potential consequences of failure. 3. I used the score to recommend an appropriate model, from a light and fast model for rote work to the heaviest model for genuinely difficult tasks. 4. I included a recommendation for how much effort the selected model should apply. 5. I kept scoring free and separate from dispatching, since sending a task through the API costs money. 6. I required an explicit confirmation flag before dispatching any task, so nothing runs automatically. 7. I check the router before sending tasks and benefit from small savings that accumulate over time.

Tools used
Industry
3

AI Archery App for Arrow Detection, Grouping, and Scoring

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

Tools used
Industries
3