AI News Aggregator and Autopublisher
Case study · AI agents and RAG systems · Laravel · September 2026
Publishing one news story is easy. Processing a daily RSS stream without repeating the same event, mistaking promotion for reporting, or losing track of delivery across several channels is harder. I built an editorial pipeline that handles eligible stories automatically and sends uncertain cases to an editor.
Database snapshot: September 22, 2026, 10:47 Moscow time. Reliable WordPress publication records start on June 29, 2026; the figures above cover different periods.
The gallery above shows an early interface. The newer stages and measured results are explained below.
What changed: the first autopublisher grew into a system for editorial decisions. Before a story reaches publication, it passes duplicate detection, classification, site-specific policies and a final check against the source.
One story, two ways in
Automatic RSS intake
Every five minutes the system checks active sources, extracts the story and queues a new record. Eligible stories continue without an editor. Ambiguous ones stop for review.
Editorial Telegram bot
An editor submits source material, selects destinations, reviews an AI preview and explicitly chooses “Publish” or “Cancel”. This route has a human decision and does not run exactly the same set of automatic checks as the RSS route.
An editor also configures sources, categories, destinations and publication policies. The whole system should therefore not be described as fully autonomous.
What happens after a story arrives
Extract the source and reject exact repeats
The RSS feed and source page provide the story text. A repeated URL or title within 24 hours is detected before AI processing. One failing source does not stop the rest.
RSS · URL · titleRewrite and classify
The active text provider is OpenAI
AI rewriting · classificationgpt-4o-mini. It prepares a new editorial headline and body, then classifies story type, categories, importance, geography and advertising signals. Source material that is too short goes to the editor.Check semantic duplicates and site policies
Embeddings and Qdrant find related events over a 14-day window. The check considers similarity alongside actors, actions, objects and numeric facts. Each destination then applies its own categories, importance threshold and rules for advertising, negative stories and non-news content.
RAG · stop words · site policyPrepare two images
1024 × 1024 · 1536 × 1024gpt-image-2produces a square image for cards and a wide image for the article. An editor can replace the result with an uploaded file or launch another image generator manually.Check against the original and publish
Before WordPress, the final check requires a concrete event and at least two supporting sentences from the original. If the AI or RAG service is unavailable, publication waits. Separate jobs send Telegram and MAX announcements after WordPress confirms publication.
quality gate · WordPress REST API · delivery
Why a rewritten text is not necessarily a new story
Two sources can describe the same event in different words. A URL check would miss that. The pipeline layers exact duplicate detection, semantic comparison in Qdrant, stop words, site policies and a final factual check against the original.
A repeated event
The system compares related stories and the structure of each event. Editors can see similar items and the reasons behind a decision.
Too little evidence
The final AI check requires a clear event, at least 85% confidence and supporting material from the source. Fluent text without enough evidence does not go to the site.
Between August 4 and September 22, 2026, the final gate recorded 631 decisions: 514 allowed and 117 stopped. These are editorial decisions, not a technical error rate.
Publication means three independently recorded outcomes
WordPress receives the article and its media through the REST API. A confirmed response with status=publish is recorded as a WordPress publication. Telegram and MAX receive announcements afterward, with their own timestamps and delivery states.
The total is 3,181 confirmed deliveries across destinations, not 3,181 unique stories. WordPress records cover June 29–September 22, 2026; Telegram records start June 30 and MAX records July 3.
How quickly does a story reach the site?
Across 1,065 confirmed WordPress publications, the median time from the story entering the system to publication was 10 minutes 15 seconds. Some 67.7% arrived within 15 minutes and 93.52% within an hour. This is measured pipeline speed, not an estimate of staff hours saved.
articles.created_at to confirmed WordPress publication.The editor sees more than the finished text
The web editor shows the source beside the AI version, categories, RAG decisions, similar stories, site thresholds and a publication preview. An editor can correct the text, replace an image, rerun processing or publish manually.
A separate daily crypto-market workflow collects data on 16 assets and market indicators, creates a page and image, and delivers the digest to WordPress, Telegram and MAX. It uses the same editorial infrastructure but is not a stage of every RSS story.
How the system evolved
Wire Room is the first account of this system: it introduces the news pipeline and the editorial Telegram workflow. This case checks each stage against the running code and delivery records: semantic duplicates in Qdrant, per-site policies, a final source-based quality gate, confirmed delivery to three channels and the editor’s controls. Its figures come from a dated database snapshot rather than a product roadmap.
The current instance runs natively on a KVM virtual machine with Nginx, PHP-FPM, MariaDB, Qdrant, cron and Supervisor. Its active text provider is OpenAI gpt-4o-mini; images come from gpt-image-2. GigaChat exists as an alternative path, and editors can use YandexART manually. Neither is the active automatic route described above.
The outcome is a managed news flow: automatic publication when explicit rules are met, and a clear handoff to an editor when they are not.
Need an AI publishing workflow for your own sources?
I can design the process from collection and verification to the editorial interface and delivery channels. The first decision is which steps can safely run automatically and where a person must remain in control.
Laravel · OpenAI · Qdrant · MariaDB · WordPress REST API · Telegram · MAX · cron · Supervisor





