Tech · case study
The data groundwork
Before anything could be built, Gujarat's villages had to be right.
Every system at Bull depends on knowing which village a farmer is in, which taluka that village sits in, and which centre serves it. The lists the company had were wrong in all three ways, and the errors had quietly spread into tens of thousands of records.
So the first job was the master list, scraped from the government's own land-records portal, and then every system that touched a village was rebuilt on it.
How it works
Scrape the source of truth
Eighteen and a half thousand villages with their taluka and district, from Gujarat's 7/12 land-records portal.
Audit what the CRM hadCheck
Eighty-nine thousand farmer records checked against the master list. Three in ten had the wrong centre, which meant telecallers calling the wrong region's farmers.
Fix and push back
Ten thousand records corrected and returned to the CRM, with the centre predicted where it was missing.
Give the field a form that works offline
A single-file app for ninety supervisors with every village searchable, installable on a phone, usable in a village with no signal and synced later. Eleven versions, each from field feedback.
Feed the ERP and the maps
Nineteen thousand villages with census codes loaded into the ERP; the same list under the Compass maps and the castor analysis.
What it changed
- Every location-dependent system at Bull now agrees on what a village is.
- Supervisors capture leads from the field in a standard form instead of on paper, and duplicates are flagged before they are submitted.
Built with Python scrapers, pandas pipelines with fuzzy matching, a Leaflet map, a vanilla-JS progressive web app with a service worker.