MCPcopy Index your code
hub / github.com/ahacker-1/cre-acquisition-orchestrator

github.com/ahacker-1/cre-acquisition-orchestrator @v3.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.4.0 ↗ · + Follow
1,782 symbols 4,381 edges 158 files 76 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CRE Acquisition Orchestrator

An open-source, multi-orchestrator workspace for commercial real estate multifamily acquisitions: drop documents, state the goal, watch 31 AI roles coordinate, and review the acquisition package.

License: Apache 2.0 Node.js TypeScript React

Fastest proof path: run npm run proof, open the local dashboard, and trace one source-backed fact from upload to IC package. Full reviewer script: Public Proof Path.

I've been working on something that I think the CRE industry needs, and I wanted to share where it is now.

A few months ago I wrote about what happens when you point 489 AI agents at a 200-unit multifamily acquisition. That article was the bigger vision. This repo is the engineering behind the practical open-source version: the 31 named AI roles, orchestration logic, domain knowledge files, schemas, local dashboard, deterministic simulation engine, and source-backed review workflow that make the vision usable.

It is not fully production-ready. I want to be direct about that. But what is here is the most in-depth open-source framework I have seen for CRE acquisition orchestration because the category barely exists. There are agent frameworks for coding, customer support, research, and data analysis. There is almost nothing that models how a real multifamily acquisition moves across due diligence, underwriting, financing, legal, and closing while preserving data handoffs, review gates, and investment committee evidence.

The project is local-first: you can run the proof path with no API keys, inspect uploaded tables and source rows, review extracted candidate fields with provenance, approve or waive ambiguous values, and export Markdown/JSON for an investment committee starter package. The dashboard's workflow runtime defaults to live ChatGPT/Codex (with web search on) so the team can pull and cite real market, lender, and environmental data, while the deterministic offline demo stays the no-credential public proof path for tours, screenshots, and CI.

Everything in here - the agent prompts, domain skills, schemas, pipeline architecture, dashboard, and demo artifacts - is yours to use as a starting point. Fork it. Build on it. Adapt it to your own deals, investment thesis, and internal acquisition workflow. If this framework helps even one CRE team rethink how they approach acquisitions, it was worth open-sourcing.

Let's bring this industry into the future.

Disclaimer: This project is a reference architecture and educational framework, not production software for making investment decisions. Nothing here is financial, legal, or investment advice.


First-Time Visitor Path

  • Prove the trust loop first: run npm run proof and follow the Public Proof Path from source document to uploaded data inspector to extraction review to approved evidence to workpaper to IC package.
  • Run a first real deal in 10 minutes: follow the First Deal Guide, start the dashboard, drop local rent roll/T12/offering memo files, review source-backed fields, and export the IC starter package.
  • Trace the source-to-IC proof path manually: use the Demo Journey to follow a value or red flag from document drop, through uploaded data inspection, extraction review, approved evidence, workpapers, and the IC package references the current artifacts expose.
  • Use Parkview as the deterministic fallback: click Start Guided Demo when you want a no-upload sample tour through the deal space - the lifecycle spine, the command bar, Your Team, the live feed, and the IC package.
  • Install from scratch: follow Quick Start. The dashboard path is local-first, launches live Codex workflows by default, and keeps the sample tour deterministic.
  • Choose the right runtime: read Live Codex Agents vs Offline Demo - live Codex is the default launch lane and the offline demo is the no-credential fallback - before sending any real deal context through Codex.
  • Understand the system: read Architecture, Agent Catalog, API Reference, and WebSocket Events.
  • See where to contribute next: review the Roadmap, especially richer live runtime controls, deeper legal-document parsing coverage beyond the shipped PSA/title/estoppel candidate extraction, OCR hardening, and additional messy parser fixtures.

For the guided path, use First Deal Guide. For the shortest deterministic demo, use Quick Demo.


