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 an Adaptive Triathlon Training Plan with ChatGPT Work

Training for a triathlon means three sports and a plan that is fiction by Wednesday. A static plan does not know I slept badly, skipped Tuesday's swim, or that Saturday's long ride wrecked me. Adjusting for that is what you actually pay a coach for. I wanted the adjusting without the retainer. So I built it in ChatGPT Work: a Project holding my plan, plus a scheduled agent run each morning that checks the plan against what my body actually did, then fixes the week. Disclosure: I built freddy, the connector feeding ChatGPT my training and recovery data, so I am not neutral here. Step-by-step: 1. Connect your sources at freddy.coach. For triathlon it is whatever records your swims, rides and runs: Garmin Connect, Polar, Suunto, WHOOP or intervals.icu. I use Oura for sleep and recovery, Garmin Connect for sessions, Hevy for strength. History backfills automatically, so the plan is built on your real training rather than what you tell it you did, which is usually flattering. 2. Add freddy as a custom connector: Settings, then Connectors or Apps and Connectors, then Add new, then custom MCP server. The URL is https://freddy.coach/mcp. Sign in and approve read access. Do it on the web; the mobile app cannot add custom connectors. 3. Connect Google Calendar and turn on write actions. This is the step people miss: write actions are off by default, so until they are enabled through action controls the agent can read your week but not change it. With writes on, ChatGPT Work creates and edits events. 4. Create a Project and put the durable facts in the project instructions: race date and distance, realistic weekly hours, immovable days, injury history, weakest discipline, and how blunt you want it. Long-lived facts only, never this week's session. 5. In the project, with freddy on, ask it to build the block: a periodised plan to race day, justified against your actual last 8 weeks rather than a textbook ramp. Keep the plan as a file in the project so every run starts from the same document, and have it write the week's sessions to the calendar with type, duration and intensity in the event body. 6. Schedule the daily run for mid morning, after you are up and your sources have synced. Last night's sleep does not exist anywhere until the watch or ring syncs, so a 5am run reports on the night before last. The standing prompt: "Using freddy, check whether I completed yesterday's planned session: pull yesterday's workouts with type, duration and intensity and compare against what the plan called for. Then pull last night's sleep and this morning's recovery including HRV and resting heart rate, plus training load over the last 7 days, compared against my own 30 day baseline rather than population norms. Then look at today's planned session on my calendar and decide whether it still makes sense. If it does, confirm in one line. If not, change the calendar event to the session I should actually do, put the reason in the event body, and update the plan file. Tell me what you changed and why, naming which source each conclusion came from. If two sources disagree, say so rather than averaging. Never compare HRV across different sources. If anything is ambiguous, such as an unrecorded session or a workout matching no planned one, ask me instead of guessing. Under 250 words." 7. Let it run a week before trusting it, and read what it changed rather than skimming. Expect to tune the instructions early: the usual failure is turning cautious after one poor night, fixed by a line saying a bad night is noise and to downgrade only on a trend or after a hard day. Two things to know. Depending on your approval settings, a run either makes the change or holds it for a tap. Know which you chose: it is the difference between waking to a changed calendar and a proposed one. And agent runs are metered, so keep the daily check narrow and save long reasoning for a weekly review. What surprised me is how good it is at catching the sessions I quietly did not do. It is easy to tell yourself you are on plan, harder when something reads yesterday's file and notes the intervals were short. Gotchas. Make it commit to one call on today's session; "listen to your body" is what you already had. Make it name the source behind each conclusion so you can tell a real finding from a confident guess. Never let it compare HRV across sources, because RMSSD and SDNN are different measurements, not different units, so mixing them looks meaningful while being nonsense. Scheduled runs auto-pause if ignored, so if the check stops arriving, look there before blaming the connector. It is not a certified coach and I would not rehab an injury with it. It is very good at holding a plan, watching what happened, and closing the gap before it becomes a lost week. Cost: freddy is free for one source, but this is cross source so it is the paid plan, $49 a year, on top of ChatGPT. Individual triathlon coaching runs a few hundred a month.

Tools used
Industry
#health#mcp#performance#training#triathlon
6

Health tracking without the limitations of AI chatbots

