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

Build a Private AI-Assisted Task Management System

Like many people, I had tasks scattered across emails, meeting notes, reminders, recurring responsibilities, and things I was simply trying to remember. Standard task managers helped me store tasks, but they did not solve the harder problem: turning unstructured information into a reliable daily and weekly execution system. I used ChatGPT Work and Codex to build a private, responsive task management application around the way I actually work. The system combines AI-assisted task capture with a Command Center, daily planning, weekly reviews, task lists, a Kanban board, recurring tasks, deadline reminders, search, filters, subtasks, comments, attachments, and a complete activity history. The most useful part is the connection between AI and execution. Emails and free-text descriptions can be interpreted with the OpenAI API and converted into structured tasks, reducing the amount of manual copying and organizing required. Step-by-step: 1. I mapped my real workflow by identifying where my tasks came from and what information I needed to manage them properly: title, description, status, priority, category, deadline, responsible person, subtasks, comments, attachments, recurrence, and activity history. I deliberately designed the system around my existing working habits rather than adapting my work to a generic task management template. 2. I used iterative conversations with ChatGPT Work and Codex to define the requirements, review the interface, build the application, test it, and refine individual functions. Instead of creating one enormous prompt, I worked in short cycles: describe a problem, implement the change, test it with real data, and improve it. 3. I built the application as a responsive web app that works across computers, tablets, and phones. Access is restricted through authentication, an approved-user allowlist, and server-side authorization because the system contains real personal and professional tasks. 4. I migrated my actual task history rather than starting with an empty demonstration: 238 tasks, 37 categories, 25 subtasks, 5 comments, and 671 activity records. I preserved invalid or disconnected historical records in a separate archive instead of silently deleting them. 5. I connected the application to the OpenAI API. The AI can interpret emails and free-text task descriptions and help turn them into structured, actionable tasks. The application also supports an email-to-task workflow, so actionable emails do not have to remain buried in the inbox. 6. I built a daily Command Center that gives me an overview of what requires attention, including deadlines, priorities, task status, and upcoming work. I use the daily planning view to decide what to focus on rather than simply working through the newest emails. 7. I added two complementary execution views. The task list is useful for searching, sorting, and filtering a larger number of tasks. The Kanban board gives me a visual overview of progress; tasks can be dragged between five status columns, and the new status is saved automatically. The default task list shows the newest tasks first, making newly captured work easy to find. 8. I kept the context inside each task by allowing every task to contain subtasks, comments, attachments, and a complete activity history. This keeps the reasoning, follow-up, and progress connected to a task instead of spreading them across several applications. 9. I automated recurring work and reminders. Recurring tasks are recreated according to their schedule, while deadline reminders help surface tasks before they become overdue. This is particularly useful for responsibilities that are important but easy to forget because they do not arrive as new emails. 10. I run a weekly review to check overdue work, upcoming deadlines, open commitments, and tasks that have stopped moving. I can then reprioritize, update statuses, and prepare the following week from the same system. 11. I preserved portability and control through Excel import and export and a full JSON backup. This gives me control over my information and reduces the risk of becoming dependent on one interface or platform. The result is not an autonomous agent making decisions on my behalf. It is a private execution system where AI handles part of the interpretation and structuring, while I remain responsible for priorities and decisions. It has given me one trusted place for capturing, reviewing, prioritizing, and completing work. The tools I used were: - ChatGPT Work - Codex - OpenAI API

Brian Smedemark
  • ChatGPT
  • Codex
5

Turn a Gmail Newsletter Backlog Into a Podcast and Newspaper

At some point, my newsletters stopped feeling like reading and started feeling like debt. The information was good; I just couldn’t keep up. I wanted a way to turn that backlog back into something useful. So I built The Daily Nexus, a private tool that reads newsletters from a Gmail label and creates two editions: a podcast I can listen to and a separately written, two-page newspaper I can scan. It runs on demand or on a schedule, and it can publish the audio to a private RSS feed for Apple Podcasts. The project also became a hands-on experiment in building with coding agents. Claude Code and Codex helped me implement features, troubleshoot failures, review the design, and tighten security. The stack includes Python, the Gmail API, Antigravity, Kokoro, FFmpeg, Firebase, Cloudflare Workers, and GitHub Actions. The carousel shows the rest of the flow. It started as a personal tool, but I’m sharing the template for anyone who wants to adapt the idea. Each deployment uses its own accounts and credentials, and the design aims to avoid additional API costs by using an existing AI subscription and available free tiers. GitHub Repo Template: https://lnkd.in/eYceS4KR Step-by-step: 1. I label the newsletters I want to process in Gmail. 2. I run The Daily Nexus on demand or on a schedule so it can read the newsletters from that Gmail label. 3. The tool creates a podcast edition and a separately written, two-page newspaper edition. 4. I listen to the podcast or scan the newspaper, depending on how I want to catch up. 5. When needed, the audio is published to a private RSS feed for Apple Podcasts. 6. I use Claude Code and Codex to implement features, troubleshoot failures, review the design, and tighten security. 7. Each deployment uses its own accounts and credentials, with Python, the Gmail API, Antigravity, Kokoro, FFmpeg, Firebase, Cloudflare Workers, and GitHub Actions supporting the workflow.

