AGENCY
ZGRZ Agency

Event discovery platform with automated data aggregation across multiple sources

A web platform that pulls events from across the United States, enriches the content, and enables users to search events by location and date. 

 

Saas
MVP development
B2C
Media
Data Aggregation
API Integrations
Directus CMS
Content-Driven

About the project

A web aggregator that pulls offline events from a wide range of online sources and presents them in one easy-to-use catalog. Visitors can select a city, venue, date range, and event category, then instantly see a relevant list of activities. Each event page shows the description, time, venue, a link to the original source, and an image gallery; search and filters remain fast and responsive even at high data volumes.

 

About Customer

Lisa, a US-based founder, regularly attends local events and struggled to discover them easily — which inspired this product. Lisa came to us at the pre-launch stage with a limited MVP budget, so the scope had to stay tight on the functionality that mattered most for going live.

 

Fragmented sources

 

Events were scattered across dozens of websites and listings, each with a different structure and inconsistent quality of descriptions, so aggregation required a unified data pipeline to collection and normalization.

 

Limited data from the SERP API

 

The external service did not always return complete records and only delivered minimal preview images, so we required enrichment and completion logic for the data.

 

Duplicate events

 

The same event could appear across many sites with different wording, dates, and links, which required an intelligent grouping mechanism.

 

Flexible update rules

 

Different cities and time horizons required different refresh frequencies — near-term events more often than distant ones — with fine-grained control.

 

Visual content

 

The goal was to present a gallery of high-quality images per event, while the raw sources typically delivered one small thumbnail at best.

 

Accuracy and performance

 

The platform had to combine heavy server-side processing — deduplication, categorization, image search — with fast user-facing response times.

 

Proposed solution

We built the aggregator on a headless backend in Directus with a React frontend. The platform polls the SERP API on a schedule, normalizes incoming data, merges duplicates, and enriches events with categories and images. Update schedules, sources, deduplication rules, and content moderation are all managed through the admin panel.

 

Discovery and usage scenarios

 

We defined the core scenarios upfront: searching events by city, date, and category; viewing the event detail page; following the link to the original source; and using the platform from mobile. In parallel, we agreed on data-freshness expectations across different locations, which directly shaped the design of the background scheduler.

 

Data model in Directus

 

In Directus, we agreed to model the entities "event," "source," "location," "raw record," "event group," and "image," along with the rules that link them. That structure allows us to keep multiple raw entries for the same gathering, merge them into a single event group, and surface only the normalized record to the user.

 

SERP API integration and update scheduler

 

The backend service calls the SERP API on intervals using different location and date parameters, stores raw results in a dedicated table, and processes them downstream. Each location has its own refresh frequency, with a more aggressive mode reserved for events happening today or in the next few days.

 

Deduplication and categorization with a language model

 

Raw results pass through a dedicated processing layer. Based on title, description, date, and venue, the system groups records likely to describe the same event. A language model helps detect semantic similarity, normalize categories, and fill in missing fields, consolidating several raw entries into a single canonical event.

 

Image search and enrichment

 

For each event, we implemented a dedicated image-search algorithm that queries open sources by keywords, location, and venue or brand name. Returned images are filtered by resolution and format to assemble a curated gallery, raising the visual quality of the catalog well above the raw previews from source data.

 

React frontend focused on search and filters

 

The frontend covers the main catalog, city pages, and event detail pages. Search and filtering runs on top of the API with combined filters (city + date range + category). We focused on performance: lazy-loaded cards, pagination, optimized API queries, and a fully responsive UI.

 

Admin panel and operational control

 

The client's team manages the active list of locations and updates rules through Directus, intervenes manually in difficult deduplication cases, hides irrelevant events, and highlights important ones. We also confirmed the need for logging and baseline dashboards so the team could see how often locations were refreshed, how many new events were ingested, and how many were filtered out as duplicates.

 

In the first stage, together with Lisa we defined priority cities and event types, how often users expected updates, and what "current event data" actually meant for different markets. That defined the requirements around data volume, SERP API usage, and the level of detail needed to support monetization later.

 

Directus CMS
PostgreSQL
SerpAPI
OpenAI

+2 Resource

Results

We delivered a single, manageable catalog with relevant results across different cities. End users got a convenient discovery tool, and Lisa's team got a transparent process for data ingestion and quality control that can be developed and scaled.

 

One unified event catalog

in place of dozens of disconnected sources

 

Reduced duplicate listings

of the same event

Controlled data freshness

by location and time horizon

Stronger visual presentation

for events thanks to dedicated image search

Transparent operational control

through tools for managing sources, locations, and processing rules

Get in Touch

Or send us a message and we'll get back to you within 15 minutes during business hours

Enter your name

Enter your email

Enter your message

Andrii Trubai

Andrii Trubai

CEO | Head of WebDev department

More Success Stories