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!

Use ChatGPT to redesign a messy computer archive

I use ChatGPT to analyse and redesign the underlying structure of a messy computer archive. I first generate a folder tree locally with a Python script provided by ChatGPT and saved as a BAT file. The tree shows the hierarchy of folders and filenames, giving ChatGPT a broad view of how the archive is currently organised. From that structure, ChatGPT can identify where the organisation is too fragmented or too broad. For example, a client folder may contain ten nested subfolders with only a few text files in each, making the structure more complicated than the content requires. Elsewhere, hundreds of photos, screenshots, or documents may all sit in one folder, suggesting that more meaningful categories would help. ChatGPT can then propose a revised structure with more or fewer levels, depending on the actual content. It can also suggest more consistent naming conventions for folders and files, identify recurring subjects or topics of interest across the archive, and point out categories that already exist implicitly but have never been organised deliberately. For larger changes, I can ask ChatGPT to help create a copied version of the archive using the proposed structure rather than immediately reorganising the original files. This gives me a working prototype of the new system. I can browse it in Windows Explorer, see whether the categories make sense in practice, and adjust the structure before making any permanent changes. The result is not just a cleaner folder tree. It is a way to use AI to discover the information architecture hidden inside years of accumulated files and turn it into a structure that better reflects how the content is actually used. Step-by-step: 1. I use ChatGPT to generate a Python script that creates a folder tree locally, then save the script as a BAT file. 2. I use the folder tree to show ChatGPT the archive’s hierarchy of folders and filenames. 3. I ask ChatGPT to identify areas that are too fragmented or too broad, such as deeply nested client folders or folders containing hundreds of mixed files. 4. I ask ChatGPT to propose a revised structure with an appropriate number of levels, along with more consistent folder and file naming conventions. 5. I ask ChatGPT to identify recurring subjects and categories that already exist implicitly in the archive. 6. For larger changes, I ask ChatGPT to help create a copied version of the archive using the proposed structure instead of changing the original files immediately. 7. I browse the copied structure in Windows Explorer, assess whether the categories make sense in practice, and adjust the system before making permanent changes.

Tools used
Industry
#folderlayout
1

Build a phased backend operations system for a general contracting business

I built a backend operations system for my husband’s general contracting business. It manages new leads, bids and estimates, in-progress jobs, receipts, expense tracking, job photos, invoicing, and other functions he needs—all in one app built with ChatGPT and Base44. I rolled it out in phases. Phase one focused on tracking jobs and their status, phase two added financials, and phase three introduced executive functions. Phase four will cover marketing, although he does not need that right now because he is solidly booked for months. Step-by-step: 1. I built an all-in-one backend operations app using ChatGPT and Base44. 2. In phase one, I added tracking for jobs and their current status. 3. In phase two, I implemented financial functions, including receipts and expense tracking. 4. In phase three, I added executive functions along with other operational features such as leads, bids and estimates, job photos, and invoicing. 5. I planned marketing features for phase four, but postponed them because the business is solidly booked for months.

Tools used
Industry
0
pro The Rundown team

Plan a Housewarming Grazing Table for 70 Guests with Claude

I'm planning a housewarming party for about 70 people: 60 adults and 10 children. I knew I wanted to serve a large grazing board, along with a couple of big buckets of ice filled with canned beer, coolers, sparkling water, and other drinks. I told Claude about the party and asked it to create a shopping list based on the number of attendees. Claude produced a cohesive list with six cheeses and approximate quantities for each one. It did the same for the cured meats, crackers, bread, fruit, nuts, jams, and pickled items. It also suggested beverages, including a ratio of beer to coolers and nonalcoholic options. The list included juices and non-caffeinated sodas for the kids, along with a template showing how to lay out the grazing table. This was not a complex use case, but it was very helpful. Step-by-step: 1. I estimated the guest list at about 70 people: 60 adults and 10 children. 2. I described my plan to serve a large grazing board and drinks kept cold in a couple of big buckets of ice. 3. I asked Claude to create a shopping list based on the number of attendees. 4. I used Claude's recommendations for six cheeses, cured meats, crackers, bread, fruit, nuts, jams, and pickled items, including approximate quantities. 5. I reviewed its beverage suggestions, including the beer-to-cooler ratio, sparkling water, juices, and non-caffeinated sodas for the children. 6. I used the layout template to plan how to arrange the grazing table.

Tools used
Industry
1

