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.
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.
AI Software Product Manager
Daily updates of Xiaomi's latest AI internal materials
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
