Data reconciliation
Any schema in. One schema out.
Point an agent at systems that share no schema and it reads each one, normalizes every field to the shape your platform expects, and writes the records where they need to go.
The problem
Why a connector per vendor stops scaling
Property management data is the classic integration surface. Yardi, RealPage, Entrata, ResMan and AppFolio each have their own schema, and none of them agree on how a rent or a date should look.
Meridian, the MITS/ILS shape
Nested Property → Floorplan → ILS_Unit. Rent arrives as a cents integer, dates as separate month, day and year fields, availability as a vacancy class. The kind of export a Yardi-class system produces.
Harborview, the flat shape
One row per unit. Rent as the string “$2,150/mo”, dates as MM/DD/YYYY, lease terms and pet policy as free text, amenities as a comma-separated list. The RealPage or Entrata-class export.
Neither system is wrong; they are just different. The agent gets a tool config per system and one markdown file of field rules: cents to dollars, three date fields to ISO, free-text lease terms to integers. Adding a third system is a third config, not a third parser.
The run
What it actually did
Every timestamp below is real elapsed time from the recorded run.
- 0m 00sConnecting to Coresource.
- 0m 13sRun accepted.
- 0m 17sRead Meridian PMS, 3 records.
- 0m 17sRead Harborview PMS, 2 records.
- 0m 46sWrote 412 Willowmere Court Unit 3B to the leasing platform.
- 0m 47sWrote 205 Cobblestone Row.
- 0m 47sWrote 19 Lantern Way Unit 2A.
- 0m 48sWrote 77 Fernwood Terrace Unit 4.
- 0m 49sWrote 640 Marlowe Street Unit 1C.
- 1m 04sDone. Five listings loaded.
What it keeps true
The customer-facing side stays current with the systems behind it
A leasing assistant answers from the platform, and only from the platform. It is exactly as current as what has been loaded into it.
That is the whole job here. Availability, pricing and ready dates live in the property management systems, the prospect asks the assistant, and the gap between the two is answered in a minute rather than at whatever interval someone gets around to it.
What makes it safe to put in front of a prospect is that the agent will not invent. If two systems genuinely disagree on a rent or a bed count after normalization, it does not average them, does not prefer one, and does not guess. It leaves the field empty and flags the row for review.
Values that merely look different because of encoding are not a disagreement: 245000 and “$2,450/mo” are the same rent. A gap in one system is not a conflict either. On a surface a customer is reading, a wrong rent is a far worse outcome than a missing one, so silent invention is the failure the rules are written against.
The two property management systems in this demo are fictional. The SDK wiring, the normalization, and the writes to the leasing platform are real.