Build an AI Editorial Intelligence System for a Midlife Newsletter

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

Tools used
Industries
3
The Rundown team

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

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

Tools used
Industry
2
The Rundown team

Use Claude to Organize Your Goodreads TBR List by Season

I love reading, but my Goodreads TBR list keeps growing faster than I can get through it. After years of adding books, I had forgotten what was actually there and was wasting time scrolling whenever I needed to choose my next read. I asked Claude to analyze my reading history, 4-star and 5-star ratings, author patterns, and recurring genres to create a profile of my book personality. I then used that profile to select and rank the next 50 books from my TBR list. Because I enjoy matching books to the season, I also asked Claude to organize the recommendations by seasonal feel. Now I have a reference list that makes it easier to decide what to read next. Step-by-step: 1. I exported my library data from Goodreads. 2. I uploaded two files to Claude: my Read list and my To-Be-Read list. 3. I used the prompt below to generate a personalized reading roadmap based on my book personality. 4. I used the resulting list as a reference so I would not spend as much time deciding what to read next. PROMPT I have attached two CSV files: 1. My Read list. 2. My To-Be-Read list. Create my book personality profile by analyzing my reading history, my 4-star and 5-star ratings, author patterns, and recurring genres. Using that data, filter and rank my To-Be-Read list to build a personalized roadmap of the next 50 books I should read from that list. Evenly organize recommendations into 4 seasonal blocks based on these descriptions: - Autumn: Atmospheric, moody, or suspenseful books with a cozy but engaging pace. - Winter: Immersive, complex, or cozy books (slower burns or dense world-building). - Spring: Fresh, character-driven, or thought-provoking fiction with a steady pace. - Summer: High-energy, immersive, or breezy books (fast-paced page-turners). Next, generate an interactive digital bookshelf widget to display the recommended books. The design should feature: - A warm, premium editorial color palette. - Minimalist style cards for each book displaying Title, Author, and color-coded genre badge. - Interactive navigation tabs at the top to toggle between the four seasons. - A functional "Mark as Read" click action on each card that visually updates a progress ring or tracker.

Tools used
Industry
1

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.

Tools used
Industry
#collectoritems
2

Catalog 60+ Physical Items with Gemini and a Whiteboard Grid

My mother recently moved into a retirement suite, which meant downsizing her possessions. We ended up with dozens of physical items she no longer had space for, and we wanted her children and grandchildren to have an opportunity to sign up for the family items they loved before anything was donated. I needed a way to catalog everything quickly, share the information remotely, and verify that we weren't accidentally giving away items of significant value. I tested a physical-to-digital workflow using Gemini. Instead of putting the items in a pile or typing out endless lists, I drew a numbered grid on a large whiteboard, placed one item in each square, and took a few photos. Gemini identified the objects by grid position, categorized them, estimated their market values, and built a ready-to-use spreadsheet with a signup column. The physical staging took about 30 to 45 minutes, depending on how many items were on that particular board. The entire digital workload—including cataloging, valuing, formatting, and creating the spreadsheet—took under 10 minutes. The process turned an overwhelming chore into something manageable and produced an end product that was easy for everyone to use. Step-by-step: 1. I drew a simple grid on a whiteboard, numbered each box, and placed one item in each square before taking photos. 2. I uploaded the photos to Gemini and prompted it to identify every item by its board name and grid number. 3. I asked Gemini to classify each item into logical groups, such as Glassware, Ceramics, and Woodcraft, and provide quick, realistic resale-market valuations based on visual condition. 4. I asked Gemini to generate a downloadable Excel file formatted as a signup catalog, with columns for Item ID, Grid Number, Description, Category, Estimated Value, and a blank "Claimed / Signed Up By" column for family members to enter their names. 5. I uploaded the file to Google Drive, converted it to Google Sheets, and added a note at the top explaining how tie-breakers would work if two family members wanted the same item.

Tools used
Industry
#communitysignup#decluttering#downsizing#familyassetsharing#inventorycatalogue
7

Build a Household Streaming Recommender for Shared Viewing