What It Does

  • Document-first deal intake - upload rent rolls, T12s, offering memos, PDFs, and supporting files into a local workspace.
  • Uploaded data inspector - see uploaded tables, field types, fill rates, examples, source rows, and click-through row detail before applying extracted values.
  • Source-backed extraction review - supported XLSX/CSV/TXT/MD, text-based PDF sources, and readable scanned/image-only PDFs become candidate fields with confidence, warnings, file hashes, and source-location (sheet/row/column or page) provenance; OCR-derived fields stay review-gated before they can change deal inputs.
  • Human approval gate - underwriting inputs do not change until the operator approves/applies trusted fields or waives/rejects ambiguous ones.
  • 31-role AI deal team - 6 orchestrators, 21 acquisition specialists, and 4 document-ingestion roles are defined as markdown prompts.
  • Visible coordination - dashboard events show specialist messages, handoffs, dependencies, reviews, workpapers, and package status.
  • Two runtime paths - live ChatGPT-authenticated Codex is the default workflow runtime (Workflow Launcher, Swarm Goal Console, and presets default to Codex, all agents selected, concurrency 2) and runs with web search on by default so agents look up and cite real comps, rents, cap rates, demographics, and rates; an explicit offline deterministic simulation remains the no-credential fallback for demos, screenshots, and CI-safe validation.

By the Numbers

AI Roles Skills Schemas Workflows Fixtures Tests passing
31 8 27 5 40 13

Counts reflect the current checked-in catalog: 25 specialist prompt files plus 6 orchestrators; 8 domain knowledge files; 27 JSON Schema contracts; 5 workflow definitions; 40 curated fixture files under fixtures/ (messy parser fixtures, legal diligence checklist extraction, lean legal-document parsing for PSA/title/estoppel, scanned OCR coverage, the adversarial real-world-pile smoke set, and the first-deal package); and 13 root test* commands tracked by package.json.


Honest Evaluation — Prove It

Architecture isn't accuracy. This repo ships an open evaluation harness that scores the orchestrator on synthetic deals with known correct answers and reports honest numbers — including where it falls short. Run it yourself:

npm run eval        # scores the benchmark -> eval/results/{scorecard.json, TRUST-REPORT.md}

It measures three layers that are NOT equivalent (full methodology + how to extend: eval/README.md; full results: eval/results/TRUST-REPORT.md):

Layer What it proves Current result
Extraction (deterministic parsers) recovering known fields from deliberately messy XLSX/PDF docs precision/recall/F1 = 100% across 8/8 deals
Simulation (offline demo — a fixture, not reasoning) the deterministic engine on the benchmark determinable financials 100% (n=8) but IC-verdict only 75% exact, and it misses several narrative risks — it over-PASSes the tenant-concentration and insurance-understatement deals. It computes; it does not reason.
Live agent reasoning (real Codex LLM — the number that counts) the product's actual judgment Codex CLI 0.142.0, 2026-06-25, all 8 deals: determinable financial 100%, required red-flag recall 100%, dealbreaker recall 100%, IC-verdict 100% exact / 100% directional (8 of 8), with 0 partial agent failures. The agents genuinely flag the tenant concentration, insurance understatement, missing Phase I, leverage, DSCR, and occupancy-collapse risks the fixture cannot reason about. Honest soft spot: model-dependent returns (IRR / equity multiple) at 25% because the quick-screen agents often decline to compute forecast-style return metrics without a full scenario matrix.

Honest scope: the benchmark is 8 synthetic deals across core-plus / value-add / distressed, with both determinable and narrative (document-buried) planted risks, and the live layer now covers all 8. Ground truth, the scorer, and tolerances are committed and fixed before runs; nothing is tuned to flatter — the live numbers re-score the real Codex workpapers, and the narrative catches were verified by reading them (e.g. "≈60% of residents work for Carolina Logistics → correlated vacancy/rollover", "only $41K/yr insurance vs a materially higher market underwrite → DSCR ~1.15x"). The honest weaknesses the report still shows: (1) the deterministic simulation is blind to narrative risk (that is exactly what the live layer is for); (2) model-dependent returns are 25% — IRR / equity multiple are genuinely assumption-driven forecast metrics, and the quick-screen live agents often do not produce them without a full scenario matrix, so this is a real limitation, not a parser bug. See EVAL-PLAN.md and eval/results/TRUST-REPORT.md for the full committed report (model, date, per-deal results, and weaknesses).


