Acquisition intelligence built from official county property records.
RichProperty combines Georgia public-record ingestion, land/house-specific research, GIS parcel search, explainable acquisition scoring, valuation-peer analysis, and transparent offer workflows in a locally controlled FastAPI platform.
- Separates Land and House acquisition workflows.
- Synchronizes public records from Gwinnett, Fulton, and DeKalb.
- Searches official parcel geometry from an interactive Leaflet GIS Explorer.
- Shows parcel polygons plus visible result markers.
- Scores motivation, value, fit, confidence, and acquisition quality separately.
- Uses different comp logic for land and houses.
- Reranks county valuation peers by geographic distance.
- Builds editable aggressive, balanced, and competitive offer ranges.
- Generates non-binding preliminary offer letters.
- Opens properties in Google Maps web without a Google Maps API key.
- Records a complete Playwright + Piper narrated walkthrough.
| Dashboard | GIS Explorer |
|---|---|
![]() |
![]() |
| Acquisition scoring | Parcel intelligence |
|---|---|
![]() |
![]() |
Screenshots are regenerated by the demo workflow so the README stays aligned with the current UI.
git clone git@github.com:iamrichmack111/richproperty.git
cd richproperty
cp .env.example .env
docker compose build
docker compose up -d
curl -s http://localhost:8035/health | python3 -m json.tool
open http://localhost:8035Expected health:
{
"status": "ok",
"app": "RichProperty",
"version": "0.7.0"
}This release is designed to reuse the established named PostgreSQL/Redis volumes. Do not run docker compose down -v unless you intentionally want to delete persisted data.
Check the Compose volume mapping before upgrading:
docker compose config | sed -n '/volumes:/,$p'http://localhost:8035/map
The explorer supports county selection, Land/Houses/All, minimum score, absentee-only filtering, current-view search, rectangle search, parcel polygons, result markers, and Google Maps web handoff.
Requirements:
node --version
npm --version
piper --help
ffmpeg -versionRun:
./scripts/run-demo.shThe default narration voice is Piper en_US-ryan-high. The model is downloaded locally and is never committed to Git.
Outputs:
docs/screenshots/
docs/demo/richproperty-full-walkthrough.mp4
See docs/DEMO.md.
Authenticate gh first, then:
gh auth status
./scripts/publish-github.shThe publisher defaults to private:
REPO_VISIBILITY=public ./scripts/publish-github.shIt initializes Git, configures gh for SSH, creates the repository, adds topics and description, creates backfilled implementation issues, creates commits tied to those issues, leaves roadmap issues open, pushes main, tags v0.7.0, and creates a release.
County ArcGIS REST ──► scanner / geometry services ──► FastAPI
│
Redis / RQ ◄──────────────────────┤
│
PostgreSQL ◄──────────────────────┤
│
Leaflet / Folium ◄──────── Browser
Details: docs/ARCHITECTURE.md
See docs/OPERATIONS.md.
If PostgreSQL reports an invalid checkpoint after an interrupted Docker shutdown, use the backup-first procedure in docs/DATABASE_RECOVERY.md.
County valuation peers are not market-sale comps or an appraisal. Offer percentages are transparent acquisition-screening heuristics and remain editable. Real transactions should be subject to title review, due diligence, appropriate legal documents, and professional advice when required.
See CHANGELOG.md.



