The agentic OS for property management.
A tenant sends one photo. PropTic’s AI diagnoses the problem, finds and phone-calls technicians, negotiates the best quote, schedules the job, verifies the work, and releases payment. Property managers watch it happen — they don’t do it.
Built entirely on Google Cloud · Vertex AI · Cloud Run · Cloud SQL
The business
Maintenance coordination is a payroll line. We turn it into software.
Large property management firms staff entire maintenance-coordination teams whose day is phone tag: taking tenant reports, chasing contractors for callbacks, comparing quotes, scheduling, and following up. PropTic’s agents do that loop autonomously — firms stop hiring for it, tenants get fixed faster, and every job settles at a competitive quote instead of the first available one.
For the firm
No maintenance-coordination hires. One dashboard shows every ticket, every AI decision, and a plain-language receipt for why each technician was chosen at that price.
For the tenant
A photo and one sentence is the whole report. They confirm the AI’s diagnosis, then track the technician live — chat included — until they confirm the fix.
For the bottom line
Bids are collected in parallel from the firm’s trusted list and web-sourced technicians, then ranked on price, start time, and reviews — the best deal wins, every time.
Founders
An operator and an AI engineer.
PropTic is built by the two sides of its own problem: one founder from the industry that buys it, one from the discipline that makes it work.
Co-founder · CEO
Real estate
Licensed real-estate professional with 5+ years in the market and over $70M in closed deals — and an operator network across property-management firms, the exact customer base PropTic sells into.
Co-founder · CTO
Production AI
AI engineer at a Fortune 120 company. Previously solution architect and product manager at an AI search-engine startup.
How it works
One ticket, end to end, no humans in the middle.
A deterministic state machine runs every ticket; AI does the judgment calls inside each step. Tenants keep a human-in-the-loop gate — they review and can edit the AI’s photo-based diagnosis before any technician is contacted. Emergencies (gas, flooding, fire) skip the gate and dispatch immediately.
- Photo reportedphotos + tenant note stored as evidence
- Gemini diagnosescategory · urgency · severity, in ~30s
- Tenant confirmsthe human gate — review or edit before anyone is called
- Technicians sourcedtrusted list + web-sourced · quality-gated · drive-time ranked
- AI phone callsconversational briefing · transcript kept
- Bids collectedprice in integer cents · start time as a timestamp
- Best quote pickeddeterministic ranking · model-written rationale
- Work verifiedcompletion photos checked against the diagnosis
- Payout releasedpayment settles · the full trace is archived
AI voice calls, not call centers
Our agents phone technicians conversationally — brief the job, answer their questions from a facts pack, take a verbal yes, and follow up by SMS with a one-tap bid form. Photos, live location, chat, and payment all ride that same tokenized link.
Decisions with receipts
Ranking is deterministic (earliest start at best price, trusted-technician bonus, urgency-adaptive weights); Gemini Pro sanity-checks the winner and writes the rationale the property manager reads. Every decision is replayable in our admin trace, down to the raw model call.
AI architecture
Every model call goes through one gateway. Every output is structured.
App code never imports a model SDK. A single AI gateway looks up the active prompt from a versioned registry, routes by capability tier, forces structured output via tool-use (never “please return JSON”), and audits every call — model, cost, latency, confidence — to the database that powers our admin dashboard and eval suite.
Diagnose — Gemini Flash
Multimodal: the tenant’s photos are read alongside their note to classify category, urgency and severity, and to draft the plain-language description the tenant confirms.
forced tool-call · image + text groundingDecide — Gemini Pro
Sanity-checks the top-ranked bid for scope mismatches and writes the landlord-facing rationale. Code ranks; the model verifies and explains.
deterministic ranking + LLM verificationExtract — Gemini Flash-Lite
Parses technician replies and call transcripts into structured bids — price in integer cents, start times as ISO timestamps. Cheapest model that clears our eval bar.
cost-tiered routing, repriced at decision timeEvals are the steering wheel
A golden set and an AI judge score every model arm. Our urgency-adaptive ranking shipped because it beat static weights 90% to 75% on golden accuracy; a cheaper ranking arm was rejected because it once took a declining bid. Recurring in-cloud eval runs land in the admin dashboard weekly.
Prompts ship without deploys
Every prompt — diagnosis, decision, voice script — lives in a versioned registry with test-and-promote from the admin UI. AI quality improves in production the moment a better prompt wins on the golden set.
Built on Google Cloud
All of it runs on GCP. By design, from day one.
Two projects (test and production), provisioned by Terraform, deployed by Cloud Build with GitHub OIDC — no service-account keys anywhere. The same architecture that runs our public no-login sandbox demo runs our paying customers; scale dials (min-instances, read replicas, PgBouncer) are planned, not re-architecture.
| Google Cloud service | Role in PropTic | Why it matters |
|---|---|---|
| Vertex AI (Gemini) | Every model call in the product | Flash for multimodal diagnosis and volume tasks, Pro for dispatch decisions, Flash-Lite for extraction — routed by tier through one gateway, repriced at decision time. |
| Cloud Run | All three deployables | Next.js web, FastAPI REST API, and the async worker each scale to zero between tickets and horizontally under load. The worker is private — invocable only by Cloud Tasks. |
| Cloud SQL (Postgres 16) | System of record | Multi-tenant isolation enforced in the database itself: row-level security keyed on org_id, FORCE RLS, non-superuser app role. Isolation is tested in CI, not assumed. |
| Cloud Tasks | The ticket state machine's engine | Every lifecycle transition is an idempotent, retry-safe task. A deterministic workflow with LLM calls inside steps — not an unbounded agent loop. |
| Firestore | Realtime read-model | Live ticket status, technician location, and chat push to every screen without polling. Postgres stays the source of truth; Firestore mirrors it. |
| Cloud Storage | Tenant photos & evidence | Signed-URL uploads straight from the tenant's phone; the same photos ground Gemini's diagnosis and the completion verification. |
| Identity Platform | Customer authentication | Firebase Auth for property-manager sign-in and org membership; tokenized no-login flows for tenants and technicians. |
| Cloud Build + Artifact Registry | CI/CD | Push-to-deploy on test, gated canary releases to production, with an in-cloud synthetic-ticket smoke test that must pass before traffic shifts. |
| Secret Manager | All credentials | No keys in the repo — GitHub OIDC federates into GCP for deploys; services read secrets at runtime only. |
| Places & Routes APIs | Technician sourcing | Web-sourced technicians are discovered, quality-gated on rating, review volume and review content, and ranked with real drive-times to the property. |
| Cloud Logging & Monitoring | Observability | Structured logs labeled by org and ticket power our admin trace view — every AI decision on every ticket is replayable end to end. |
Next step
The best demo is a ticket you watch happen.
If you run maintenance for a large portfolio — or you’re evaluating the architecture — write to us. You’ll get a founder, not a funnel.
Email taha@proptic.ai