Workflow Hub

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

Every day, we feature the community's top-voted AI workflow in The Rundown newsletter.

Automate a Weekly Workout Log with Claude and Hevy

Every Friday at 10 a.m. ET, a scheduled Claude agent refreshes a living "Hevy Workout Log" document with that week's strength-training data, body measurements, and a progress photo. The automation runs fully unattended, with no human in the loop after the owner sets it up. The agent pulls information from three independent systems: the Hevy fitness-tracking API, a Google Drive photo folder, and the living document. It reconciles those sources against a date range, determines what's new versus already recorded, and writes structured, formatted updates in the correct places. This requires more judgment than a simple script or webhook. The scheduled task starts a fresh agent session every Friday at 10 a.m. ET with the full task specification and API key included in the prompt. The Hevy API is the source of truth for workouts from `GET /v1/workouts` and body measurements from `GET /v1/body_measurements`; both endpoints are paginated. Google Drive holds the "Progress Pics" folder, which the agent searches by file timestamp. Claude Docs, through a Claude Artifact, is the living document: it has one tab for each weekday and a Weekly Summary tab, and the agent edits it in place with structured operations rather than full rewrites. To embed a photo, the agent downloads the Drive file locally, uploads it to the Claude Artifact asset store, converts it to a document-native blob, and references it as a Markdown image. There is no custom backend, database, or glue code. The agent calls each system's API directly and keeps the orchestration logic in its reasoning for that run. Step-by-step: 1. Read the document's current state and find the most recent week already recorded in the Weekly Summary tab. 2. Call the Hevy API and determine which Monday–Friday week has just ended, making sure today's date is past that week's Friday. 3. Check whether that week's row is already in the Weekly Summary table, fully populated, and contains the latest matching photo. If everything is already recorded, there may be nothing to update, but the agent still checks for a newer photo that may have appeared in Drive after the data was written. 4. Pull per-set details for every workout that week, including the exercise, weight, and reps. Compute total daily lifted volume by summing weight × reps for each set on each day. 5. Search the Google Drive photos folder for images timestamped within that Monday–Sunday window. Select the single most recent image, replacing any older photo already embedded for that week. 6. Pull body measurements from the same week and calculate weekly averages for weight and body fat, along with the week's waist reading. Convert units as needed from kilograms to pounds and centimeters to inches. 7. Update the Weekly Summary tab with one row per week, including daily volumes, weekly averages, and the progress photo. 8. Update each weekday tab with a dated section containing the workout name, a per-exercise set-by-set table, and a Total row for summed volume and reps. If no workout was logged, add a note instead. 9. Send the human a plain-language summary every time, describing what changed or confirming that nothing changed, because nobody is watching the scheduled run live. The workflow is idempotent without a database. There is no job-tracking table; on each run, the agent reads the live document, compares dates, and checks whether cells are filled before deciding what to write. Progress photos are not tagged by week, so the agent matches them only by whether their Drive timestamp falls within the Monday–Sunday window. It explicitly selects the most recent match, allowing a better photo taken later in the week to replace an earlier embedded photo. The workflow also handles the multi-hop process required to embed an image in a live document: Drive file to local download, artifact asset upload, document-native blob conversion, and Markdown image reference. If the Hevy API key is revoked, the task stops cleanly and tells the owner to generate a new key and provide it, rather than failing silently or looping. Because the workflow runs on a schedule without anyone watching, its specification requires a notification every time, including when nothing changed. This keeps the automation auditable even when it performs no updates.

Bridget Overson
  • Claude Cowork
  • Google Drive
3

Built a recruiter and dashboard with ChatGPT Work to find jobs that fit my skills and work history

I've had many conversations with ChatGPT about my job search, resume tailoring, and cover letter writing. It knows a lot about my experience and which jobs might be a good fit, so I decided to have ChatGPT Work search for opportunities instead of spending time searching job boards myself. Monday through Thursday mornings, ChatGPT Work runs a scheduled task that searches the major job boards for appropriate positions, scores them, and provides a brief explanation of why each position could be a good fit for me. It also selects the top opportunity of the day and tailors a resume for it using my master resume as a starting point. The list of positions is emailed to me every morning, with links to the job posting and application. The tailored resume for the top opportunity is included as an attachment. Every Friday, I receive a weekly roundup of the best opportunities from that week. I also asked ChatGPT Work to build a dashboard so I could track all the opportunities in one place. It includes status tracking and filtering, the option to hide opportunities I’ve decided not to consider, and several other helpful features. Step-by-step: 1. I had conversations with ChatGPT about my job search, resume tailoring, cover letter writing, experience, and target roles. 2. I set up a scheduled task for ChatGPT Work to search the major job boards Monday through Thursday mornings. 3. ChatGPT Work identifies appropriate positions, scores them, and summarizes why each could be a good fit. 4. It selects the top opportunity of the day and tailors a resume for it using my master resume. 5. It emails me the daily opportunity list with links to each job posting and application, along with the tailored resume as an attachment. 6. Every Friday, it sends me a roundup of the best opportunities from the week. 7. I had ChatGPT Work build a dashboard to track the opportunities, filter them, update their status, and hide the ones I no longer want to consider.

Michael Ebner
  • ChatGPT
64