I built Show Hole to solve my family’s classic streaming problem: we spend too much time deciding what to watch, and the answer changes depending on who is actually on the couch. We each have different tastes, but the more interesting problem is that our tastes overlap differently in different combinations. I watch one kind of thing with my spouse, my spouse watches something different with our kid, and my kid and I have our own lane too. Most recommendation tools flatten that into one account profile, one watch history, or broad genre buckets, so they miss the real context of a household. Show Hole treats people and viewing contexts as first-class citizens. It recommends titles “in the vein of” something we liked, filters recommendations to the streaming services we actually subscribe to, avoids titles that the people present have already seen or vetoed, and explains why a recommendation fits tonight. Instead of relying mainly on genres such as comedy, drama, or sci-fi, Show Hole looks at more human taste signals: pacing, world building, humor, emotional weight, complexity, tone, and similar dimensions. It also learns from what we actually do after a recommendation: what we watch, skip, save for later, love, and drop. The result is a personal household recommender that understands “who is watching tonight?” as part of the question, instead of pretending one streaming profile can represent everyone. I designed the app using Claude design, then used those designs with Claude Code to build it. Step-by-step: 1. I identified the household viewing problem and accounted for the different combinations of people who might be watching together. 2. I designed Show Hole around people and viewing contexts instead of treating the household as one account profile, watch history, or set of broad genre preferences. 3. I had it recommend titles “in the vein of” something we liked, filter them to the streaming services we subscribe to, exclude titles already seen or vetoed by the people present, and explain why each recommendation fits that night. 4. I used taste signals such as pacing, world building, humor, emotional weight, complexity, tone, and similar dimensions instead of relying mainly on genres. 5. I made the recommender learn from what we watch, skip, save for later, love, and drop after receiving a recommendation. 6. I designed the app using Claude design and used those designs with Claude Code to build it.

Tools used
Industries
pro The Rundown team

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.

Tools used
Industry
0
The Rundown team

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.

Tools used
Industries
0
pro The Rundown team

Use Claude to Create a Home Insurance Personal Belongings Inventory

I needed home insurance and was asked to estimate the value of all my personal belongings. I asked Claude to search my personal email and make a list of all the purchases I had made in the past year. I asked my husband to do the same and share his list with me. I also made a list of our valuables and took a picture of each room in the house. I gave all of that information to Claude, which produced a list of everything I owned and estimated its rough value. It cross-referenced the purchases with the items visible in the photos to make sure I did not double-count anything. I sent the list to my insurance broker, who said it was extremely helpful and could also serve as supporting evidence if I ever needed to submit an insurance claim.

Tools used
Industries
#insurance
4

Build Specialized AI Agents for More Consistent Results

Most people use AI as a single general-purpose assistant. The problem is that every new conversation starts from scratch, while one AI constantly switches between roles such as researcher, writer, programmer, strategist, and editor. This often leads to inconsistent results and repeated prompting. Instead, I built a team of specialized AI agents, each with a single responsibility. By giving every agent a clear role, instructions, and context, I created reusable experts that become more consistent over time. Step-by-step: 1. I identified the different roles I needed, including researcher, writer, programmer, strategist, and editor. 2. I assigned each AI agent a single responsibility instead of asking one general-purpose assistant to handle every role. 3. I gave each agent a clear role, instructions, and relevant context. 4. I reused these specialized agents instead of starting every conversation from scratch.

Tools used
Industry
tojeda.com https://tojeda.com/compound/
9

Build a Controlled Self-Improvement Loop for AI Agents

