No-Code Tutorial: Free AI-Powered RSS News Aggregator

By
on

Stop Doom Scrolling: Build Your Own AI-Powered Daily News Digest

👉 Watch the full video walkthrough here.

There's too much news. Most of it doesn't matter to you. And an ever-increasing portion of it is AI-generated slop or emotionally charged engagement bait.

What if you could curate a highly personalized, easily digestible news feed that focuses only on what actually matters to you, delivered daily to your inbox? You can have it focus on exactly your topics of interest – the intersection of AI and society, Apple rumors, GTA VI, John Cena – whatever you want. And you can have it exclude anything you don't care about – sports, politics, John Cena – whatever you don't want.

Vibe Coder News

You could even have it run a sentiment analysis on thousands of news articles every day and only have it deliver the happiest, most feel-good news to your inbox.

That would be pretty cool, right?

This tutorial will guide you through building a powerful and free-to-use RSS news aggregator using Activepieces.

The tool will:

  1. Automatically collect articles from your favorite blogs and news websites via RSS.
  2. Use AI to filter these articles based on your specific interests.
  3. Rank these articles every morning, again based on your preferences.
  4. Generate a beautifully formatted email with only the top 10 stories that are going to matter to you.
  5. Send this personalized news digest to your inbox.

First, some background:

What is RSS? RSS (Really Simple Syndication – yes, that's actually what RSS stands for) is a web feed that allows users and applications to access updates to online content in a standardized, computer-readable format. Most popular news sites and blogs provide RSS feeds for their latest content. And these RSS feeds are completely free and very simple to find. For instance, plug in https://www.nytimes.com/rss to any RSS Feed Reader, and you'll get live updates from the New York Times.

But most RSS feed readers like Feedly, Inoreader, and NewsBlur charge a premium subscription fee to use AI to filter your news, ranging anywhere from $7.50/month to $299/year. And the AI customization options of these tools are limited.

So let's build ourselves a completely free and endlessly customizable RSS Feed Reader in Activepieces.

By the end of this tutorial, you'll have a system that cuts through the noise of our dystopian technocratic hellscape and delivers a concise, engaging, and personalized news experience that you'll actually enjoy receiving.

What You'll Need:

  • An Activepieces account (Cloud or self-hosted).
  • A Google Account (for Google Sheets and Gmail).

That's it. Let's get started!

We'll build this tool with two main Flows:

  1. The RSS Feed Filter Flow: Plug in as many RSS feeds as you want, specify your areas of interest, and this Flow will filter thousands of news articles into a totally manageable few dozen or few hundred of the best ones.
  2. The Ranked News Email Generator Flow: This Flow takes in all the filtered news articles from the past day, ranks them based on your interests, and delivers the Top 10 List to your inbox.

Use these templates, and most of the work will be done for you: RSS Feed Filter Template: https://cloud.activepieces.com/templates/579KG28giQI3q6m8vmsAd Ranked News Email Generator Template: https://cloud.activepieces.com/templates/LlOioJ6rHJu4MmuWE1Fnt


Part 1: The RSS Feed Filter Flow

This Flow will monitor RSS feeds, filter new articles using AI, and log the interesting news stories (according to your preferences) to a Google Sheet. The news stories in the sheet will later be pared down to the Top 10 most interesting stories, and those stories will be sent to you (or whoever wants it) in a nicely packaged email.

1. Create a New Flow

  • In your Activepieces dashboard, click on "Flows" and then "+ New Flow".
  • Name your flow something like "RSS Feed Filter".

2. Step 1: Trigger - Get Feeds (RSS Feed)

  • Piece: Search for and select RSS Feed.
  • Trigger: Choose New Item in Multiple Feeds. This trigger will run the flow whenever a new article is published in any of the RSS feeds you specify.
  • RSS Feed URLs:
    • Click "+ Add Item".
    • Enter the URL of an RSS feed you want to follow (e.g., https://www.theverge.com/rss/index.xml).
    • Add as many RSS feed URLs as you like. In the template we pull from nearly 30 RSS feeds, and pare thousands of stories down to just the 10 most interesting stories.
  • Generate Sample Data: Click "Load Data" to fetch recent items and ensure the trigger is working.

3. Step 2: Get Current Date (Date Helper)

We'll add the current date to our Google Sheet for each article.

  • Click the + button below the trigger.
  • Piece: Search for and select Date Helper.
  • Step: Choose Get Current Date.
  • To Time Format: Select or type MMMM DD YYYY (e.g., September 17 2023).
  • Time Zone: Select your local timezone (e.g., (GMT-04:00) America, New York).
  • Generate Sample Data: Click "Test step" to see the formatted date output.

4. Step 3: Match Interests (Text AI)

This is where the AI magic happens to filter articles based on your preferences.

  • Click the + button.

  • Piece: Search for and select Text AI.

  • Step: Choose Ask AI.

  • Provider: Select OpenAI.

  • Model: Choose gpt-4o (or your preferred powerful model).

  • Prompt: This is crucial. You're instructing the AI on how to decide if an article is interesting to you. Adapt this extensively to your own interests to make sure you only receive news that's important to you!

    You are helping me decide if this article is something I would be interested in reading. I am [Your Name/Persona].
    
    I am interested in: [List your specific interests. Be detailed. Examples: startup comedy, music technology, cool tech stuff, gadgets, AI automation, John Cena, etc.]
    
    I'm not interested in these kinds of articles: [List your disinterests. Examples: Minor product updates, political news, etc.]
    
    Here is the article title: {{1. Get Feeds title}}
    Here is the article summary: {{1. Get Feeds summary}}
    
    Respond only with "true" if the article matches my interests or "false" if the article won't be interesting to me.
    
    • Replace {{1. Get Feeds title}} and {{1. Get Feeds summary}} by using the Data Selector and clicking title and summary from the "1. Get Feeds" step.
  • Creativity: Set to 100 (or adjust as needed).

  • Generate Sample Data: Click "Test step". The output should be true or false.

5. Step 4: Router

This step will direct the flow based on the AI's decision. If an article isn't interesting to you, nothing will happen and the Flow will end. If the article is interesting, the flow will continue.

  • Click the + button.
  • Piece: Search for and select Router.
  • Branches:
    • Junk Branch:
      • Execute if:
      • {{3. Match Interests}}
      • Condition: Select (Text) Exactly Matches.
      • Second Value: Type false.
    • The "Otherwise" branch will automatically handle cases where the AI output is true.

6. Step 5: (under "Otherwise" branch) - Log News (Google Sheets)

If the AI deems an article interesting, we log it to a Google Sheet for further processing.

  • First, create a Google Sheet with the following headers in the first row: Date, Title, Author, Summary, Link. Name your sheet (e.g., "RSS Aggregator").
  • Back in Activepieces, under the "Otherwise" branch of the Router, click the + button.
  • Piece: Search for and select Google Sheets.
  • Step: Choose Insert Row.
  • Connection: Connect your Google Account.
  • Spreadsheet: Select the Google Sheet you just created.
  • Sheet: Select the specific sheet within that spreadsheet.
  • Does the first row contain headers?: Toggle this ON.
  • Values:
    • Date: Insert data 2. Get Current Date -> Result.
    • Title: Insert data 1. Get Feeds -> Title.
    • Author: Insert data 1. Get Feeds -> Author.
    • Summary: Insert data 1. Get Feeds -> Summary.
    • Link: Insert data 1. Get Feeds -> Link.
  • Generate Sample Data: Click "Test step" to add a row to your sheet. Make sure your Google Sheet is being updated properly

7. Publish Flow 1

  • Click "Publish" at the top right. Your RSS Feed Filter is now live! Check back after 20-30 minutes to make sure the sheet is being populated with articles. If it's not, check if your "Match Interests" step is filtering the news too aggressively. This may take some tweaking and testing to make sure that you're actually logging news that you like, and not logging news that you don't like.

Part 2: The Daily Email Generator Flow

This Flow will run daily, read the logged news, rank it based on your interests, generate a beautiful(ish) HTML email, and send it to you every morning. It will then clear the processed news from the Google Sheet and repeat the process the next day.

1. Create a New Flow

  • In your Activepieces dashboard, click "+ New Flow".
  • Name it something like "RSS Daily Email".

2. Step 1: Trigger - Every Day (Schedule)

  • Piece: Search for and select Schedule.
  • Trigger: Choose Every Day.
  • Hour of the day: Set your desired time (e.g., 10 am – or you can choose to send it weekly or only on certain days).
  • Timezone: Select your local timezone.
  • Run on weekends: Toggle as per your preference.
  • Generate Sample Data: Click "Test Step".

3. Step 2: Get Current Date (Date Helper)

We'll use this for the email subject and potentially in the email body.

  • Click the + button.
  • Piece: Date Helper.
  • Action: Get Current Date.
  • To Time Format: MMMM DD YYYY.
  • Time Zone: Your local timezone.
  • Generate Sample Data: Click "Test step".

4. Step 3: Get News (Google Sheets)

Retrieve the news articles logged by Flow 1 for the current day.

  • Click the + button.
  • Piece: Google Sheets.
  • Action: Find Rows.
  • Connection: Your Google Account.
  • Spreadsheet: Select your "RSS Aggregator" sheet.
  • Sheet: Select the specific sheet.
  • The name of the column to search in: Choose Date (this is arbitrary, we simply want to search the whole sheet).
  • Search Value: Leave blank to search the whole sheet.
  • Number of Rows: Set to a high number like 9999 to get all matching rows.
  • Generate Sample Data: Click "Test step". This should return the rows logged for today.

5. Step 4: Rank News (Text AI)

AI ranks the retrieved news based on your interests.

  • Click the + button.

  • Piece: Text AI.

  • Action: Ask AI.

  • Provider: OpenAI.

  • Model: gpt-4o.

  • Prompt: This prompt will take the list of articles and ask the AI to rank them. Again, adapt the interests and disinterests to your own!

    Output this list:
    {{3. Get News}}
    as a numbered list with article title, summary, and link to the full article. Order the list by how interesting each article might be to me. #1 on the list is the most interesting to me.
    
    My interests: [List your specific interests again, same as in Flow 1. Examples: vibe coding, standup comedy, etc.] 
    
    Do not include these things in the list: [List your disinterests again. Examples: Marketing or salesy press releases, Product updates or company announcements, etc.]
    
    Choose the 10 most interesting news articles to me, and rank them #1-#10 with how interesting they are likely to be to me, with #1 being the news article that most closely matches my described interests. 
    Output only the Top 10 numbered list with article title, summary, and link to the full article. ```
    
  • Replace {{3. Get News}} by passing the data from the Data Selector.

  • Creativity: 100.

  • Generate Sample Data: Click "Test step". The output should be a ranked, numbered list of articles.

6. Step 5: Generate Email (Text AI)

This step generates the HTML for your daily email digest and adds some commentary on why each story might be interesting to you. Would it be better to feed it a static HTML template? Yes. Is it funny that the daily email will look different every day if you make it generate the HTML from scratch every time? Also yes.

  • Click the + button.

  • Piece: Text AI.

  • Action: Ask AI.

  • Provider: Select Anthropic.

  • Model: Choose a powerful Claude model (e.g., claude-3-7-sonnet). Less powerful models will have difficulty generating the email.

  • Prompt: This is a complex prompt that defines the email's structure, style, and content. This will require significant adaptation for your desired look and feel. Here's how I've structured it to ensure a consistently well-formatted email that avoids weird errors like misaligned headers and beginning the output with "html":

    I need a beautiful, easy to read, but unique and creative looking daily email in HTML that gives me the top 10 news items from this list, in exactly this order:
    {{4. Rank News}}
    
    In the list, include the article title, summary, and link to the full article. In italics, explain in one short sentence why I should care about the news article. Do some research to explain why I should specifically care about that article given that I work in AI automation and I like standup, music technology, video games, and really cool stuff. 
    
    Then generate a fun, fantastic-looking, attractive, and well-formatted email in HTML that delivers this list to my inbox. The email should look stylish and very unique. Be creative with the style and relate the style to the stories in the list. Each story could have a different style. You can also add emojis in the formatting as needed that relate to the content of the news stories. 
    
    Include a fun and great-looking header with a color gradient and other eye-catching features called "Vibe Coder News" plus today's date (the date should be subtle). Today's date is {{2. Get Current Date result}}.
    
    Spend some time making the header look good and professional.
    
    Give a fun but concise 1-2-sentence News Summary of today's news articles below the header but before the list. What does articles have in common, if anything? Does the news seem to be going in any direction? Make the text of this summary easily readable, but not too big. 
    
    Then go right into the great-looking and creatively formatted list. The "Read More" text for each article should always be WHITE. Be sensitive with the emojis you use when a story involves death - do not use ghost or skull emojis. 
    
    Make sure the text is always readable (including in buttons) and that the email is high contrast so the text is always a much different color than whatever is behind that text. Use #8142E3 as one of the email colors. Use cool color gradients for buttons and the header. Do not use any images. Make sure the ranking numbers (#1-#10) are well-formatted and attractive. If you use backgrounds for the numbers, make sure the numbers are centered in the backgrounds and well presented. Prioritize typographic alignment, visual hierarchy, and proper spacing. For number badges, don't add a circle behind the number. Add a stroke or shadow or use color contrast instead to visually separate the number from the background. Center the number in the header of the section if that makes it look better. 
    
    Respond ONLY with the body of the email in well-formatted HTML. Begin with <!DOCTYPE html>
    
    • Make sure the data is properly passed, as always.
  • Max Tokens: Set to a high value like 10000 (this step can be compute-intensive).

  • Generate Sample Data: Click "Test step". This will take a moment. The output should be raw HTML.

7. Step 6: Send Email (Gmail)

  • Click the + button.
  • Piece: Gmail.
  • Step: Send Email.
  • Connection: Connect your Gmail account.
  • Receiver Email (To): Enter your email address.
  • Subject: "Fresh Vibe News for {{2. Get Current Date Result}}" - (insert data from "2. Get Current Date result").
  • Body Type: Select HTML.
  • Body: Insert data from 5. Generate Email -> Output.
  • Generate Sample Data: Click "Test step" to send yourself a test email. Check your inbox!

8. Step 7: Clear Processed News (Google Sheets) To ensure you don't re-process old news the next day, you need to clear the news items that were just included in the email. This ensures that you receive fresh news every day.

  • Click the + button after the "Send Email" step.
  • Piece: Google Sheets.
  • Step: Clear Sheet
  • Then choose the sheet you chose previously to log news.

9. Publish Flow 2

  • Click "Publish". Your Daily Email Generator is now active!

You Did It!

Congratulations! You've built a sophisticated, AI-powered personal news aggregator and daily email digest. This tool will help you stay informed on your terms, cutting through the noise and delivering content curated specifically for your interests.

Feel free to tweak the AI prompts, add more RSS feeds, customize the email template, and even add Slack or Discord alerts for specific topics with a Router step. The possibilities are endless!