The Problem
Followed 20+ AI/tech Telegram channels. Spending 2+ hours/day scrolling through hype and promos to find 2-3 truly valuable posts. Built an ML filter in 5 days. Rate posts from 1 to 5 stars — AI learns your taste. Cuts 80% of noise.
Before / After
Before: 20+ channels, 100+ posts/day → 2+ hours scrolling → find 2-3 good posts → exhausted
After: Bot aggregates everything → rate for 2 weeks → AI learned: “likes RAG systems, dislikes LLM benchmarks” → shows 15-20 posts/day (all relevant) → 15 minutes reading
Impact: 85% accuracy after 6 weeks. Discovered I skip benchmark posts but read every RAG article — a pattern I wasn’t aware of.
How It Works
Step 1: Bot monitors 20+ channels, sends all posts into a single Telegram feed.
Step 2: Rate each post 1-5 stars. After ~100 ratings (2 weeks), ML model sees patterns. It understands meaning, not just keywords.
Step 3: Bot starts filtering. Shows only posts similar to those you rated 4-5 stars. Gets smarter with every rating.
Result: 100+ daily posts → 15-20 curated ones. All signal, zero noise.
Technical Architecture
- Content Ingestion: Telegram API monitoring, deduplication across channels
- Storage: PostgreSQL (messages, ratings) + Qdrant (embeddings for semantic similarity)
- ML Model: Hybrid vector similarity + metadata features. Binary classification: “Will user give 4-5 stars?”
- Adaptive Delivery: Cold start (2 weeks) → Learning (weeks 3-6) → Optimized (6+ weeks)
- Continuous Refinement: Nightly retraining, accuracy tracking, interest drift detection
What Makes It Special
Learns nuances, not just topics. Doesn’t filter “all AI content” — filters “AI product announcements” while keeping “technical RAG implementation posts.” Discovers patterns in your taste you didn’t know you had.
Real Numbers
- Filters 75-85% of noise (100+ → 15-20 relevant messages)
- Time: 15 min focused reading vs 2+ hours scrolling
- 85%+ accuracy after 6 weeks
- 572 hours saved per year