Most AI agents are effectively static. You write their instructions, use them repeatedly, notice where they struggle, and manually tweak the prompt when something goes wrong. Valuable feedback from real work is often lost, so the same mistakes can keep happening. I created a self-improvement flywheel that uses actual agent performance data to improve agents over time. The system collects two kinds of evidence: - Task scores showing how well each agent performs across different quality dimensions - Run telemetry and review outcomes revealing recurring failures, coordination problems, and cases where actual behavior differs from expectations A scheduled weekly cycle analyzes that evidence, identifies patterns, creates improvement proposals, evaluates whether those proposals are safe and broadly applicable, updates agent instructions when appropriate, and measures whether those changes actually improve performance. The goal is not to let agents rewrite themselves freely. It is to create a controlled learning loop. Step-by-step: 1. Collect performance data while agents work. Score important outputs across consistent quality dimensions, and record useful execution telemetry such as failures, decisions, reviewer outcomes, and unexpected behavior. 2. Analyze performance trends on a recurring schedule. Calculate per-agent averages, identify weak dimensions, compare agents, and look for improvement or decline over time. 3. Mine run history for recurring patterns across multiple sessions, including agents that repeatedly struggle, low-quality runs, and cases where expected behavior differs from what actually happened. 4. Turn repeated problems into improvement proposals. Before proposing a change, inspect the agent’s current instructions so you do not add a rule that already exists. 5. Evaluate each proposal before applying it. Check whether the lesson is broadly useful, redundant with existing instructions, or in conflict with established behavior. 6. Separate low-risk and high-risk changes. Automatically apply additive or clarifying improvements. Escalate conflicting changes for human review instead of allowing the system to fundamentally change an agent’s behavior on its own. 7. Look for system-level problems. Analyze patterns across agents to identify quality gaps, missing capabilities, or coordination failures that cannot be fixed by changing one agent alone. 8. Apply approved improvements and preserve the history. Update the relevant agent instructions, archive the processed proposals, and version the changes so they remain inspectable and reversible. 9. Measure whether each change actually helped by comparing agent performance before and after the refinement. If quality does not improve, do not automatically assume the change was useful. 10. Repeat the cycle. As agents complete more real work, the system gathers more evidence and gets another opportunity to improve. Instead of treating agent instructions as static prompts, I turned them into a continuously improving system: Work → Evaluate → Find Patterns → Propose Changes → Refine → Measure → Repeat The important part is that the loop is evidence-driven and controlled. Agents improve from real usage, but low-confidence or behavior-changing updates still require judgment rather than being applied automatically.

Tools used
Industry
#agenticai#aiagents#aievaluation#selfimprovingai
5

Build a Daily Conversation Workflow for Incubating Creative Ideas

I built a second workflow that scans my conversations daily for ideas worth developing, especially strange connections, creative concepts, humor, research leads, unfinished experiments, and thoughts that may have seemed minor when they first appeared. Instead of turning everything into tasks, it creates an incubator: a place where interesting material can remain dormant until it connects with something new. The daily scan looks for fragments with creative or exploratory potential. They do not need to be fully formed ideas. A small observation, an odd comparison, a half-finished concept, a recurring image, or a funny side remark can all be worth keeping if they might become meaningful later. Once a week, the incubator revisits the material collected during the previous days. That weekly revisit makes connections across separate conversations more visible. Something that looked isolated on Tuesday may suddenly echo a thought from Friday or fit a project that did not yet exist when the original idea appeared. The important part is that the incubator does not treat every interesting thought as something that must immediately become productive. Some ideas benefit from being left alone for a while. They can sit next to other fragments, reappear in later conversations, or become useful only when a new context gives them meaning. The workflow is less about extracting the “best ideas” and more about preserving creative potential while allowing patterns to emerge gradually. It also surfaces unfinished experiments and research leads that I might otherwise forget, without turning the archive into a traditional task manager. That distinction matters to me: not everything valuable needs an action item. Some things are seeds, references, questions, jokes, aesthetic directions, or possible future worlds. Over time, the incubator becomes a kind of creative compost layer on top of the conversation archive: new material is gathered daily, revisited weekly, and allowed to combine into directions that would be difficult to plan deliberately. In simple terms: daily conversation scan → promising fragments → weekly revisit → emerging connections → incubation → later rediscovery and development The goal is not to force ideas into projects. It is to keep good material alive long enough for the right project to find it. Step-by-step: 1. I scan my conversations each day for strange connections, creative concepts, humor, research leads, unfinished experiments, and other fragments with creative or exploratory potential. 2. I preserve promising material in an incubator instead of immediately turning every item into a task. 3. I keep small observations, odd comparisons, half-finished concepts, recurring images, funny side remarks, seeds, references, questions, aesthetic directions, and possible future worlds—even when they are not fully formed. 4. I revisit the material collected during the previous days once a week. 5. I look for connections across separate conversations, including links between ideas that initially seemed isolated or between fragments and projects that did not yet exist. 6. I allow ideas to remain dormant, sit alongside other fragments, reappear in later conversations, or become useful when a new context gives them meaning. 7. I resurface unfinished experiments and research leads without turning the archive into a traditional task manager. 8. I let the material combine gradually so that new directions can emerge through later rediscovery and development.

Tools used
Industry
#creativework#incubator
2

Build an n8n AI Newsletter Digest in Gmail

