Condo Approval Intelligence

Help & getting started

Everything you need to sign in and run a condo approval from start to finish — plus a setup reference for admins. New to the platform? Start with what it does, then signing in.

What this platform does

In South Florida, the hardest part of a condo deal usually is not the contract — it is the association approval. Every building has its own packet of required documents, application forms, fees, and approval rules, and they are all different. A single missing document can slip a closing by weeks.

This platform reads each association's documents, extracts the requirements hidden inside them, tells you exactly what is missing for a given deal, scores how likely the approval is to go through, and keeps your CRM (GoHighLevel) in sync — turning scattered PDFs and tribal knowledge into a repeatable workflow your whole team can run.

Signing in

The platform uses passwordless magic-link sign-in — no password to remember.

  1. Go to the live site: condo-intel-web.pages.dev/login. Use this address, not a local or test URL.
  2. Enter your work email and click Send magic link.
  3. Open the email and click the link once. It signs you in and brings you back to the app.
  4. You can close the email tab once you are back in.

Good to know

  • Links are single-use and expire quickly. If yours is expired, just request a new one.
  • Always start from the live address above. If you sign in from a different URL, the link will try to send you back there and may not load.
  • Signing in proves who you are, but you also need to be added to a brokerage before you see any data. If you sign in successfully but pages say access is required, ask an admin to provision you (see the admin section below).

Roles & access

Each person is assigned one role within your brokerage. An admin sets the role when they add you.

Admin

Full access. Configures integrations (AI providers, API keys, webhooks, GHL field mappings), reviews the audit log, and adds or removes users. The only role that sees the Admin area.

Coordinator

Runs transactions across the team. Creates deals, uploads association documents, works the checklists, and tracks approval status for everyone in the brokerage.

Agent

Works their own deals. Creates transactions, uploads documents, and follows the missing-item checklist and risk score for the deals they own.

Viewer

Read-only. Can see transactions, associations, and approval status, but cannot upload documents or make changes. Good for assistants or stakeholders who just need visibility.

The workflow

  1. Start a deal. Either open Transactions and add it manually, or drop the signed purchase contract at Upload and let the platform pull buyer name, seller, property, sale price, and key dates out of the contract for you (see the green card at the top of Upload).
  2. Upload the association's documents. Use the “Attach to existing deal” section of Upload for governing docs, application packets, rules, financials, and estoppels. Drag and drop is fine.
  3. Let the platform read them. It runs OCR to pull the text, then AI extracts the actual requirements that building demands. This happens automatically in the background — the deal page auto-refreshes while processing is in flight.
  4. Review what is missing. The deal's checklist shows required items against what has been provided, so gaps are obvious.
  5. Read the approval risk score. Every deal gets a risk band so you know early which ones need attention:
    Low — on trackModerate — watch itHigh — needs attentionBlocker — will not pass as-is
  6. Work the checklist and close. As you add missing documents, the score and checklist update, and the status syncs to your CRM automatically.

The Associations knowledge base reuses what the platform has already learned about a building, so repeat deals in the same association start ahead.

What documents to upload

Two kinds, and the order matters: upload the association's documents first so the platform can learn the building's rules, then add the buyer's documents to satisfy them.

1. The association's documents (upload first)

These teach the platform what the building requires.

  • Declaration of condominium
  • Bylaws & articles of incorporation
  • Rules & regulations
  • Sale / lease application packet
  • Estoppel certificate
  • Budget / financial statements
  • Insurance certificate & any FAQ sheet

In the demo, one declaration was enough for the AI to extract a 680 credit minimum, a $150 application fee, a $500 move-in fee, a required board interview, and a ~21 business-day timeline.

2. The buyer's documents (satisfy the rules)

The platform tracks which of these are still missing for the deal.

  • Government-issued photo ID
  • Pay stubs / proof of income
  • Bank statements
  • Tax returns or W-2s
  • Credit report (to meet the credit minimum)
  • Completed application + fee receipt
  • Purchase contract and references

In the demo, the building required an ID, pay stubs, and bank statements — the pay stub and bank statement were flagged missing.

On the Upload page, use Attach to deal to tie each file to a transaction — that is what triggers analysis. Files left unassigned are stored but not analyzed.

You do not need everything on day one: upload the association packet first for the requirements and a risk baseline, then add the buyer's documents as you collect them — the score and checklist update each time.

Sending documents in by email

Instead of uploading through the web, you can email documents straight into a deal. Attachments go through the same OCR → classify → extract → score pipeline as uploads, and the email body is saved alongside them.

Per-deal address (recommended)

Each transaction has its own forwarding address shaped like docs+<deal-token>@listinghq.co. Open a deal — you'll see the exact address in the Email documents in card with a Copy button. Anything sent to that address auto-files to that exact deal.

Shared inbox

You can also send to docs@listinghq.co. The system matches the email to a deal by either (a) the #<deal-token> code in the subject (also shown on each deal's card), or (b) the sender's email matching a party on a deal. Anything unmatched is still saved — just unassigned — so nothing is lost.

Friendly auto-reply (shared inbox only)

When someone emails the shared docs@listinghq.co address, the system sends a short, context-aware reply confirming what was received and which deal it filed onto. If it can't identify the deal, the reply politely asks the sender to add the deal code in the subject. Replies are throttled to 3 per sender per 24h and skip auto-responders, no-reply addresses, mailing lists, and same-domain loops. Per-deal addresses don't auto-reply — those are forwards and the forwarder doesn't expect a response.

