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!

Automate Credit Card Expense Tracking in Google Sheets with Make

I built a workflow to track my monthly credit card expenses and keep them within my budget. Tracking my expenses is important to me because I want to reach my financial goals through consistency and healthy habits. However, entering each expense manually into Google Sheets was tiring and took several hours. I used Make to automate the process. The workflow reads the email from my bank every time I use my card, gathers the necessary information, converts it to JSON, and adds it to Google Sheets. It runs every six hours, every day, so I no longer need to spend my weekends reviewing expenses. Now I have more free time to build something else and only need a couple of minutes to review Google Sheets and make sure everything is working properly. Step-by-step: 1. I set up a workflow in Make to monitor emails from my bank whenever I use my credit card. 2. The workflow gathers the necessary expense information from each email. 3. It converts the information into JSON format. 4. It adds the expense data to Google Sheets. 5. The workflow runs every six hours, every day. 6. I spend a couple of minutes reviewing Google Sheets to make sure everything is working properly and that my expenses remain within budget.

Tools used
Industry
3

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

A curriculum generator and tutor for researching and learning any topic

I give the system a topic, such as Private Credit, inference workloads, or agentic harnesses. It then runs an intake survey to understand my goals—for example, learning more about inference workloads so I can differentiate between providers and routers for different models. Next, an agent builds a multi-phase curriculum with learning outcomes, external resources, generated primers, and checkpoints for each phase. I work through the curriculum in an Obsidian space, asking questions and reviewing my notes and answers throughout each stage. By the end, my current understanding is documented in a `state.md` skills file that I can build on when exploring related topics in the future. I call this “Burst learning.” Step-by-step: 1. I provide the system with a topic, such as Private Credit, inference workloads, or agentic harnesses. 2. I complete an intake survey that identifies my goals for learning about the topic. 3. An agent creates a multi-phase curriculum with learning outcomes, external resources, generated primers, and checkpoints. 4. I work through each phase in an Obsidian space, asking questions and reviewing my notes and answers. 5. I document my current understanding in a `state.md` skills file to support future learning about related topics.

Tools used
Industry
3

Fix Content Hallucinations in an AI News Digest with Make and Claude

My AI digest looked perfect and was quietly wrong. What actually fixed it. Every run succeeded. Every dashboard was green. And the content was still wrong. My digest invented "AI Moat Brief", a newsletter that does not exist. It reported scan counts nobody measured. It resurfaced week-old stories as fresh headlines. Here is what broke, and what fixed it. The sorting used to happen in my head: skimmed subject lines, unopened tabs, quiet guilt. The Signal is one email at 08:00: a single Make scenario calling Claude Sonnet through OpenRouter. It reads the last 24 hours of my RSS feeds and newsletters, keeps what touches what I am actively building plus the domains I need to stay current in, and arrives in the language I actually think in. Core items end with what it means for my work. Five to ten minutes, and I know where to go deep today. Structurally it looks like this, minus the content, rendered in English for this post (Image 1). No real edition is shown; section names and sample lines are illustrative. The dangerous failures were never pipeline failures. They were content failures, and the cause is structural: an LLM summarizing newsletters that already summarize primary sources is third hand by construction. Every hop strips attribution and adds confidence, and when data goes missing the model fills the gap the way LLMs do: fluently. Valid HTML, confident tone, green pipeline, wrong content. Image 2 is that whole failure class in one frame. Three rules closed the gaps I caught, all live in production: Step-by-step: 1. Verbatim or nothing. A source name is copied character for character, and a link exists only if that exact URL is in the input. The model copies; it never composes. 2. The model never generates metrics. Every count the report shows is injected by the pipeline after the model returns. 3. Recycled news gets demoted. A recap of recaps gets one line at most, and is dropped when the underlying story falls outside the collection window. Rules 1 and 3 lean on the prompt, and that is why the counters exist. The pipeline writes a hidden HTML comment into every email it sends: items, links, urls, cost, finish status. That line caught what I could not see. In one run, the published-links counter and the leftover-urls counter read 45 and 435: the only sign a new cleanup step was a silent no-op. Another morning the model stopped at 15,999 tokens against a 16,000 cap, one token from an email cut off mid-sentence. On the morning I wrote this they agreed, 21 links and 21 urls, and boring is the goal. Image 3 is that morning's actual comment, with the same two counters from the no-op run. The run itself has a dead man's switch on Healthchecks.io, so a missing 08:00 email reaches me before I notice. Honest limits: the $0.31 per report is a fresh measurement I am still validating, and I have not proven these rules hold as the source set scales. There is more behind every part of this; I would rather share it where it is wanted. Ask and I will put it in the comments: the three rules in full, the exact cost and what drives it, what this replaced in my day, how it compares to what is on the market, or the ugliest of the 15 documented bugs. I am sharing this because I doubt I am the only one building fragile things behind the scenes, and monitoring text is harder than monitoring uptime. What content-level checks do you run on LLM output, the kind pipeline monitoring cannot see? Real thresholds and embarrassing failures especially welcome.

Tools used
Industry
#hallucination#llmobservability#newsletterdigest#promptengineering#rss
4

How AI agents run half my startup: smart deals, trades, services marketplace, dev process, and security testing

I use AI agents across roughly half of my startup, including search, security testing, development, and affiliate integrations. - Smart Shopping Deals search: It never relies on a single AI provider. I use a chain of backup providers for LLM-based search and embeddings with pgvector. If one provider fails or times out, the system silently retries with the next. A slow provider never hangs the request, and users never see the failure. In the worst case, the system falls back to plain search. - Security testing: I run the autonomous AI security agent Strix against my live preview after every deploy. It actively attacks the app the way a hacker would. - Development workflow: My real “team” is a four-layer testing rule enforced by the AI itself. Every feature has to ship with backend tests, component tests, full browser end-to-end tests, and test-data setup, all in the same commit. Claude Code doesn’t consider a feature “done” until all four exist—not just the code. - Affiliate parsing: One parser handles every affiliate network. I paste in the raw ad code from any network, and the same parser automatically extracts the banner link, image, and destination URL. No network-specific code is needed.

Tools used
Industries
#aiagent#ecommerce#homeservices#marketplace#shoppingdeals
2