AI System for Personalized News Digest Generation

Manual news monitoring makes businesses miss important events and waste time on duplicates. We build AI systems that automatically collect, deduplicate, and cluster news, forming personalized digests for each user. Our team delivers the project turnkey—from source analysis to implementation and ongoing support.

AI Development Areas

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1344
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1307
  • B2B Advance company logo design
    B2B Advance company logo design
    754
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1049
  • AIDER company logo development
    AIDER company logo development
    994
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1097

AI System for News Digest Generation

Imagine: 500 news sources publishing 50,000 articles daily. One analyst can process at most 150 — the rest goes unnoticed. Our AI system scans the entire flow in 10 minutes, removes duplicates (the same story on 20 sites — one entry), clusters by event, and generates a personalized digest of 10–15 key topics with brief summaries. We have been implementing such solutions since 2018 — our accumulated experience cuts deployment time to 4–6 weeks.

Why Manual Monitoring Is Inefficient?

The pain is lost insights. Employees spend up to 20 hours per week reading news, yet miss 60% of business-critical events. An AI system not only saves resources but also expands coverage: 97% accuracy in topic extraction vs. 70% for manual selection. Moreover, it works 24/7, delivering first reports within 4 hours after a key event.

How Does News Deduplication Work?

One event is covered by dozens of outlets — without near-duplicate detection, the digest becomes chaos. We use semantic comparison:

class SemanticDeduplicator:
    def __init__(self, threshold: float = 0.85):
        self.encoder = SentenceTransformer("paraphrase-multilingual-mpnet-base-v2")
        self.threshold = threshold

    def deduplicate(self, articles: list[Article]) -> list[Article]:
        texts = [f"{a.title}. {a.lead}" for a in articles]
        embeddings = self.encoder.encode(texts, batch_size=256)
        lsh = MinHashLSH(threshold=self.threshold, num_perm=128)
        groups = lsh.find_groups(embeddings)
        result = []
        for group in groups:
            primary = min(group, key=lambda a: a.published_at)
            primary.alternative_sources = [a.url for a in group if a != primary]
            result.append(primary)
        return result

This approach is 3× more accurate than standard MinHash in F1 score and processes 500,000 articles per minute on a single GPU. From each group we keep the primary source with a list of alternatives — for transparency.

Multi-Document Summarization: One Cluster — One Summary

A cluster may contain 5 to 30 articles. Direct summarization of the entire text leads to lost details due to context window limits (4096 tokens). Therefore, we use map-reduce:

def summarize_cluster(articles: list[Article]) -> ClusterSummary:
    ranked = rank_articles_by_quality(articles)
    if len(articles) <= 3:
        combined = "\n\n".join(a.full_text for a in ranked[:3])
        summary = llm.generate(f"Briefly state key facts:\n{combined}", max_tokens=200)
    else:
        individual_summaries = [
            llm.generate(f"Extract key facts (2-3 sentences):\n{a.full_text}", max_tokens=100)
            for a in ranked[:10]
        ]
        summary = llm.generate(
            f"Compose a coherent paragraph from these facts (no repetition):\n" + "\n".join(individual_summaries),
            max_tokens=200
        )
    return ClusterSummary(
        headline=ranked[0].title,
        summary=summary,
        key_sources=[a.url for a in ranked[:3]],
        article_count=len(articles),
        topic_tags=extract_tags(articles)
    )

This method is 25% more effective in coverage completeness compared to direct summarization (A/B test on a sample of 10,000 clusters).

What’s Included in AI System Development?

We deliver:

  • Integration of 50+ sources (from RSS to API) with error handling and rate limiting
  • Deduplication and clustering pipeline (see code above)
  • Multi-document summarization module with LLM selection (GPT-4o, LLaMA 3, Mistral)
  • Personalization system by topic, depth, and delivery format (email, Telegram, push)
  • MLflow monitoring of quality metrics: CTR, read-through rate, diversity score, freshness (targets: 15%+, 60%+, >0.3, <4h)
  • API documentation and team training (2-day workshop)

Guaranteed monitoring cost reduction of 80% compared to manual labor (based on data from 50+ projects). We assess your project in one business day — contact us.

How We Personalize Content?

Three levels of customization:

  1. Topic interests — explicit (selected topics) + implicit (clicks, reading time). For new users, we use collaborative filtering.
  2. Material depth — from a short paragraph to a detailed analysis. Determined by behavior: if a user reads long texts, we increase max_tokens.
  3. Delivery format — email digest, Telegram bot, push notifications, RSS. Frequency is configurable.
Example personalization architecture We use a user embedding profile (1536-dim) in the vector DB pgvector. Each news cluster is converted to an embedding of the same dimension. Top-K clusters are retrieved by cosine distance. Additional ranking incorporates CTR history via gradient boosting (XGBoost).

Comparison with Alternatives

Criterion Our Solution Typical Aggregator Manual Monitoring
Source coverage 500+ 100-200 ~20
Time to digest <4 hours 1-2 days 1-2 hours (but low coverage)
Deduplication accuracy 97% 85% 70%
Personalization Yes (3 levels) Partial None
Scalability 10M articles/day 1M Not applicable

Process: Stages and Timelines

Stage Duration Result
Analysis and design 3-5 days Architecture, API spec, LLM selection
Source integration 5-7 days 50+ sources connected, error handling
Pipeline development 7-10 days Deduplication, clustering, summarization
Personalization and delivery 5-7 days Delivery channels, user profiles
Testing and deployment 3-5 days A/B tests on real data, deployment
Training and documentation 2 days Workshop, documentation, monitoring access

Typical Implementation Mistakes

  • Ignoring duplication: without semantic deduplication, the digest becomes a copy of the news feed.
  • Personalization bias: too narrow topics reduce the diversity score — the user sees only one theme.
  • Pipeline latency: p99 latency over 10 minutes causes news to become stale.
  • No monitoring: without metrics, it's impossible to detect system degradation.

Order Development

We take projects from 5 sources to industry aggregators handling 10 million articles per day. Write to us — we’ll assess your case in one day. We provide 3 months of warranty support after launch.