OZP

000%

OZP Studios
GISAI workflowInternal toolIn Development

GIS-MX01

Two analysts were screening infill lots by hand across five different websites. Now the lots that fit are waiting for them at 7am with a draft already written.

Client
Land acquisition team, Seattle
Year
2026
Duration
Since January 2026, pilot live since March
Team
2 engineers, 1 designer
Role
Product & engineering
Type
Internal tools
Approach
Python ETL · PostgreSQL + PostGIS · pgvector retrieval · Next.js
GIS-MX01 01. Parcel page with cited zoning answers. Parcel, owner and price are placeholders.
01

Parcel page with cited zoning answers. Parcel, owner and price are placeholders.

The job

The team buys small infill lots in Seattle, mostly LR2, LR3 and NC2. Screening a parcel meant pulling it up in the King County parcel viewer, Seattle's zoning map, the SDCI permit portal, the assessor's records and the broker's listing site, then pasting lot size, zone and permit history into a shared spreadsheet. We timed 20 write-ups before starting. The median was 48 minutes.

Data

A nightly job loads King County parcels and assessor extracts, Seattle zoning, critical areas and shoreline layers, SDCI permits and the broker listing feed into PostGIS, joined on the parcel number. The sources don't always agree. Assessor lot area and the GIS polygon can differ by a few hundred square feet, so the parcel page shows both with their source and nothing gets averaged.

GIS-MX01 02. Data and AI pipeline, from public sources to analyst review.
02

Data and AI pipeline, from public sources to analyst review.

AI workflow

For every lot that passes the buy box, the system retrieves the relevant sections of SMC Title 23 and an LLM drafts a parcel summary: key facts, flags, and answers to the standard questions (height, setbacks, density), each quoting the section and the date the code text was pulled. A citation gate sits after the model. If retrieval can't find a section, the answer is "no answer," not a guess. Parcels with critical-area or shoreline flags skip the AI entirely and go to an analyst. Analysts can ask follow-up questions on the parcel page, and those go through the same retrieval and the same gate. A set of analyst-checked questions re-runs every time the code text or the prompt changes.

The analyst's part

Analysts open the morning digest, review the parcel page, and edit the draft into a deal memo. The memo can't be marked ready until they've opened every cited section, and the audit log records who approved it against which code version. Go or no-go stays with the acquisitions lead.

Where it is now

Over the first 60 parcels in the pilot, median screening time is 9 minutes, and the digest surfaces 3 to 6 matching lots each morning. Next is Bellevue and Redmond, which publish their parcel and zoning data in different schemas.

GIS-MX01 03. A morning on the desk: what runs overnight, where the AI drafts, and where an analyst signs off.
03

A morning on the desk: what runs overnight, where the AI drafts, and where an analyst signs off.

Scope

  • Internal web app behind the client's VPN and SSO
  • Nightly ETL for five public sources and a listing feed, with runbooks
  • Saved buy-box criteria and a 7am digest
  • AI parcel summaries with section citations and a citation gate
  • Regression set for the AI answers, re-run on every code pull
  • Deal-memo export to their Google Doc template

Next

Ready to take the next step?

Tell us what you need built and what it has to work with. We will tell you plainly whether we are the right team for it.

Start a project