Proposals answered within 2 business days
All case studies
AI agentsRAGLLM security

AI sales assistant platform for property developers, powered by live inventory

Client: Residential developer, three developments and about 210 units on offerIndustry: Real estate29 September 2026
Results
answers with invented facts in a test of 106 scenarios
5 → 0
cost per answer after optimisation
-59%
attacks on the model repelled in tests
20/20

Challenge

A buyer on a development’s website wants to know one thing: is this flat still available and how much does it cost. The developer already had an AI assistant, but a comparison test exposed errors that sales cannot accept. It described a reserved unit as available, offered two-room flats when asked about three rooms, and counted available units from the knowledge base instead of from the offer.

The second problem was architecture. The previous solution served a single client and was hard to extend. We wanted a platform where more developers could be added safely, each with separate data, cost limits and a dashboard.

Approach

We set a rule that numbers and prices come only from live data. Hard criteria such as the number of rooms, budget or development are resolved by an ordinary database query, and the model receives the full list of matching units, not a sample. Semantic search is left for descriptive questions about the area, standard and deadlines.

We chose the model after testing six candidates for accuracy, resistance to attacks, cost and time to first word. Where a prohibition in the model’s instructions proved too weak, the rule is enforced in code. For example, conversation summaries are checked by a separate filter, because the prompt alone was not enough.

Implementation

We built the platform from scratch as a multi-client system: an API, a dashboard with conversations and leads, a widget embedded on the website (about 5.5 KB) and a WordPress plugin. The offer can be fed from a file, a feed, WordPress or data published on dane.gov.pl. Large withdrawals of units wait for approval, so that an import error cannot wipe the offer.

Security has several layers: invisible traffic verification, client data isolation at database level (RLS), a prompt injection filter in front of the model and an output guard that cuts off an answer when it tries to leak instructions. The first client was switched over on 29 September 2026, with the old system kept as a way back.

Results

In a comparison test on 106 scenarios, the new version won 81 times, drew 18 and lost 6. Answers with invented facts fell from 5 to 0. The average accuracy score rose from 3.38 to 4.16 on a scale of 1-5, and the median answer length dropped from 403 to 178 characters. An independent judge model did the scoring, without knowing which version was the new one.

Optimising the prompt for caching cut the cost per answer by 59%, and time to first word fell from 1.6 to 0.85 s. In security tests the assistant repelled 20 out of 20 attacks. We will measure the effect on the number of sales enquiries after a full season.

How it is built

Architecture
TypeScript monorepo: API in Hono with database access through Kysely, admin panel in Next.js, widget in Preact and a WordPress plugin. The widget is a script of about 5.5 KB inside a closed Shadow DOM, and the chat runs in an isolated frame and talks to the host page via postMessage with origin checks.
Data and search
PostgreSQL with pgvector. Questions about specific parameters (rooms, floor area, budget, development) are handled by SQL against the current offer, while vector search covers descriptive content only. Prices and statuses never come from the knowledge base.
Model and costs
Language model chosen in a test of six candidates, called through an API gateway. The prompt is structured for the provider's cache. Each client has an AI credit pool and a daily limit, and the platform has its own cost circuit breaker.
Security
Client isolation through row-level security (RLS) in the database, invisible traffic verification and a signed conversation pass, a prompt injection filter before the model (no model call cost), offer data kept separate from instructions, an output check that cuts off a response when it tries to leak instructions, and links only to known domains.
Offer imports
A file with column mapping, a feed URL fetched with SSRF protection, WordPress, and data from dane.gov.pl. An import that would withdraw a large share of units waits for manual approval.
Quality and continuity
219 API contract tests, an evaluation suite for quality and attacks, and a 106-scenario comparison test judged blind by a judge model. Database with continuous WAL archiving to object storage and a rehearsed restore.

Technologies

  • TypeScript
  • Hono
  • PostgreSQL
  • pgvector
  • Next.js
  • Preact
  • OpenAI
  • Cloudflare Turnstile
  • Kubernetes
  • ArgoCD
Case studies

More case studies

Education and personal development

AI coach on WhatsApp with participant memory and handover to humans

A thirty-day programme run as a WhatsApp conversation, with the author’s knowledge base and a memory of each participant. AI resolved 92% of cases without human involvement, and difficult conversations went to the coaches.

View case study
Real estate

Sales and after-sales system for a developer, with 3D walkthroughs built from floor plans

An offer generator with open tracking, a defects dashboard with the statutory 14-day deadline, complaints with a phone line, and 360° walkthroughs generated automatically from floor plans for 81 of 82 flats.

View case study
Healthcare

Health app taken over, with a new product catalogue and 47 languages

We took over the app from the previous contractor: an audit, security and payment fixes, a new product search and localisation into 47 languages, without stopping sales.

View case study
Real estate

Automated system for statutory reporting of flat prices to dane.gov.pl

An audit of 612 files against the act and the ministry template, a fix to the generator at the source, and automatic upload of 409 overdue resources to a portal that has no write API.

View case study
Construction

Public tender analytics platform with a competitor relationship graph

The application combines data from the Public Procurement Bulletin, KRS, GUS and the VAT White List. It shows who is bidding, at what price and how they are connected, instead of manual searching before every tender.

View case study
Technology

Kubernetes platform with GitOps and image signing for 32 applications

We are moving several dozen applications from a single server to a Kubernetes cluster with Git-based deployments, a security policy and backups whose restoration we check every week.

View case study
Media

AI short-video factory with human approval in a mobile web app

Script, illustrations, voiceover, subtitles and render in a single pipeline. A person approves every episode in a phone app, and publishing runs in scheduled slots.

View case study
Customer service

Voice AI assistant for a helpline, with a custom audio pipeline for Polish

A phone line where the caller talks to an AI. We rebuilt the whole audio path so that conversation in Polish flows, and the system detects the end of an utterance by meaning, not by silence.

View case study
Hospitality

Video menu platform for restaurants with HLS streaming and QR codes

A guest scans a code at the table and sees short videos instead of a list of dishes, with no app to install. Video in three quality levels, data isolation for each restaurant and a database restore verified in practice.

View case study
Pharma

Analytics dashboard for a group of e-prescription online shops, with no patient data

The dashboard collects orders from many shops in real time, while patients' personal data never leaves the shops. Privacy by design from the first version.

View case study