Agriva, real estate · 2026
86 live listings, most of them wrong somewhere, and admins fixing by hand
Built by Vyzma. Led by Ansuj.
Situation
Agriva's live catalogue had bad titles, areas that disagreed with the broker's own text, phone numbers overlaid on photos and missing map data.
What we built
A rules-plus-AI inspector that checks every listing, logs every issue, proposes fixes an admin keeps or reverts, and asks brokers for what only they can fix.
What changed
The whole catalogue was audited and cleaned with an audit trail on every change, and new listings cannot publish with a critical issue.
The problem
By October 2026 the platform had 86 live listings. Many had emoji titles, pasted WhatsApp text, prices that did not match the per-acre figure, or a drawn boundary that did not match the stated area.
Overlaid phone numbers and logos on photos reflected badly on the platform and leaked broker contacts around the lead flow.
Admins were fixing listings one at a time with no record of what changed, so nobody could tell what had been edited or revert a bad edit.
What we built
- An inspector with pure check modules for text, numbers, location and media, run on every save and on demand.
- Safe automatic fixes, each stored as a quality change with the exact before and after, so an admin can keep or revert every one on the listing's audit screen.
- Critical issues hold a listing from publishing until an admin resolves them. No silent auto-edits.
- Overlay detection that finds phone numbers, logos and watermarks on photos and plans a crop, plus a server-side photo editor that keeps originals.
- Broker fix requests in plain language, sent over WhatsApp from one guarded sender, with reminders and a per-listing activity log.
- A broker workspace where a broker edits their own listing; the edit goes live immediately only if it leaves no open critical issue, otherwise it is held for review while the old version stays live.
How it works
- Checks are pure functions over the listing record; the inspector reconciles their output with the stored issue log so an issue has one lifetime, not one row per run.
- A fix is a proposed change. Applying it writes before and after; reverting checks the field has not changed since, and refuses if it has.
- An on-demand AI judge reviews the buyer-facing description, and a fact-only rewrite is proposed for an admin to accept, never applied by itself.
What changed
86
live listings audited
Source: Agriva listing audit note, 2026-10-11
68
title and description rewrites applied
Source: Agriva listing audit note, 2026-10-11
40
photo fixes: 14 overlay crops, 26 rotation and dedupe
Source: Agriva listing audit note, 2026-10-11
16
lost drone flyovers and nearby-places sections restored
Source: Agriva listing audit note, 2026-10-11
71
backlog fixes on production (61 text, 10 location), logged and revertable
Source: Agriva release note, 2026-10-12, estatia-backend PR #97
0
emoji titles, pasted chat text or phone numbers left in descriptions
Source: Agriva listing audit note, 2026-10-11
- Every automatic change has a stored before and after and a revert path.
- Listings with a critical issue cannot go live until an admin clears them.
Stack
If this looks like your situation
Tell us where it hurts. We will say whether it is worth automating, and what we would build first.
Related work
Quantiphi and Google PSO
2018 to 2019
Enterprise vision and ML delivery for Fortune 500 clients, with Google's services team
Deployment time for ML APIs fell by 60%.
60%faster ML API deployment
Led by Ansuj Joshi as machine learning engineer at Quantiphi Analytics, May 2018 to Dec 2019, including work with Google Professional Services as Associate Cloud Engineer

Agriva, real estate
2026
Buyers could not search farmland the way they talk about it
Chat is now the primary way buyers search on agriva.ai, and every answer is grounded in listing data rather than guessed.
Built by Vyzma. Led by Ansuj.

Agriva, real estate
2026
Brokers pasted WhatsApp text and phone photos, and that went live
Listings go live in English and local languages from one structured call, cheaper and more consistent than a call per language.
Built by Vyzma. Led by Ansuj.