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!

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

Personalize Job Applications with GPT, Canva, and Role-Specific CVs

I built a job application workflow that goes beyond finding vacancies and generating generic CVs. First, GPT helps me scan for vacancies that match my practical requirements, interests, skills, and preferred types of work. The more useful part starts when a vacancy looks genuinely promising. I connected GPT to Canva and created several “base CVs” for the sectors and roles I was interested in. Instead of using one universal template, I designed each CV to fit the visual and cultural tone of a particular type of work. For example, a front-desk role, a back-office administrative position, and an assistant role in a creative company may involve overlapping skills, but they communicate very different expectations. Each base CV therefore uses different layout choices, colour use, visual tone, and photo selection. For every version, I review several possible photos and choose the one that best matches the role and the impression I want to convey. When I apply for a specific vacancy, GPT helps turn the relevant base CV into a more personalized version. Instead of rewriting my entire work history, we emphasize the experience, tasks, strengths, and values that are genuinely most relevant to that role. The same applies to motivation letters. Rather than generating a generic corporate letter, GPT uses a tone of voice shaped through months of conversation with me. The goal is for the application to sound recognizably like me while still matching the language, priorities, and culture of the vacancy. Before building this workflow, I did everything manually. For a vacancy that felt worth applying to, I typically spent around two hours refining the CV and motivation letter alone, not including the time spent searching for the vacancy. Even a small typo in the final application email could undermine hours of careful work. Now, once I decide a vacancy is a good fit, the full personalization process takes around twenty minutes on average. That includes selecting the right base CV, adapting the emphasis, refining the letter, checking the tone, and preparing the final application. The workflow works across several layers: vacancy discovery, role and sector matching, base CV selection, adapting experience and values, adjusting visual tone, personalizing the letter, final review, and application. What I like about this approach is that personalization is not limited to inserting keywords from a vacancy. It includes content, visual identity, emphasis, tone, and context. The result is a small family of CVs rather than one document being stretched awkwardly across every possible job. Each version keeps the same underlying career history while presenting the parts that matter most for a particular type of role. The biggest improvement is not only speed but consistency. The workflow reduces repetitive manual rewriting while keeping each application specific, personal, and carefully matched to the role. It turns roughly two hours of manual polishing per strong vacancy into about twenty minutes of collaborative refinement, with fewer opportunities for small final-stage errors to spoil an otherwise strong application. Step-by-step: 1. I use GPT to scan for vacancies that match my practical requirements, interests, skills, and preferred types of work. 2. When a vacancy looks promising, I identify the relevant sector, role, and type of impression I want to convey. 3. I use Canva and GPT to create and maintain several base CVs, each with its own layout, colour use, visual tone, and photo selection. 4. For each base CV, I review several possible photos and choose the one that best fits the role and the impression I want to convey. 5. I select the base CV that best matches the vacancy. 6. I adapt the CV by emphasizing the experience, tasks, strengths, and values that are genuinely most relevant instead of rewriting my entire work history. 7. I use GPT to personalize the motivation letter in a tone shaped through months of conversation with me, while matching the vacancy’s language, priorities, and culture. 8. I check the tone, review the application for small errors such as typos, and prepare the final application. 9. I complete the personalization process in around twenty minutes on average instead of spending roughly two hours on manual polishing for a strong vacancy.

Tools used
Industry
#jobapplications#resume#vacancyalert
4

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

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 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 Blood Pressure Tracking App with Claude Code and Supabase

My doctor asked me to track my blood pressure for a month because it was on the high side before prescribing any medication. I initially recorded each reading manually in an Excel sheet, but after a few days, I wanted a simpler way to enter and manage the data. I uploaded the sheet to Claude Code and asked it to build a blood pressure tracking app. After the app was built, I hosted it on Netlify, used Supabase as the backend to save data for both my wife and me, and added it to my iPhone Home Screen. Step-by-step: 1. I started tracking my blood pressure in an Excel sheet as my doctor requested. 2. After several days of entering the readings manually, I uploaded the sheet to Claude Code. 3. I asked Claude Code to build an app for tracking blood pressure. 4. I hosted the app on Netlify. 5. I used Supabase as the backend to save blood pressure data for both my wife and me. 6. I saved the app to my iPhone Home Screen for easier access.

Tools used
Industry
5
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

Turn Expert Interviews Into an AI-Powered Knowledge Base