René Cortés
  • Claude Code
  • Claude Cowork
  • Codex
3

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.

Tom Tomaszewski
  • Google Calendar
  • Oura
6

Scan AI Agent Tools for Malware Before Installation

AI agents such as Claude Code, Codex, and Gemini can install skills, plugins, and CLI tools in seconds. That is convenient, but each add-on runs with access to files, passwords, and accounts. A malicious add-on could steal API keys, read private data, or quietly take control of the agent. I use `agent-guard` to make “check first, install after” the default. Before installation, it examines AI agent skills, MCP servers, and CLI tools for malware, prompt injection, and credential theft using professional, open-source security scanners from NVIDIA, Cisco, Datadog, and the Open Source Security Foundation. The tool returns a clear verdict: safe to install or blocked, with the exact reason. It then installs only the verified version, preventing a different version from being swapped in between. A single check can also cover multiple AI agents, installing the approved add-on into every agent on the machine. Free and open source: https://github.com/elliottwaves-20/agent-guard Step-by-step: 1. I select the AI agent skill, MCP server, or CLI tool I want to install. 2. I run `agent-guard` to scan it for malware, prompt injection, and credential theft. 3. I review the verdict and the reason if the add-on is blocked. 4. I install the exact version that was checked rather than an unverified replacement. 5. If I use several AI agents, I install the approved add-on into all of them at once.

Patrick Illian
  • ChatGPT
  • Claude Code
  • Claude
  • Gemini
  • Codex
3

Build a Custom Mac Shortcut System with ChatGPT and Apple Shortcuts

I was tired of opening Spotlight every time I wanted to switch apps. The search results would move around, I would occasionally open the wrong app, and those few wasted seconds kept adding up throughout the day. Instead of memorizing a collection of unrelated hotkeys, I used ChatGPT Work to design and build a personalized shortcut system in Apple Shortcuts. The shortcuts can open individual apps, jump directly into specific Safari or Chrome profiles, or launch an entire work mode with one keystroke. For example, a recording shortcut could open your microphone, camera, recording software, and notes. An analytics shortcut could open all the dashboards you check each week. Step-by-step: 1. I opened the ChatGPT desktop app, started a new chat, and switched to Work mode. 2. I asked ChatGPT to plan shortcuts around my real workflow: Based on what you know about me and my workflow, suggest 10 time-saving hotkeys we can set up in Apple Shortcuts. I’m interested in opening specific apps and profiles based on what I need them for or what mode of work I’m going into. 3. I told it which apps, browser profiles, URLs, and work modes I use most. 4. I narrowed the list before making any changes by keeping the highest-frequency shortcuts and avoiding macOS or app conflicts. 5. In ChatGPT, I went to Settings → Computer Use and turned on Any App. 6. I gave ChatGPT the approved list and clearly limited its scope: Set these up in Apple Shortcuts. Do not change anything outside this list. Test each shortcut. 7. I opened All Shortcuts in Apple Shortcuts and ran each one manually. I used Quick Actions to add or change its keyboard shortcut. I like Control + Option because it is less likely to conflict with existing Mac commands. 8. I tested every shortcut while working in another app, checking that it opened the correct app, account, browser profile, or collection of tools before building more. 9. Once everything worked, I asked ChatGPT to create my reference: Write me a one-page cheat sheet of all the shortcuts you set up, where they live, and what’s left to do. The result is a personal shortcut system built around how I actually work, plus a one-page cheat sheet so I don’t have to memorize everything immediately. For the complete walkthrough, exact prompts, screenshots, and setup instructions, follow my full Rundown University guide: Use ChatGPT to Build a Custom Mac Shortcut System. Tools used: ChatGPT Work, Apple Shortcuts Industry: Cross-industry Tags: #chatgptwork #appleshortcuts #macautomation #productivity #workflowautomation