AI chatbots have limitations around memory, numbers and types of attachments, connectors, storage, and other resources. The underlying LLMs also change over time, and data leakage is a concern. Code-based versions such as Claude Code and Grok Build can store essentially unlimited files on your computer, organize them with databases and files, connect to public and private MCPs, and even host interfaces for reviewing results. You can choose between a hosted LLM such as Claude, Grok, or ChatGPT and a local LLM if you prefer. The best part is that these code-based versions have no memory between sessions: everything is stored on your computer, assuming a basic subscription. You start by prompting the system about the domain, what you want to store, how you want to access it, and other requirements. Then it creates the system for you. I started with my own personal health archive. I'm comfortable using the terminal interface for Claude Code and Grok Build, so I use that directly. When I built one for my wife, she couldn't use the terminal, so I had it build a basic website with Q&A interfaces, data access, and upload functionality. I hosted it on my Mac, and I wrote no code. We loaded hundreds of documents in various formats into each of our instances without any trouble. When we have new files, we can simply drop them in. For specific questions or health events we're tracking, the system has perfect memory and no memory limits within the archive. For my archive, I use a Garmin watch and a food tracker. Because public MCPs weren't available for those services, I had the system build local MCP servers by reverse-engineering them. My health tracker now has a continual feed of my food, fitness, sleep, and other data. My wife has some chronic health issues, and we had reached a point where the standard chatbots were hitting their limits. We were struggling and didn't know what to do, so I discussed it with Claude, and we came up with this approach. The best part, besides getting a better handle on our health, is that I can launch any LLM within the project—Claude, Grok, or others—and use it for that session. The project isn't tied to or limited to a single LLM. That lets me manage costs, switch to better LLMs as they improve, and use specialized models for deep research, all while working with one data set. Step-by-step: 1. I prompted a code-based AI about the health domain, the information I wanted to store, and how I wanted to access it. 2. I created a personal health archive and loaded hundreds of documents in various formats into it. 3. I built a second archive for my wife with a basic website, Q&A interfaces, data access, and upload functionality, then hosted it on my Mac. 4. I added new files by dropping them into the appropriate archive. 5. I had the system build local MCP servers for my Garmin watch and food tracker by reverse-engineering those services when public MCPs weren't available. 6. I used the resulting health tracker to maintain a continual feed of food, fitness, sleep, and other health data. 7. I launched different hosted or local LLMs within the same project as needed for each session, including using specialized models for deep research.

Tools used
Industries
#mcp
3

Build a Persistent AI Coding Environment for Reliable Production Work

After about 18 months of building software with AI, I realized that reliability wasn't primarily a model problem. Bigger context windows and more clever prompts didn't fix it. What did help was treating the AI like a developer joining an existing team instead of like a chatbot. Real developers don't work from memory. They inspect production, read the documentation, check the tickets, and use proven tools. I built an environment that lets the AI do the same. The workflow is tool-agnostic, so it can be rebuilt with whatever AI client and stack you already use. Step-by-step: 1. I gave the AI a persistent task and history store that it can read from and write to. This is the core of the workflow. Mine lives behind an MCP tool, but any queryable store can work. Every architectural decision, blocker, and progress note gets written there instead of being left in the chat. 2. I open every session with a stand-up. Before writing a single line of code, the AI pulls what was in progress, what's blocked, what changed since the last session, and which architectural decisions still hold. About 30 seconds later, we're both looking at the same project. Then we build. 3. I exposed real operations as MCP tools instead of relying on "write code" prompts. I wrapped specific, tested actions—such as creating a page, defining a data model, wiring an integration, and running a migration—as tools. The AI composes these known-good building blocks into larger solutions instead of regenerating infrastructure every session. I call this wave coding, and it's the biggest reason the output stays consistent. 4. I made verification a rule: before touching anything, the AI reads the live database, API state, logs, and files. It checks ground truth first instead of making assumptions. 5. I made the chat disposable and the log canonical. If it isn't logged, it didn't happen. The task store is the single source of truth, not the conversation. The payoff is that I can stop halfway through a feature, close my laptop, and come back days later. The AI reconstructs the project from its own history, so I don't spend 20 minutes re-explaining it. Full disclosure: I built this into my own platform, WebsitePublisher.ai, which currently has 43 MCP tools and 105 integration building blocks. It's delivered as an add-on that plugs into the AI client I already use over MCP, so there's no new app to learn. Nothing here is locked to that platform, though: the workflow itself works with any MCP client and any store the AI can query. I'm curious whether anyone else is running their AI this way or solving the amnesia problem from a different angle.

Tools used
Industry
#ai#aiagents#aiworkflow#claude#mcp
2