AI bot for news and legislative analysis
To launch the platform, filling it with generic sample content was not enough. The content needed to reflect real, up‑to‑date topics even before users started creating it themselves.
In one of our projects, we were responsible for the backend, admin panel, and AI functionality. One of the key tasks was to build a bot that analyzes news and legislative sources, identifies relevant topics, and turns them into structured drafts for human review.

About client
The client is a large U.S. design agency that was responsible for the platform’s design and user interface. Our team handled the backend, admin panel, and AI functionality.
Tools
The architecture combines an LLM, BullMQ and Redis background queues, and role‑based access control. This makes it possible to manage analysis and generation stages separately, run long‑running tasks in the background, and preserve existing data access restrictions.
Team
The project team included developers, an AI engineer, a QA engineer, and a project manager. The team was responsible for the backend, admin panel, AI functionality, testing, and project coordination.
What we did
The topics had to be based on real events and issues of public importance: local news, state and federal legislation, city council decisions, referendums, budget initiatives, and other current matters.
So the task was not simply to generate text. The system needed to:
- collect data from multiple continuously updated sources;
- filter out irrelevant materials;
- identify the main topic of each publication;
- group materials covering the same event to avoid duplicates;
- turn them into a structured draft;
- leave the final publishing decision to a human reviewer.
How the bot works
The processing is split into two stages.
At the first stage, the model filters incoming materials, removes irrelevant publications, and groups sources related to the same event. This prevents several articles on the same topic from turning into multiple nearly identical drafts.
At the second stage, another model works with the selected and grouped materials and prepares a structured text for review. A human can then edit, approve, or reject it — there is no automatic publishing.
This setup makes it possible to configure filtering and generation separately, while also controlling quality and processing costs at each stage.
Background processing and data access
Source collection, analysis, and draft generation run in the background through BullMQ and Redis task queues. This allows long‑running operations to be processed without blocking the platform’s main workflows.
Data access follows the existing role‑based model. The bot only works with information available to the user within their permissions, and its interaction with the admin side of the platform does not bypass existing access restrictions.
Result
Previously, the team would have had to manually monitor dozens of sources, identify relevant topics, merge duplicate coverage, and prepare texts for publication.
Now, most of this work is automated: the system collects and filters materials, groups publications by event, and prepares structured drafts. A human steps in at the final stage to review the context, edit the text if needed, and decide whether to publish it.
As a result, AI handles the large‑scale initial processing of information, while the team retains control over the final content.