AGENCY
ZGRZ Agency

SaaS Platform for Real Estate Agencies with Automated Listing Collection, Alerts, and an AI Assistant

A web dashboard for realtors and agencies that handle rentals and sales of housing within specific administrative zones. Users see the full list of listings in their zones, filter them, view sources, track price changes, and keep notes on each property. The platform also offers favorites, owner contacts, call scheduling, distribution of listings among team members, and alerts that notify users about new relevant listings. An additional AI layer pulls data from texts and photos, highlights risks, and generates a short summary of each property.

Saas
MVP development
B2B
PropTech
Real Estate
Data Aggregation
API Integrations
Directus CMS
Back-Office Development

About the Project

A web dashboard for realtors and agencies that handle rentals and sales of housing within specific administrative zones. Users see the full list of listings in their zones, filter them, view sources, track price changes, and keep notes on each property. The platform also offers favorites, owner contacts, call scheduling, distribution of listings among team members, and alerts that notify users about new relevant listings. An additional AI layer pulls data from texts and photos, highlights risks, and generates a short summary of each property.

About the Customer

Heinrich is the owner of a real estate agency in Germany. He became passionate about building a B2B service for the real estate market, where the key value is speed of first contact and exclusive access within defined territories. His product's monetization model is a subscription in which administrative units are assigned to a client or team, reducing competition for the same lead within the platform. He came to us with only an idea, which we needed to bring to life.

Data collection

The system had to process a very large volume of listings and keep data up to date daily without manual operations, while keeping the product stable.

Duplicate merging

Listings from different sites are almost never exact copies, so we needed logic to "glue" them into one card based on a combination of attributes.

Territorial classification

Listings had to be linked to administrative units, with access restrictions based on the subscription and team permissions.

Complex working actions

Contacts, notes, a large questionnaire per property, distribution within the team, deal potential, hiding from the feed: all of this had to work quickly and without conflicts in a multi-user environment.

Alerts with flexible rules

Users must be able to create any number of listing combinations through filters and receive notifications about new matches, with a separate list of new listings for each alert.

Managed back office

We needed an administration tool where roles, users, teams, reference data, and service entities could be maintained without constant code changes.

AI assistant

The AI had to extract facts, highlight risks, and provide a short summary without inventing characteristics that don't exist or producing data out of thin air.

Proposed Solution

We built the solution as a full-fledged SaaS, divided into separate layers: data collection, product logic (API + business operations), back office, and web interface. Data is collected and normalized separately, while the product works with unified listing cards, teams, events (calls, notes, alerts), and zone-based subscriptions. Directus serves as the control center for managed entities and roles. On top of this, we added an AI layer that finds and explains data.

Listing collection and updates on Node.js + Puppeteer

Background workers collect listings from multiple sources, normalize fields, and run scheduled checks. Puppeteer is the foundation for working with dynamic pages.

A single property card

Listings from different sources are merged into one card with a list of sources, price change history, a unified status, related contact context, and team actions.

Product API layer on Node.js

We exposed business operations through separate endpoints: favorites, hiding, notes, an action log, assigning a responsible person, call statuses, potential scoring, and work with alerts and subscriptions.

Directus as the back office for accounts

We set up collections, roles, and permissions for the account structure of an owner, manager, or agent. We also built in teams, zones, plans, statuses, reference data, and access rules.

Web client for the realtor

We implemented a list with filters, context markers, and quick actions; a property page with change history and a large post-call questionnaire; and team workflows for distribution and notes.

Alerts as an extension of search

With frequency control and noise protection, we built alerts on the same filters as search and deliver a separate list of new listings for each rule.

Subscription and territorial exclusivity

We tied plans to administrative zones and restricted access to cards and tools based on purchased zones and team roles.

AI module for listing processing

Collected listings go through AI processing. The assistant extracts structure from text, writes a short summary, prepares a list of questions for the call, and drafts a first-contact template. When needed, the AI flags risks or uncertainties, and it works transparently so that every conclusion is grounded in the listing itself.

At the start, we built a picture of a realtor's real work. We described a potentially "hot" listing, which fields realtors look at first, what they record after a call, how work is divided within a team, and the moment when information gets lost. In parallel, we defined the business rules: what "zone exclusivity" means, how it is sold, how teams work, and what an account manager should see versus a rank-and-file agent. The result was a clear separation into a data collection layer, a product layer (API + business operations), and a management layer (back office).

Results

After launch, the client received a working SaaS product in which data and sales processes are brought together in one interface.

~1,000,000 listing checks

performed by the system daily

3–7 sources

used to build a single card

30–60% fewer duplicates

in the feed after merging

3 minutes to the first alert

from the moment a new relevant listing appears in a source

 

Up to 50+ alerts

per user

Up to 20 users

in one team, enabling simultaneous work by agents

0 manual transfers

to spreadsheets: all data is generated and stays in the system

Up to 1,000 access zones

set up in the reference list

≤ 1 day

to launch a new zone or plan from scratch

12 months

of change history stored for each card

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