Current Status

The latest public release is v3.4.0. It turns the post-3.3.0 hardening work into a verified release: every acquisition phase has recorded pipeline proof, live Codex smoke/full/eval gates passed, and the public trust report reflects a fresh all-8-deal live run. It builds on v3.3.0, which made live Codex / ChatGPT the default workflow runtime with real web search and added lean legal-document parsing. The stable baseline remains local-first and review-first:

  • Local-first - the offline dashboard, deterministic Parkview demo, and source-backed extraction require no API keys.
  • Versioned release baseline - v3.4.0 adds the pipeline verification ledger, live Codex proof gates, refreshed all-8-deal live eval, phase artifact validation, and manifest/schema hardening on top of v3.3.0's live Codex main lane with web search, v3.2.0's production-scale local QA harness, v3.1.0's local scanned-PDF OCR bridge, and v3.0.0's evidence-grade source-to-IC workbench.
  • Honest evaluation - npm run eval scores the orchestrator on an 8-deal synthetic benchmark and reports honest numbers including where it falls short (see Honest Evaluation). The live (Codex) layer covers all 8 deals; the current verified live run hit 100% IC exact/directional match, 100% determinable financial accuracy, 100% required red-flag recall, and 100% dealbreaker recall. The documented soft spot is model-dependent returns (~25%).
  • Known limits - the local OCR bridge supports readable scanned/image-only PDFs for review-backed headline extraction, but not arbitrary image files or fully reliable table reconstruction. Multi-tenant cloud hosting and autonomous investment decisions remain out of scope. Text-based PDF extraction, merged-cell workbooks, and single-operator self-host deployment (see Deployment) are supported.

Current OCR Bridge

  • Local and review-gated - scanned/image-only PDFs are rendered locally with PyMuPDF, OCR'd with tesseract.js, and converted into candidate fields that must be reviewed before applying.
  • Provenance-preserving - OCR output keeps file hash, page number, raw snippet, OCR confidence, parser id, warnings, and review status.
  • Fail-soft - if OCR cannot read supported fields, the document remains stored with explicit OCR metadata and no guessed deal inputs.
  • Verified fixture - fixtures/parsers/scanned-offering-memo-ocr.pdf proves a true image-only offering memo excerpt can extract asking price, unit count, occupancy, and NOI through the local bridge.

See CHANGELOG.md for release history.


What's New in v3.4.0

  • Pipeline verification ledger - document intake, source review, due diligence, underwriting, financing, legal, closing, IC package export, offline gates, and live Codex gates now have recorded proof in data/status/pipeline-verification-ledger.md.
  • Live Codex proof gates - npm run codex:status, npm run codex:smoke, npm run codex:run:full, npm run validate:codex, and npm run eval:live were run and recorded; the full live workflow completed with 21/21 agents passing on first attempt.
  • All-8-deal live eval refresh - live Codex agents matched all 8 benchmark IC verdicts exactly and directionally, with 100% determinable financial accuracy, 100% required red-flag recall, 100% dealbreaker recall, and 0 partial failures.
  • Phase artifact hardening - underwriting writes/validates the 27-scenario matrix and IC memo; closing writes/validates the wire schedule; IC package export includes

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 1,452
Interface 265
Method 52
Class 13

Languages

TypeScript93%
Python7%

Modules by API surface

dashboard/server/workspace-service.ts182 symbols
dashboard/src/components/DealWorkspace.tsx67 symbols
dashboard/server/parser-service.ts67 symbols
dashboard/server/watcher.ts59 symbols
eval/generators/generate_deals.py58 symbols
dashboard/src/types/phase-contracts.ts42 symbols
scripts/lib/runtime-core.js35 symbols
dashboard/server/run-manager.ts35 symbols
dashboard/server/deal-service.ts35 symbols
scripts/codex-agent-runner.js29 symbols
dashboard/src/types/workspace.ts29 symbols
scripts/lib/workpaper-renderer.js28 symbols

For agents

$ claude mcp add cre-acquisition-orchestrator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page