Many organizations have critical process knowledge that exists only in employees’ heads. When someone has a question, they have to track down the right expert, ask questions others may have already asked, and hope they remember every detail. This doesn’t scale and creates knowledge silos. I built a workflow that turns conversations with subject matter experts into structured, searchable organizational knowledge. Instead of asking employees to write documentation, an AI interviewer guides them through the process they know best, converts the conversation into well-structured documentation, and publishes it to an AI-powered knowledge base that anyone can query. Step-by-step: 1. Ask an employee to choose a business process they know well. 2. Have an AI interviewer ask follow-up questions to capture the complete workflow, decisions, exceptions, and best practices through a natural conversation. 3. Save the interview transcript. 4. Use an LLM to convert the transcript into structured documentation with clear sections, steps, decision points, and FAQs. 5. Store the documentation in a searchable knowledge repository and index it in a vector database. 6. Let employees ask questions through an AI assistant that retrieves the most relevant documentation and answers in natural language. 7. Repeat the process over time as processes evolve or additional experts contribute new knowledge. Instead of repeatedly interrupting the same subject matter experts, employees can get consistent answers from an AI assistant backed by documented organizational knowledge. The organization captures valuable expertise before it’s lost, reduces knowledge silos, improves onboarding, and creates documentation simply by having conversations.

Tools used
Industry
#businessprocesses#institutionalknowledge#knowledgemanagement#rag#vectorsearch
6

Build a Personalized Daily Tracking System with Claude

I built a personal daily tracking system called Artifact. It gives me a way to log my days and turn the data into decisions over time. To use it, I copy everything attached—or screenshot the included “green orange red” example—and paste it into my AI assistant, preferably Claude. The assistant briefly interviews me and then builds a personalized daily tracking system.

Tools used
Industry
3
The Rundown team

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

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

Tools used
Industries
0

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

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 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 AI-Powered Good News Feed with RSS and OpenRouter

I read the news every day, but it had become increasingly depressing and was making me miserable. What bothered me most was that it also felt inaccurate: although bad things are happening, there have been many positive developments over the past five years that rarely receive sustained coverage. Major news sites might publish an article or two about them, but those stories are quickly buried under negativity. I wanted a way to get only positive news stories in my feed each day. Keyword filters did not work: “record” and “breakthrough” also appear in stories about record wildfire seasons, while “war” can appear in “war ends.” Off-the-shelf sentiment analysis was not useful either. A happy press release about layoffs can be classified as positive, while a dry factual story about a disease being eliminated may be classified as neutral. So I trained a basic artificial version of my personality using a series of prompts about what I consider positive in the world. I connected it to Mistral through OpenRouter and gave it access to public RSS feeds from news sites I already trusted. This eventually became Rally News, which I published on Google Play. iOS has been more difficult. The app surfaces positive stories from more than 20 news sites in an endless scroll, giving me an alternative to my uncomfortable TikTok addiction. Because I made it public, I decided not to host article text: publishers keep their traffic and revenue, while the tool remains ethical. The system runs on a GitHub Actions cron job that pushes stories to a PHP and MySQL database. I built the app without coding experience for about $25 per month. Step-by-step: 1. I collected RSS feeds from established publishers I already trusted and stored the list as configuration. I started with about 10 feeds instead of a few hundred so I could realistically read the output. 2. I set up a scheduled GitHub Actions cron job to run a Python script that pulls new items from every feed. 3. I deduplicated incoming articles against the database using the URL and a normalized title. Syndicated stories frequently reappear under slightly different URLs, and I did not want to pay to evaluate the same article twice. 4. I wrote the filter prompt as a long persona document rather than a one-line instruction. It explains what I consider progress, what I consider a puff piece, and which cases should fail—for example, celebrity news is not good news, a company announcing an intention is not the same as taking action, and a local feel-good story without wider significance does not qualify. 5. I sent each new article to an LLM through OpenRouter and required JSON output containing a pass-or-fail decision and a short justification. 6. For the first few weeks, I read the justifications every day. Whenever I disagreed with the model, I added a new rule to the persona document. That review loop required nearly all of the actual work. 7. I wrote passing articles to MySQL with only the headline, source, link, and metadata, leaving the article body with the publisher. 8. I pointed the website and mobile app to the same database. 9. I added a second GitHub Actions job that assembles a daily newsletter from the same data through Brevo, allowing one evaluation pass to feed three surfaces.

Tools used
Industries
#aggregator#app#news#positivity
4
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

Build a SharePoint Document Management System with Perplexity Computer