One email instead of 50: an n8n workflow that reads all my AI newsletters and sends me a single daily digest in under 2 minutes THE PROBLEM: I subscribe to dozens of AI newsletters. The Rundown, Superhuman, TLDR, The Neuron, AlphaSignal, TheSequence, Turing Post and many more. Reading them took hours every day, and most of them cover the same three stories. I wanted the coverage without the reading time. So I moved every subscription to a dedicated Gmail address and let n8n read that inbox for me. It has run daily since February 2026 and I now read one email a day instead of 50. STACK: n8n (hosted on Hostinger), Gmail, Google Gemini 2.5 Pro. HOW TO BUILD IT: STEP 1: Create a dedicated Gmail account and move every newsletter subscription to it. This one decision makes everything else simple. Your personal inbox stays clean and the workflow never touches mail that is not a newsletter. STEP 2: Schedule Trigger node, daily at 08:00. Set the workflow timezone (mine is Europe/Stockholm) or the trigger runs on server time. STEP 3: Gmail Get Many Messages node on the newsletter account. Filter by read status: unread. Return All: on. Simplify: OFF. That last toggle matters, see gotcha 2. STEP 4: Connect two branches off that node. Branch one is a Gmail Mark As Read node with message ID {{ $json.id }}. Unread is the whole state system: each run only fetches what arrived since the last run. No database, no date filters, no dedupe logic. STEP 5: Branch two is an Aggregate node. Aggregate the "html" field of every email into one array field called CombinedNewsletter. This means one AI call per day instead of one call per email. STEP 6: AI Agent node with a Google Gemini Chat Model attached (models/gemini-2.5-pro). Turn on Retry On Fail with 5000 ms between tries. The prompt: Below is all the news in html format. Only use what is provided; if the HTML looks cut off, still summarize everything you can see. {{ $json["CombinedNewsletter"].join('\n\n').substring(0, 250000) }} The substring cap is load bearing, see gotcha 1. System message (verbatim, numbering written as (1) so this form does not strip it): "You will receive ALL the AI newsletters from the past day in HTML format. Your task: (1) Extract every distinct news item (no duplicates, even if repeated in multiple newsletters). (2) For each item, find: a short, human-readable title, the best URL, a one-sentence summary (max 25 words). (3) Estimate popularity based on how many newsletters mention it. If an item appears only once, rank by how interesting the general public might find it. Output format (Markdown only): # Daily AI News Digest, then '## Top headlines' listing the 5 most popular/important items as 'Title Summary sentence', then '## More news' listing all remaining items in the same format. Rules: Always use Markdown links like Title, never show bare URLs. Do not skip any news item. Do not add any commentary, explanations, or closing text beyond the structure above." STEP 7: Markdown node, mode Markdown to HTML, destination key combinedHTML. STEP 8: Gmail Send node to your personal address. Subject: Here's ALL the AI News! {{now.toFormat('yyyy-MM-dd')}}. Wrap {{ json.combinedHTML}} in a full HTML document with inline CSS: white card, max-width 720px, system fonts, styled links. See gotcha 4. FOUR THINGS THAT COST ME HOURS: (1) Raw newsletter HTML broke Gemini. The workflow refused to execute with a payload limit error. Newsletter HTML is enormous: tracking pixels, nested tables, inline styles. Fifty of them concatenated is millions of characters. The .substring(0, 250000) cap in the prompt fixed it, and the "if the HTML looks cut off, still summarize" line tells the model how to handle the truncation. (2) Gmail's Simplify toggle is on by default and strips the message body. Gemini kept receiving empty or gutted content and no error explained why. Turn Simplify off to get the full html field. (3) Gemini rate limits AND timeouts both hit on big runs. Retry On Fail with a 5 second wait fixed both. Without it, one 429 kills the whole morning digest. (4) Sending the model's raw markdown as email looked broken in Gmail. Two part fix: a Markdown to HTML node, then a proper HTML template with CSS in the send node. RESULT: the latest real run turned 50 unread newsletter emails into one clean digest in less than 2 minutes (1 minute 27 seconds to be exact). Running every morning since February 2026. Honest failure mode: mark as read runs as a parallel branch, so if Gemini fails after all retries, that day's emails are already marked read and drop out of tomorrow's digest. I accepted that trade off. The alternative is duplicate items on every retry, and one missed day costs less than a digest full of repeats. Rebuild time: about 30 to 45 minutes if the dedicated inbox already exists.

Tools used
Industry
#dailydigest#emailautomation#informationoverload#newsletter#summarization
6

Build a Photo-Based Meal Tracker with an Email and iMessage Agent