Billy Howell
  • Codex
  • ChatGPT
3

Build a unified class study workspace with AI-grounded answers

I’m building GradePath because schoolwork gets scattered quickly. A lecture, my notes, and the files for a class can all end up in different places. Then, when it’s time to study, I have to dig around to find what I need. The idea is simple: record a class, keep the recording and course materials together, and return to them later. If I ask Tutor about something, it should show me the relevant part of my notes, files, or class recording. If it can’t find an answer, it should say so. I also want students to be able to share useful study sheets with people who are actually in their class. I’m not trying to turn school into another content feed. I want to make it easier to keep up with a class and find the right material when I need it. Step-by-step: 1. I record a class. 2. I keep the recording, notes, and course materials together in GradePath. 3. I return to those materials when I need to study. 4. I ask Tutor about a topic and have it show the relevant part of my notes, files, or class recording. 5. If Tutor can’t find supporting material, it says so instead of presenting an unsupported answer. 6. I share useful study sheets with students who are in the same class.

Zachary Groves
  • Codex
0

Find My Best AI Opportunity

It starts when someone clicks “Find My Best AI Opportunity” on my website. Instead of going straight to a booking page, they enter a short AI chat. The assistant asks about their work, business, main pain point, AI experience, urgency, name, and email. The workflow runs in n8n. Once the chat has enough information, it creates an AI Readiness Summary, saves the lead in Notion, sends me an internal brief, and emails the visitor their summary with a link to book a 30-minute call through Cal.com. The result is a better-qualified call: the visitor gets useful value first, and I have the context I need before we meet. Step-by-step: 1. A visitor clicks “Find My Best AI Opportunity” on my website. 2. The visitor completes a short AI chat about their work, business, main pain point, AI experience, urgency, name, and email. 3. n8n uses the collected information to create an AI Readiness Summary. 4. The workflow saves the lead in Notion and sends me an internal brief. 5. The visitor receives their summary by email, along with a link to book a 30-minute call through Cal.com. 6. I review the context before the call, making it better qualified.

Vinicius Pirola
  • Notion
  • Gmail
  • Google Calendar
2

Compare AI-Built Wildfire Websites for 6th Grade Science

For the start of the new school year, I wanted to use the current eastern Washington wildfires near Spokane with my two sixth-grade science classes. I wanted an AI tool to create a website I could upload to my hosting service. The site needed to provide daily updates from verified news sources, along with air quality data comparing Spokane in eastern Washington, Kirkland near Seattle, and Chimacum, where we live, on the western side of the state. I also wanted to include a simulation where students could change different variables to see how they affect the direction of the smoke and air quality. I could not decide which AI service to use, so I entered the same prompt into my personal paid Claude and Gemini Spark accounts, as well as my free teacher ChatGPT and Claude accounts, to compare which one created the best site for students. Here is the prompt I used: "Create a dynamic website with information of the Spokane, WA 2026 wildfires. Information include only verified facts from credible news sources. Information needs to be updated from when the largest fire started until it is completely put out. At that point, this website is complete and done. Include a page with air quality data. Provide air quality data on a daily basis from the onset of the fire to the end of the fire. Include Spokane, Kirkland, and Chimacum to compare the air quality from eastern WA near the fire, mid WA, and western WA. Include factors that explain the air quality such as winds, inversion, altitude of smoke and any other relevant data that students can view to answer questions. Provide a way for students to click on different variables to see how different factors affect the fire, direction of smoke, and air quality. Use the /inversa-design skill to make the website." Here is a portal page with links to all four sites: https://educatoral.com/2026SpokaneFire/ Step-by-step: 1. I identified the eastern Washington wildfires near Spokane as a topic for my two sixth-grade science classes. 2. I defined the website requirements: verified news updates, daily air quality data, comparisons among Spokane, Kirkland, and Chimacum, and a student-facing smoke and air quality simulation. 3. I used the same prompt with my paid Claude and Gemini Spark accounts and my free teacher ChatGPT and Claude accounts. 4. I compared the sites created by the four AI accounts to determine which one would be best to use with students. 5. I collected links to all four sites on this portal page: https://educatoral.com/2026SpokaneFire/

Alfonso Gonzalez
  • Claude Cowork
  • Gemini
2

Build a Pet-Sitting Booking App with Google AI Studio and Claude

