Building an AI-Powered Trend Monitoring Tool from Scratch with GitHub Actions

TrendRadar is an AI‑driven hotspot monitoring tool that aggregates data from over 11 platforms, offers three push modes, RSS support, keyword filtering, multi‑channel notifications, and can be deployed via GitHub Actions, Docker, or locally; this article walks through the full setup, secret configuration, testing, and optional customizations.

AI Software Product Manager
AI Software Product Manager
AI Software Product Manager
Building an AI-Powered Trend Monitoring Tool from Scratch with GitHub Actions

TrendRadar (https://github.com/sansan0/TrendRadar) is an AI‑driven public‑opinion and trend monitor that automatically captures hot topics from multiple web platforms and pushes them to configured channels.

Core Features

Monitors 11+ platforms (Weibo, Zhihu, Douyin, Bilibili, Baidu, Toutiao, etc.)

Three push modes: daily summary, current ranking, incremental (zero duplicate)

Supports 10 push channels: Enterprise WeChat, Feishu, DingTalk, Telegram, Email, Bark, Slack, generic webhook, etc.

AI capabilities: intelligent filtering, trend analysis, translation, sentiment analysis

Keyword filtering with AND/OR logic and regular expressions

Deployment options: GitHub Actions (serverless), Docker, or local execution

Full‑Stack Hotspot Aggregation

By default the tool aggregates data from 11 mainstream platforms, which can be extended. Supported platforms include Zhihu, Douyin, Bilibili, Hot Search, Wall Street Journal, Tieba, Baidu Hot Search, Caixin, The Paper, Phoenix, Toutiao, and Weibo.

RSS Subscription Support

Unified format: RSS/Atom feeds use the same keyword matching and display format as the hot‑list.

Simple configuration: add RSS sources directly in config.yaml.

Merged push: hot‑list and RSS items are combined into a single notification.

Freshness filter: automatically discard articles older than a configurable number of days, with global defaults and per‑source overrides.

Visualization Config Editor

A web‑based graphical editor lets you modify and export all configuration items via forms, avoiding manual YAML edits.

Push Modes

Daily (daily) : pushes all matching news for the day; may include previously sent items.

Current (current) : pushes the current ranking; each item appears every time it stays on the list.

Incremental (incremental) : pushes only newly added content, guaranteeing zero duplicates.

Precise Content Filtering

Set personal keywords (e.g., "AI", "BYD", "education policy") to receive only relevant hotspots and filter out noise.

Multi‑Channel Push

Supported channels include Enterprise WeChat (plus standard WeChat), Feishu, DingTalk, Telegram, Email, ntfy, Bark, Slack, and generic webhooks that can be linked to Discord, IFTTT, etc., delivering messages directly to phones and inboxes.

AI Multi‑Language Translation

Push content can be translated into any language, breaking language barriers for both domestic and overseas news.

Deployment Options

GitHub Actions : scheduled crawling with remote cloud storage (requires periodic sign‑in to renew).

Docker : multi‑architecture containerized runtime with local data storage.

Local run : run directly on Windows, macOS, or Linux.

Quick Start – GitHub Actions Deployment

Step 1 – Get the code : click the green “Use this template” button on the repository page and create a new repository.

Step 2 – Set GitHub Secrets : navigate to Settings → Secrets and variables → Actions → New repository secret and add the required name/value pairs (e.g., WEWORK_WEBHOOK_URL, FEISHU_WEBHOOK_URL). Each name must match the identifiers listed in the documentation.

Step 3 – Manual test : after completing steps 1‑2, open https://github.com/your-username/TrendRadar/actions, locate the workflow named “Get Hot News”, click “Run workflow”, and wait about a minute for messages to appear on the configured platforms.

Step 4 – Optional configuration : the default configuration works out‑of‑the‑box. For custom tweaks, edit the following files: config/config.yaml – main config (push mode, time window, platform list, weighting, etc.) config/frequency_words.txt – list of personal keywords for filtering config/ai_analysis_prompt.txt – template for the AI analyst role and analysis dimensions .github/workflows/crawler.yml – controls execution frequency (modify with caution)

{
  "message_type": "text",
  "content": {
    "text": "{{content}}"
  }
}

Testing the Push

After configuring secrets, go to the Actions page, run the “Get Hot News” workflow, and within a minute the formatted news will be delivered to all selected channels.

Configuration Files Overview

config/config.yaml

– primary configuration file (push mode, time window, platform list, hotspot weighting, etc.). config/frequency_words.txt – keyword file for defining the terms you care about. config/ai_analysis_prompt.txt – AI prompt template for customizing the AI analyst's role and analysis dimensions. .github/workflows/crawler.yml – workflow definition that sets the execution frequency; changes should be made cautiously.

DockerAIRSSGitHub Actionstrend monitoring
AI Software Product Manager
Written by

AI Software Product Manager

Daily updates of Xiaomi's latest AI internal materials

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.