I built a meal tracker where my only job is to photograph a plate and send it to an agent. Identification, portion estimates, macros, storage, corrections, and the weekly review happen without me. The part worth stealing isn't the food. The agent has its own email address and iMessage thread, so anything I can send from my phone becomes an input. I send a photo through whichever channel takes fewer taps. I send corrections as plain English with `CORRECTION` in the subject, and answer questions in the same thread. There’s no app and no form. Adding a channel took an afternoon and changed what the agent could be pointed at—the tracker is just one use of an agent you can talk to. It polls on a schedule instead of using a webhook because my laptop sleeps and a local gateway would be unavailable half the time. Storage is append-only JSONL. Corrections append a new record with the same ID using last-write-wins, so the stats layer sees one meal while the original estimate stays on disk. Every number can be traced back to the model’s first guess and my override. The accuracy mechanism is a challenge step. Every photo is estimated twice: first by the main model, then by a blind subagent that receives only the photo and the rubric—not the first answer. If it identifies different food, the entry is downgraded to low confidence and becomes a question for me. Testing before making the system autonomous caught bugs that otherwise would have failed silently. The API returns attachments under a different field than I had assumed, and only on the detail endpoint. As a result, a photo email was read as having no attachments, and every meal photo would have been dropped while the daily task logged a tidy “no new meals” and appeared healthy. The send path was separately broken, which would have killed the weekly review on a Sunday even with everything upstream working. A silent no-op that produces a plausible clean run is what this category of build is prone to. The bug that actually cost me was token usage: each blind challenge read used about 44,000 tokens, so a five-photo dinner cost roughly 220,000 tokens for one meal and capped my usage. The fixes, in order of effect, were to run the challenger on a cheap model, skip it once a named product or my confirmation has settled the entry, downscale photos for viewing, and republish the dashboard only when the data changes. Measuring first mattered—I would have blamed photo size, but that was the smaller half. The honest limits are important: calorie estimates from a photo are 20–25% off at best, identification error is a bigger risk than arithmetic error, and alcohol, water, and caffeine are never estimated from photos. The sequence in which I asked for things mattered more than any single instruction: Step-by-step: 1. I gave the goal and the one ingestion mechanic I was sure about, then insisted on an agreed plan before any code. Arguing about storage and failure modes is cheap before code is attached. 2. Before scheduling anything, I processed one real input end to end in front of me, including every outbound path. Inbound gets tested because I use it; the reply and the weekly digest do not. 3. When the agent reported something about my own input that I knew was wrong, I said so and made it re-check. Confidently wrong answers about things I witnessed were the cheapest bugs to find. 4. I asked for an independent second assessment of anything estimated rather than read, and decided up front what level of agreement was enough to accept the result. 5. I asked for a visible audit surface showing every field the agent claims to track, with a correction control on it. 6. I asked the agent to look up anything knowable rather than estimate it. A named product is a lookup; only the unnameable needs a guess. 7. I treated approval friction and token cost as requirements rather than complaints, and measured before changing anything. Almost every rule exists because something went wrong in ordinary use, not because it was designed up front. An agent I can email or text, which keeps records and answers back, is general-purpose; I’ve pointed it at one narrow job. What else would you point it at?

Tools used
Industry
2

Build an Ongoing Human-AI Thinking Partnership with ChatGPT