A friend who had just started a pet-sitting and dog-walking business asked me to build a booking app. I used Google AI Studio to design the initial prototype. The process was straightforward, and I had a basic working system running within two hours. AI Studio created a Firebase database to store the details and was also effective at designing frontend changes. It published the app for me, and the resulting UI was intuitive. After demonstrating the app, I identified many additional features that needed to be added. This went beyond AI Studio’s capabilities, so I exported the code from AI Studio and started using Claude. I asked Claude to analyze the code and suggest the required changes. Claude identified critical security flaws in the database. I fixed them manually at first, but then realized that Claude could access the Firebase database and fix issues automatically. I continued prompting Claude with additional feature requests, and it built them. There were errors along the way, so I needed to be familiar with Google Chrome’s developer tools to copy the errors and ask Claude how to fix them. I used MailJS for email templates and Resend for email transport. I stored the app in GitHub and allowed Claude to access the repository so it could commit changes automatically. I ran the app locally with npm during development and then hosted it on Vercel. Eventually, I purchased an inexpensive domain name, and the app is currently hosted at Names. One major problem was that when Google AI Studio created the Firebase database, the permissions were locked, preventing me from making administrative changes. I solved this by recreating the database and asking Claude to write the SQL query to set it up. The permissions were still tricky, and I had to continue asking Claude to correct them. Google’s service permissions can be difficult to understand, and finding the correct settings was not always easy. Firebase was also complex to navigate, and getting the permissions configured correctly took time. Once I allowed Claude to connect to the app and its background services through the Google plugin, development became much faster. However, you need to trust the tool carefully and always work on a copy of the live app. Overall, I think app development with Google AI Studio and Claude is impressive. You can create professional apps quickly. I come from an IT support background, though, and I think people who are new to IT may find it difficult to troubleshoot errors without a basic understanding of networking and systems administration. I also built a litter-tracking app using ChatGPT, and it was equally effective. I eventually started using Codex and Claude Code, but I think standard Claude and ChatGPT are more intuitive for nontechnical users. Step-by-step: 1. I used Google AI Studio to create an initial booking-app prototype for a pet-sitting and dog-walking business. 2. I used the Firebase database created by AI Studio to store the app’s details and used AI Studio to design frontend changes. 3. I published the initial app with AI Studio and demonstrated it to identify additional features. 4. I exported the code from AI Studio and asked Claude to analyze it and suggest changes. 5. I addressed the critical database security flaws identified by Claude, first manually and later by allowing Claude to access the Firebase database. 6. I prompted Claude to build additional features and used Google Chrome’s developer tools to copy errors and ask Claude for fixes. 7. I recreated the Firebase database when AI Studio’s locked permissions prevented administrative changes, then asked Claude to write the SQL query to set it up. 8. I used MailJS for email templates and Resend for email transport. 9. I stored the app in GitHub and allowed Claude to commit changes automatically. 10. I ran the app locally with npm during development, hosted it on Vercel, and later purchased an inexpensive domain name that is currently hosted at Names. 11. I connected Claude to the app and background services through the Google plugin, while continuing to work on a copy of the live app.

Anon Ibex
  • ChatGPT
  • Claude Code
  • Claude
5

Clean Up Near-Duplicate Artwork Photos with an AI Visual Checklist

