Product architecture

From a scan on the sidewalk to a signed lease.

ScanEstate is a lead intelligence platform for real estate portfolios. Every QR code sticker on a building is a data-generating asset — this page maps how each event flows through the system.

QR scan
Prospect scans code on signage.
Landing page
Unique per-property page opens.
Lead capture
Inquiry form → new lead record.
Qualification
Rules engine scores intent.
Insights
Analytics for managers & admins.

Systems overview


    ┌────────────────┐        ┌────────────────────────┐        ┌────────────────────┐
    │  QR on signage │──scan──▶  Public landing page    │──view──▶  Scan Event Store  │
    └────────────────┘        │  (unique per property)  │        └─────────┬──────────┘
                              │  · Photos · Amenities   │                  │
                              │  · Map · Inquiry form   │                  ▼
                              └───────────┬─────────────┘        ┌────────────────────┐
                                          │                      │  Bot / Fraud Guard │
                              submit inquiry                     │  (rate + heuristic)│
                                          ▼                      └─────────┬──────────┘
                              ┌────────────────────────┐                    │
                              │   Lead Ingest Pipeline │◀──────normalize────┘
                              └───────────┬────────────┘
                                          │
                              ┌───────────▼────────────┐  ┌────────────────────┐
                              │  Rules & Scoring Engine│──▶  Notification Fanout│
                              │  · Budget match        │  │  (Email · SMS · Web)│
                              │  · Move-in window      │  └────────────────────┘
                              │  · Company signal      │
                              └───────────┬────────────┘
                                          │
                              ┌───────────▼────────────┐  ┌────────────────────┐
                              │   CRM & Pipeline       │──▶  Analytics Warehouse│
                              │   (statuses, notes,    │  │  · Scan trends      │
                              │    follow-ups)         │  │  · Conversion       │
                              └────────────────────────┘  │  · Occupancy · MRR  │
                                                          └────────────────────┘

Lead qualification rules engine

Auto-qualify · scored 0–100
  • • +30 if budget ≥ 95% of listing rent
  • • +20 if preferred move-in within 45 days
  • • +15 if a company is provided (commercial signal)
  • • +10 if the scan device is mobile (in-person intent)
  • • +10 for each amenity match in notes
  • • −25 if scan is flagged as suspicious traffic
Threshold ≥ 55 → status qualified · ≥ 80 → alert manager instantly.
Bot & fraud heuristics
  • • Rolling rate limit per IP (10 / 5 min)
  • • Repeat fingerprint scans in < 30s → suppress
  • • Known datacenter ASN ranges → flag
  • • UA + Accept-Language mismatch → flag
  • • Missing scan referer + zero mouse events → flag

Data model

Property
  • · id
  • · managerId
  • · name
  • · type
  • · price
  • · status
  • · tenant
  • · location{lat,lng}
ScanEvent
  • · id
  • · propertyId
  • · at
  • · device
  • · city
  • · country
  • · suspicious
Lead
  • · id
  • · propertyId
  • · name
  • · email
  • · phone
  • · company
  • · budget
  • · status
  • · score
  • · history[]
RuleSet
  • · id
  • · name
  • · weights
  • · threshold
  • · active
Manager
  • · id
  • · name
  • · email
  • · role
  • · company
  • · permissions[]
Notification
  • · id
  • · channel
  • · payload
  • · status
  • · attempts

Infrastructure

Managed Postgres
Multi-tenant, row-level isolation per organization.
Edge scan ingest
Low-latency intake at the edge, batched writes.
SSO + audit
SAML/OIDC ready, immutable audit log.
Notification bus
Email, SMS, webhook fanout with retries.

Ready to see it in action?

Sign in with any pre-configured role — no credentials required.

Enter the workspace