I started with a problem: Most people use AI transactionally. They ask a question, get an answer, and leave. That makes AI useful, but it leaves much of its potential untapped. I wanted to find out what would happen if a human and an AI developed an ongoing working relationship—one where context, previous discoveries, disagreements, successes, failures, and the human’s way of thinking accumulated over time. I use ChatGPT, but the goal isn’t to have AI think for me. I remain the decision-maker. The AI’s job is to expand my ability to think: challenge assumptions, identify blind spots, connect seemingly unrelated information, preserve useful context, and sometimes disagree with me. Step-by-step: 1. I established the relationship by telling the AI that I didn’t simply want agreement or answers. I wanted an ongoing thinking partner that could challenge my reasoning while leaving decisions and agency with me. 2. I established operating roles. Over time, ours developed into six modes: Mirror, Builder, Sentinel, Teacher, Witness, and Operator. The AI can reflect my reasoning, help construct something, identify risks or contradictions, teach unfamiliar material, observe patterns across conversations, or help execute a defined task. 3. I separated knowledge from judgment. When we solve difficult problems, we distinguish between facts, reasonable inferences, unknowns, and opinions. This helps prevent a confident AI response from being mistaken for established truth. 4. I let disagreement remain in the system. I correct the AI when it’s wrong, and it challenges me when my assumptions don’t fit the evidence. Instead of treating those moments as failures, I treat them as part of the accumulated context of the relationship. 5. I preserved useful context across different domains. I use the same AI relationship for automotive diagnostics and engineering, business decisions, financial reasoning, writing, research, project planning, and philosophical questions. Something learned in one area can unexpectedly become useful in another. 6. I evaluated the human, not just the AI. The final test isn’t, “Did the AI produce a good answer?” It’s: Did this interaction leave the human better able to understand the problem, make the decision, or solve the next one? After hundreds of conversations, something unexpected happened. The value stopped being any individual prompt or answer. It became the accumulated interaction itself. The AI gained context about how I reason, while I became better at questioning the AI. Previous discoveries started informing new problems, including problems that appeared completely unrelated. Someone can recreate this without special software, coding, or an API. Start with an AI that supports ongoing context or memory, establish the operating principles above, use it consistently across real problems, correct it when it’s wrong, invite disagreement, and allow useful context to accumulate. My original experiment was essentially this: Can an ongoing human-AI relationship make the human more capable rather than more dependent on the AI? Somewhere along the way, I realized we had built a framework for doing exactly that. We gave it a name: Confluxus. The measure of its success isn’t how much the AI can do for me. It’s how much more capable I become because of the relationship.

Tools used
Industry
1

Build an AI Investment Research and Monitoring System

AI is useful for researching investments, but most workflows stop at “What should I buy?” The harder part comes afterward: Does the idea make sense given what I already own? What would make me add to the position? When should I take profits? What evidence would prove the original thesis wrong? And how do I track all of that without constantly watching the market? I use AI to turn a one-time investment research session into an ongoing decision and monitoring system. I start by asking AI to research the market for potential opportunities. In my case, I look specifically for strong mean-reversion trades, but the same workflow could start with value opportunities, macro themes, sector rotations, individual stocks, crypto, or almost any other investment strategy. Then I give AI my actual portfolio so it can evaluate those ideas in context. After I decide which recommendations I agree with and manually make the trades, I have AI convert each investment thesis into explicit rules for what should happen next. Finally, I turn those rules into automated monitors that periodically check market conditions and alert me only when something happens that warrants another decision. Step-by-step: 1. I define what I’m looking for by asking AI to research potential investment opportunities using criteria I care about, such as mean reversion, valuation, momentum, macro conditions, risk/reward, or another strategy. 2. I have AI investigate current market conditions and rank the opportunities, narrowing a large universe down to a manageable set of ideas worth examining further. 3. I pressure-test each thesis by asking why the opportunity exists, what could drive the expected outcome, what the major risks are, and—most importantly—what evidence would invalidate the thesis. 4. I provide my current holdings so AI can identify overlapping exposures, concentration risks, hedges, or positions that conflict with the new ideas. 5. I ask AI which existing positions the research suggests reviewing and where new exposure might make sense. The goal is a small number of actionable decisions rather than a giant list of interesting trades. 6. I review the analysis and independently decide whether to buy, sell, hold, or do nothing. I keep actual trade execution under human control. 7. Before the market moves, I define the next decision for every position by asking AI to identify conditions that would warrant reviewing whether to: - Add - Take profits - Reduce exposure - Exit - Reconsider the original thesis 8. I turn those conditions into automated monitors. I have ChatGPT periodically check the relevant prices, yields, economic indicators, news, or other variables. Instead of sending routine updates, I tell it to alert me only when a predefined trigger occurs. 9. When a trigger fires, I return to the original thesis with the new information and decide what—if anything—should change. Instead of using AI for isolated investment recommendations, I now have a repeatable loop for managing an investment thesis over time: Find an opportunity → Understand it → Compare it to what I own → Make a decision → Define what would change my mind → Let AI watch for it The most useful part may actually come after the investment decision. By deciding in advance what evidence would make me add, take profits, or reconsider the thesis, I don’t have to start my analysis from scratch every time the market moves. AI becomes a persistent research and monitoring layer while I remain responsible for every investment decision and trade.

Tools used
Industry
#aiinvesting#investmentresearch#marketresearch#personalfinance#portfoliomanagement
6

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