Clean up near-duplicate artwork photos with a visual checklist THE PROBLEM I had hundreds of photos of my handmade collages. Some showed the same work photographed at different times, from different angles or against different backgrounds. Others were cropped versions, detail shots or useful making-of photos. The duplicate finder in my image manager missed real matches and suggested unrelated collages instead. Simply keeping one file from each group would also have thrown away useful material. THE WORKFLOW 1. Export a working set and preserve the filenames. I exported the images from Eagle. Smaller copies made the collection easier to upload, while the original-resolution files stayed on my computer. Keeping the filenames intact made it possible to apply decisions to the originals later. 2. Ask AI to compare the artwork, not just the whole photograph. The comparison looked for matching local image details and their relative positions. This helped connect photos despite changes in angle and background. Candidate groups still needed review: two collages might contain the same clipping, and a detail photo might overlap with a wider shot without being redundant. 3. Turn the results into a visual decision page. The AI produced a standalone HTML file with photos grouped side by side and their original filenames underneath. I requested a “Keep” checkbox beneath each candidate and a category dropdown: “Collage” or “Making of”. Multiple images could stay in either category. One photo might show one part clearly while another preserved a different part better. I made the decisions; the AI did not choose a winner automatically. 4. Validate and export my choices. The page flagged any group with nothing selected and any selected photo without a category. Photos without a confirmed match were preserved separately. A download button exported my decisions as a small JSON file, which I sent back to the AI. 5. Generate a local cleanup script from that exact selection. The resulting Windows script checks the expected files, asks me to confirm the folder, sorts the retained photos into “collages”, “making of” and “loose items”, and sends rejected photos to the Recycle Bin. It targets the ordinary export folder, not Eagle’s internal library. The loose items can then be sorted manually before reimporting. WHAT THIS PRODUCED From 296 photos, the review grouped 204 into 90 candidate groups and left 92 without a confirmed match. My final choices retained 96 collage photos and 23 making-of photos, plus all 92 loose items: 211 retained, 85 designated for removal. The checklist and selection were completed, and the script was generated. At the time of writing, I had not yet run the cleanup on Windows. WHY IT HELPED The key was separating three jobs: finding likely matches, deciding what matters, and applying those decisions to files. “The same artwork” does not necessarily mean “an unnecessary photo”. A visual checklist let me make those distinctions without manually tracking filenames. STARTER PROMPT “I have photos of the same artwork taken from different angles and against different backgrounds. Find candidate matches using details within the artwork, and distinguish duplicates from details, changed versions and making-of photos. Create a standalone HTML review page with original filenames, a Keep checkbox and a category dropdown for each candidate. Allow multiple retained photos per category. Flag empty groups and selected photos with no category. Preserve unmatched images. Let me export my choices as JSON. After I return the selection, generate a script that validates the original filenames, sorts retained files into the chosen folders and moves only rejected files to the Recycle Bin after showing the target folder and counts. Do not choose or delete files on my behalf."

Fien De Waele
  • ChatGPT
  • Google Drive
2

Build a ChatGPT Agent to Find Legitimate Access to Private Golf Clubs

I love golf, but many of the courses I most want to play are private and nearly impossible to access unless you know a member. Instead of manually emailing clubs, searching charity events, asking for introductions, and trying to remember who I contacted months ago, I built a Private Golf Access Agent in ChatGPT. The goal is to identify legitimate opportunities to play highly rated private clubs without simply paying my way in. I gave the agent 50 target clubs across the Northeast and Mid-Atlantic, including 10 “moonshot” courses where an invitation would be extremely difficult. The agent acts more like a golf-access researcher, relationship manager, and outreach assistant than a chatbot. It researches each club, identifies access paths, finds the right person, personalizes outreach, tracks every interaction, monitors opportunities, and recommends what to do next. I still approve every email before anything is sent. That matters because I don’t want the agent spamming clubs, inventing relationships, or continuing after someone says no. The system looks for legitimate paths, including professional introductions, complimentary charity or special-event opportunities, reciprocal access, personalized direct outreach, unused guest spots, golf-project requests, and long-term relationship opportunities. Step-by-step: 1. I divided the 50 clubs into moonshots, elite targets, and high-quality targets. 2. I had the agent research each club independently, including its leadership, PGA professionals, policies, events, social media, recent news, reviews, charitable connections, and possible introductions. 3. The agent identified the most appropriate contact and researched why that person made sense. 4. Before writing, it gathered specific details so each email was clearly personalized rather than a blast. 5. I trained its cold-outreach persona to sound like a blend of me and two or three sales trainers I admire, including Josh Braun-style low-pressure curiosity, short conversational writing, humor, and an easy way to say no. 6. The agent can learn new skills and add them to its protocol. For example, when it struggled to find employee email addresses, I taught it my Google search method. That method is now part of the workflow it uses for future clubs. 7. I tracked everything in a live Google Sheet showing the current status, progress, next action, opportunity status, and whether I need to approve something. The current status column is highlighted so I can check where every club stands in real time. The statuses include: Researching → Ready for AJ Review → Outreach Sent → Conversation Open → Opportunity Identified → Monitoring. 8. If there is no immediate path, the agent does not keep bothering the club. It moves the club into monitoring mode and waits for a better opportunity. 9. When someone responds, the system keeps the relationship history so future communication builds on the real conversation. The live tracker is shown in a Google Sheet status screenshot. What I like most is that the AI isn’t doing one isolated task. It handles the repetitive parts of an ongoing objective—research, qualification, contact discovery, personalization, organization, monitoring, and follow-up—while leaving the important judgment calls with me. Eventually, I want it operating like a 24/7 private-golf-access concierge: 50 clubs being researched and monitored, with me only getting involved when the agent finds something worth acting on. TOOLS USED: ChatGPT, Gmail, Google Sheets, Google Drive/Docs, web research, and AI agents/automations.

ALBERT IANNELLO
  • ChatGPT
  • Google Drive
  • Google Calendar
2