How I Use AI: Building a Client's Entire Document System From Scratch I run a boutique accounting practice, and one of my biotech clients — a preclinical oncology company — needed something I didn't have time to build by hand: a real, standardized document management system in SharePoint. Not just folders, but the rules behind the folders — a tagging taxonomy, a naming standard, guides for the team to actually follow it, and a clean way to organize documents for every vendor we work with. The kind of project that's easy to keep putting off because it's tedious, not because it's hard. So I used Perplexity's Computer agent as a genuine working partner on it, not just a search tool. Where it started I already had a first draft of a Tagging Taxonomy and a Document Management Standards document. I asked Computer to review both with an eye toward what a real accounting/finance team would actually need — GAAP-heavy, audit-ready, built for a lean biotech team that's going to scale fast. It came back with concrete recommendations (new functional areas I hadn't accounted for, cleaner naming conventions), and once I gave the go-ahead, it revised both documents into new, cleaner versions — taxonomy v1.1, standards v5.4 — complete with version histories so nothing got lost in the shuffle. Then it went further than I expected: 13 "START HERE" guide files, one for every top-level folder area, each explaining not just what goes where but why, with real examples. That's the part that actually makes a standard stick — nobody follows a rulebook they don't understand. Where it got real Here's the part I'd actually tell someone about: I tried uploading the whole folder structure to the client's SharePoint through the browser, and it failed — quietly, no big error, just close to 100 folders silently missing afterward. I was frustrated, and I said so. Computer didn't get defensive about it — it dug into why, compared the folders that made it against the ones that didn't, found the exact character-length boundary where things broke, and built me a PowerShell script that would fix it if I needed it. Then, while I was testing a fix, I discovered the real answer myself: dragging the folder from my hard drive straight into the OneDrive-linked folder in File Explorer worked perfectly, no script needed at all. When I told Computer that, it didn't just take my word for it — it went and calculated the actual path lengths involved to confirm why that method worked and the browser upload didn't, so I understood the real mechanism instead of just getting lucky once. That back-and-forth — me testing in the real world, it verifying the "why" — is honestly the most useful part of working with it. It's not just generating stuff and hoping it's right. The vendor folder win The last piece was the most tedious one I was dreading: building a dedicated document folder — vendor master file, agreements, POs, invoices, correspondence, the works — for every vendor worth tracking. I pulled a vendor spend report out of QuickBooks, sorted by dollar volume, and picked out the real vendors (CROs, law firms, key consultants) versus the noise (hotels, gas stations, one-off restaurant charges). I handed that list over, and Computer built me a script that took it from there: cleaned up messy vendor names (ampersands, apostrophes, trailing punctuation — all the stuff that breaks Windows folder names), handled the one legal name that was way too long automatically, and made sure nothing silently failed the way the original upload did. It tested the script against my actual vendor list before ever handing it to me, so I wasn't the guinea pig for its own bugs. 133 vendors, 1,463 subfolders, dropped into staging, dragged to OneDrive, and the count matched exactly — 1,474 on the nose once you add back the original template folder. That's not a "looks about right" number. That's a number I checked, twice. Why it's worth it Building this by hand for BreakthruMed Inc. — the folder architecture, the governance docs, 13 training guides, and a dedicated set of folders for 133 vendors — would realistically have taken me a couple of weeks of solid, focused work, not the few days I first assumed. Instead, it took about 28 hours spread across three weeks of back-and-forth, testing, and real-world validation, plus roughly $200 in extra usage on top of my regular subscription. That's a real cost, but a small one next to two or three weeks of my own time — and what I walked away with wasn't just a folder tree. It was a governance framework, training material my team can actually use, and two reusable scripts I'll put to work on the next client — a system I trust, because I checked it, and it checked itself

Industries
4

Build an AI-guided critical inquiry tool for public speaking students

