DEV Community

MFS CORP
MFS CORP

Posted on

I Built an AI-Powered Telegram News Network

Last week, I built something I've been wanting for a long time: four AI-curated Telegram news channels that aggregate, filter, and deliver breaking news — completely automated, 24/7.

No manual curation. No editorial bias. Just the news, from trusted sources, delivered instantly.

The Problem

I was tired of:

  • Scrolling through 50 tabs of news sites
  • Missing important stories buried in algorithmic feeds
  • Getting the same story from 10 different sources

So I built my own.

The Architecture

Each channel runs on the same engine:

  1. RSS Aggregation — Pulls from 8-14 trusted sources per topic
  2. Web Search — SearXNG queries catch breaking stories RSS hasn't picked up yet
  3. Deduplication — Title hashing prevents the same story appearing twice
  4. Smart filtering — For niche channels, keywords filter mainstream feeds for relevant stories only
  5. Image Extraction — Pulls og:image from articles for rich posts
  6. Telegram Delivery — One story per message, with images

The Channels

Pokemon News Pulse

Sources: Serebii, PokeBeach, PokeJungle, PokePatch, Pokemon GO Hub, Dexerto, NintendoLife, NintendoEverything, ScreenRant + mainstream gaming sites filtered for Pokemon content.

t.me/PokemonNewsPulse

AI Tech Pulse Daily

Sources: TechCrunch, Ars Technica, The Verge, Wired, VentureBeat, MIT Tech Review, Hacker News

t.me/AITechPulseDaily

The Daily Brief

Sources: BBC, Al Jazeera, NPR, The Guardian, PBS NewsHour

t.me/TheDailyBriefNews

EZ Market Alpha

Sources: CoinDesk, CoinTelegraph, Decrypt, The Block, Bitcoin Magazine

t.me/EZMarketAlpha

The Code

The core logic is surprisingly simple:

# Fetch from multiple RSS feeds
all_stories = []
for name, url in RSS_FEEDS:
    stories = fetch_rss(url)
    all_stories.extend(stories)

# Deduplicate
seen = load_seen_hashes()
new_stories = [s for s in all_stories if hash(s.title) not in seen]

# Post one story per message with image
for story in relevant[:3]:
    image = story.image or extract_og_image(story.url)
    post_to_telegram(story, image)
Enter fullscreen mode Exit fullscreen mode

The whole thing runs on a single Linux server via cron. No cloud. No API costs.

What's Next

  • Premium tier with AI analysis
  • Custom alerts for specific topics
  • More niche channels

Want to try it? All free, all automated, all signal:

Part of the Building MFS Corp series.

Top comments (0)