What happens to the email

  • Every attachment becomes a document on the deal and runs through requirement extraction.
  • The email body is saved as a text record on the deal and is also scanned for requirements (useful when an HOA replies with requirements in the body instead of attaching them).
  • Everything shows up in the deal's Documents list, with status changing as the pipeline finishes processing.

Tools for collecting info faster

A few features added recently that cut typing and chase-time on every deal.

Create a deal from a purchase contract

On Upload there's a green “Start a new deal from a purchase contract” card at the top. Drop the signed contract there and the platform creates the deal, runs OCR via Mistral, and uses a focused AI prompt to fill in buyer name, seller, property address, sale price, effective date, application deadline, approval deadline, and closing date. The deal page opens immediately and auto-refreshes while extraction is running, so you watch the placeholder turn into the real deal in real time. The merge is conservative — anything you set yourself never gets overwritten.

Seller & buyer intake links

Open a deal — in the Parties section there are two buttons: Copy seller intake link and Copy buyer intake link. Send the appropriate link to the seller or buyer (text, email, anything). They fill out a short form — contact info, association acknowledgements, financial profile basics — with no login required. Submissions auto-populate the deal: party rows, buyer financial profile (credit, income, debt, reserves), and an audit trail. The deal page refreshes on its own next time you open it.

Contract details card on the deal page

Once a purchase contract has been processed, the deal page shows a Contract details card with the buyer's agent, the seller's agent, the escrow agent, the title company, the lender, earnest money, and the effective date — all pulled from the contract. Anything the extractor wasn't confident about shows as “—”; edit the matching party row to fill it in.

Live deal page while documents process

When the deal has at least one document still being OCR'd or extracted, a Processing… banner appears and the page quietly refreshes every few seconds. No more reloading by hand to see whether the checklist updated.

Editable parties

On the deal page, each party row has Edit and Delete buttons — rename, fix email/phone, swap roles, or remove someone who shouldn't be there. Updates sync back to GHL when the party already has a linked contact.

Per-tenant email templates

Admins can override the system outreach copy at Admin → Email templates. Per-template subject and body editor with a live preview that resolves your placeholders ({{buyer_name}}, {{association_name}}, etc.) against a real deal so you can see the final result before saving.

Big-PDF OCR — Mistral

Scanned condo books (bylaws, declarations) used to time out at the OCR step. The platform now uses Mistral OCR as the primary path for scanned PDFs — a 100+ page scan finishes in under 30 seconds instead of failing. Anthropic remains a fallback.

Attach-only mode for huge reference docs

For massive PDFs you want stored on the deal but not processed (e.g. bylaws+exhibits, CCRs), the platform auto-detects these by filename and keeps them as attachments only — no OCR, no extraction, no error. They still show up in Documents with status attachment_only.

Checklist bypass / verify

On the Checklist card, each item has explicit Verify and Undo buttons. Marking an item verified counts it as satisfied for scoring even if the underlying document is still missing — useful when you confirmed something by phone or eyeball. The matching Missing Documents row auto-resolves and the deal is re-scored on the spot.

Reprocess / delete failed uploads

On the Documents table, each row has a Reprocess button (retry OCR + extraction) and admins can delete bad uploads outright. The document type dropdown is editable too — changing it re-triggers downstream extraction with the corrected classification. Reprocessing now fires the worker immediately instead of waiting for the half-hourly cron sweep.

For admins: setup & configuration

These tasks live in the Admin area (admin role only), with a couple of one-time settings in the Supabase and Cloudflare dashboards.

Add (provision) a new user

A new person must (1) sign in once via magic link so their login record exists, then (2) be added to your brokerage with a role. Until a self-serve invite screen is built, an admin runs a short provisioning step (the exact SQL is in docs/auth.md in the repo). New users get one of the four roles above.

Configure integrations

  • AI providers — choose the default and per-tenant AI model and prompt versions used for extraction.
  • API keys — tenant-scoped keys for external integrations.
  • Webhooks — inbound and outbound webhook log, signatures, and replay.
  • GHL mappings — the GoHighLevel field-reuse map, the safe-mode toggle (dry-run by default), and the new-field allow-list.
  • Audit log — every change, dry-run, and webhook, for review and compliance.

One-time sign-in settings

  • In Supabase → Authentication → URL Configuration, the live site (condo-intel-web.pages.dev) must be in the Redirect URLs allow-list so magic links return to the app.
  • For real volume, connect a custom email (SMTP) provider in Supabase so sign-in emails are not limited by the built-in testing sender.

Troubleshooting

The sign-in link took me to a page that would not load.

The link sent you back to wherever you started from. Always begin at condo-intel-web.pages.dev/login, then request a fresh link.

I get "email rate limit exceeded."

The built-in sign-in email sender allows only a few messages per hour. Wait up to an hour and request a single link. For ongoing use, an admin can connect a custom email provider to remove the limit.

I signed in, but pages say access is required and I see no data.

Your login works, but you are not added to a brokerage yet. Ask an admin to provision your account with a role (see the admin section above).

My magic link says it is invalid or expired.

Links are single-use and short-lived. Request a new one and click it once, promptly.