I teach and direct a required general education public speaking class at a small college. I’ve built the course around critical inquiry, critical thinking, and public advocacy of a localized problem. Over the years, I’ve noticed that students are increasingly reluctant to engage with the underlying problem. They are often content to identify a problem with enough certainty that they assume their perspective is obviously shared by everyone else. They may also believe that their preferred sources are more certain or credible, leading them to build a case based only on their limited perspectives. With the help of ChatGPT, I built an AI tool that guides students through the problem- and solution-discovery process. It begins with a general question: “what is your topic and what is the problem?” Students often respond with a one-word or incomplete answer, such as “poverty,” “crime,” or “the high cost of education.” These answers do not identify the topic’s deeper dimensions, the extent of the harm, or who is affected by the issue. The AI pushes back on these statements and helps students explore the issue in greater depth. It consistently asks, “what do you mean by x?” I constrained the AI to draw most of its knowledge from the coursepack I wrote for the class, which outlines the assignments, lessons, and instructional content. This keeps the tone of the interaction and the examples provided to students aligned with the overall feel of the course. The AI does not create speeches, make outlines, or find sources for students. Instead, it asks questions that help them refine the direction of their speeches. Whenever possible, the AI also identifies alternative viewpoints from sources traditionally associated with the student’s own perspective. For example, if a student is advocating a progressive viewpoint, the AI may identify statements or research from progressive sources that disagree with that perspective. If the student is advocating a conservative viewpoint, it may identify statements or research from conservative thinkers that challenge the student’s position. This helps students recognize the complexity of ideas and understand that people on the same political, religious, or ideological side do not necessarily agree on every topic. As is often the case when I build GPTs, the 8,000-character limit requires me to move many instructions into a document that I upload to the GPT’s resources. ChatGPT is helpful when I decide which content belongs in the configuration and which content can go in an uploaded document. Step-by-step: 1. I designed the public speaking course around critical inquiry, critical thinking, and public advocacy of a localized problem. 2. I identified a recurring challenge: students often named broad topics such as “poverty,” “crime,” or “the high cost of education” without exploring the depth of the issue, the degree of harm, or who is affected. 3. With help from ChatGPT, I built an AI tool that begins by asking, “what is your topic and what is the problem?” 4. I configured the AI to push back on incomplete answers by repeatedly asking, “what do you mean by x?” 5. I constrained the AI to draw most of its knowledge from my coursepack, including the class assignments, lessons, and instructional content. 6. I instructed the AI to guide students with questions rather than create speeches, make outlines, or find sources for them. 7. I configured it to identify alternative viewpoints, including disagreements from sources traditionally associated with the student’s own political, religious, or ideological perspective. 8. Because of the 8,000-character limit, I moved some instructions into a document uploaded to the GPT’s resources and used ChatGPT to help decide what belonged in the configuration and what belonged in the document.

Tools used
Industry
#chatgpt#college#criticalthinking#highereducation#publicspeaking
5

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

Plan a Year of Cultural Events with ChatGPT

I first create my own shortlist of cultural events and collect all the relevant links in a simple text document. Then I give the document to ChatGPT along with my planning criteria. The goal is not to have AI decide what I should attend. I have already chosen the events that interest me. The useful part is turning that scattered shortlist into a realistic yearly plan. ChatGPT checks the event and venue pages, gathers the practical information, and organises everything into a chronological overview divided by month. Under each month, it lists the selected events in date order, including the day, date, location or cultural venue, a short description, and relevant ticket prices. This is especially useful because pricing systems differ between venues. Discounts, subscriptions, social tariffs, and reduced rates may apply in completely different ways. ChatGPT can compare those structures and help me understand what each event would actually cost instead of relying on the headline ticket price. The second planning layer is logistics. For each event, I assess how realistic the trip is by public transport, including the journey there and, importantly, whether getting home after the event is still feasible. I also use separate scores for how strongly I want to attend an event and how easy or difficult the logistics are. This makes it much easier to compare several months at once and decide where my cultural budget and energy are best spent. If an event is too expensive or logistically awkward, ChatGPT can look for practical alternatives, such as another performance date, the same production at a closer venue, a cheaper option, or a similar event that fits the plan better. Step-by-step: 1. I create a personal shortlist of cultural events and collect the relevant links in a simple text document. 2. I give the document to ChatGPT together with my planning criteria. 3. I have ChatGPT check the event and venue pages and organise the selected events into a chronological, month-by-month overview. 4. I include each event’s day, date, location or cultural venue, short description, and relevant ticket prices. 5. I compare discounts, subscriptions, social tariffs, and reduced rates to estimate the actual cost of each event. 6. I assess the public-transport journey to and from each event, including whether getting home afterward is feasible. 7. I score each event separately for how strongly I want to attend it and how easy or difficult the logistics are. 8. I use those comparisons to decide where my cultural budget and energy are best spent. 9. For events that are too expensive or logistically awkward, I ask ChatGPT to identify alternatives such as another performance date, a closer venue, a cheaper option, or a similar event that fits the plan better. The result is a structured yearly planner built from my own cultural shortlist: chronological, budget-aware, and grounded in the realities of public transport.

Tools used
Industry
#planning
1