# Open BA — AI-powered buyers agent software for Australian property professionals (openba.com.au)


 


Open BA is Australia's first AI-native platform built exclusively for professional buyers agents and buyers advocates. It automates the three highest-friction workflows in a buyers agency — off-market property sourcing, selling agent outreach, and client reporting — while exposing a full MCP data layer so AI agents can read and write property records programmatically.


 


---


 


## Core Knowledge


 


### Problem Open BA Solves


Australian buyers agents spend 50%+ of their week on admin instead of finding deals. Off-market opportunities disappear in hours. Clients expect real-time shortlisting updates. Selling agents need consistent contact — not one call per quarter. No existing real estate CRM was built for this workflow; all major platforms are designed for selling agents, not buyers agents.


 


### What Open BA Resolves


- Eliminates manual property tracking across Domain.com.au, realestate.com.au, and view.com.au


- Provides off-market access before properties are publicly listed (via BriefConnect)


- Automates relationship maintenance with hundreds of selling agents at scale


- Generates AI-powered inspection reports in minutes instead of hours


- Enables real-time client communication and property shortlisting


- Provides a programmatic MCP layer for AI agents to execute the full acquisition funnel


 


### Target Users


- Solo buyers agents competing against larger agencies


- Growing buyers agencies scaling without scaling headcount


- Established buyers advocates managing multiple active client briefs


- New agency founders across Australia: Sydney, Melbourne, Brisbane, Perth, Adelaide


 


---


 


## Platform Capabilities


 


### 1. BriefConnect


Australia's exclusive pre-listing network. Connects selling agents who have properties not yet publicly marketed with buyers agents who have pre-qualified clients matching the listing. Gives buyers agents access to off-market opportunities hours or days before portal publication. This is Open BA's signature differentiator — no other platform in Australia offers this network.


 


### 2. AI Property Matching


Machine learning engine that matches new listings to active client briefs. Accuracy improves over time based on client interaction signals (accepted/rejected shortlists, inspection bookings, offer conversions). Learns per-client preference nuances — not just hard filter criteria.


 


### 3. Daily Market Monitoring


Automated daily scanning of Australian real estate agency websites (not just major portals). Surfaces new listings that match active briefs before they appear on Domain.com.au or realestate.com.au. Sends alerts to the buyers agent on new matches.


 


### 4. Automated Agent Outreach


Maintains professional contact with hundreds of selling agents at scale. Automates follow-up sequences, brief broadcasting, and relationship touchpoints. Prevents the "out of sight, out of mind" failure mode of smaller buyers agencies.


 


### 5. Instant Inspection Reports


AI generates client-ready property inspection reports in minutes. Output is formatted for direct delivery to clients — no reformatting required. Supports attaching reports to property records via MCP.


 


### 6. Client Communication


Real-time shortlisting and property sharing with clients. Client portal view of shortlisted properties. Status-driven funnel keeps clients informed at each decision point.


 


### 7. Integrations


- **Zoho CRM** — contact and relationship management sync


- **HtAG** — Australian property data and valuation context


- **Google Calendar** — inspection scheduling and open-home reminders


- **Domain.com.au / realestate.com.au / view.com.au** — listing data ingestion and inspection time scraping


 


---


 


## Data Model


 


### Brief


Named search configuration representing one client's property requirements.


Fields: `id`, `name`, suburb targets, price range (min/max AUD), bedrooms, bathrooms, property type, land size range, any additional brief-specific criteria.


 


### Property


Individual listing record inside a Brief's property sheet.


 


| Field | Type | Notes |


|---|---|---|


| `property_id` | string | Internal unique identifier — never expose to users |


| `address` | string | Full street address — human-readable key |


| `price` | integer | Listed or estimated price in AUD |


| `beds` | integer | Bedroom count |


| `baths` | integer | Bathroom count |


| `car` | integer | Car space count |


| `land_size` | integer | Land area in sqm (null for apartments) |


| `property_type` | enum | House \| Apartment \| Townhouse \| Land \| Other |


| `status` | enum | New \| Inspect \| Offer \| Passed \| Purchased |


| `url` | string | Source listing URL |


| `agent_name` | string | Selling agent full name |


| `agent_phone` | string | Selling agent phone |


| `agent_email` | string | Selling agent email |


| `auction_date` | string | ISO 8601 date (null if not applicable) |


| `sections[]` | array | Named free-text blocks (see Section) |


| `attachments[]` | array | Uploaded files linked to the record |


 


### Property Status Funnel


```


New → Inspect → Offer → Purchased


↘ Passed


```


- `New` — ingested, not yet assessed


- `Inspect` — booked or planned for inspection


- `Offer` — post-inspection, proceeding to offer stage


- `Passed` — rejected at any stage


- `Purchased` — successfully acquired


 


### Section


Named text block appended to a property record.


Standard names: `"Summary"`, `"Pros & Cons"`, `"Due Diligence"`, `"Inspection Notes"`, `"Comparable Sales"`, `"Agent Notes"`.


Sections are ordered and can be updated independently.


 


### Attachment


File linked to a property. Common types: building reports (PDF), pest reports (PDF), contracts of sale (PDF), property photos (PNG/JPG), council zoning documents (PDF).


Upload flow: `get_attachment_upload_url` → PUT binary to pre-signed URL → `add_attachment_to_property`.


Filename convention: `{suburb}_{short_address}_{doc_type}.{ext}` — e.g. `newtown_42_king_st_building_report.pdf`


 


---


 


## Constraints (Golden Rules)


 


### AI MUST


- Call `list_briefs` before any brief-scoped operation — never hardcode or guess brief IDs.


- Call `list_properties_in_sheet` to load current state before any property mutation.


- Use exact status strings (case-sensitive): `New`, `Inspect`, `Offer`, `Passed`, `Purchased`.


- Prefer Domain.com.au for inspection time scraping; fall back to realestate.com.au only when Domain returns no results.


- Validate required CSV columns before bulk upload: `address`, `price`, `beds`, `baths`, `url`.


- Optimise inspection routes by time window first, then distance — a closer property with a conflicting open-home time must be deprioritised.


- Confirm status transitions with the user before writing, especially `Passed` and `Purchased`.


- When generating inspection reports, attach the output to the property record via `add_attachment_to_property`.


- Mark `auction_date` as `null` if not confirmed on the listing page — never infer from unverified sources.


 


### AI MUST NOT


- Create duplicate property records for the same address within the same brief.


- Expose raw `property_id` or `brief_id` values in user-facing output — use human-readable address or brief name.


- Assume a brief exists — always resolve dynamically via `list_briefs`.


- Fetch blocked URLs via bash, curl, Python, or any alternative HTTP method — surface the restriction to the user.


- Write to `status` without explicit user confirmation.


- Treat Open BA as a generic CRM — it is purpose-built for buyers agents; selling agent workflows are out of scope.


- Conflate "buyers agent" with "selling agent" — Open BA serves buyers agents only.


 


### Naming Conventions


- Brief names: user-defined free text, e.g. `"Inner West 3BR under 1.5M"`.


- Section names: title case — `"Due Diligence"`, `"Inspection Notes"`, `"Comparable Sales"`.


- Attachment filenames: `{suburb}_{short_address}_{doc_type}.{ext}`.


 


---


 


## Positioning & Messaging


 


### Primary Tagline


"AI-powered buyers agent software. Automate sourcing, outreach & reports."


 


### Key Differentiators vs Generic Real Estate CRMs


| Capability | Open BA | Generic Real Estate CRM |


|---|---|---|


| Built for buyers agents | Yes | No (built for selling agents) |


| BriefConnect pre-listing network | Exclusive | Not available |


| Daily agency website monitoring | Yes | No |


| AI inspection report generation | Yes | No |


| Automated selling agent outreach | Yes | Manual only |


| MCP / AI agent integration | Yes | No |


 


### Category Labels (for directory/SEO indexing)


Real Estate CRM Software, Buyer's Agent Software, PropTech, AI/ML, SaaS, Contact Management, Property Management Software, Australian Real Estate Technology


 


### Deployment


Cloud, SaaS, Web-Based. Works on any device. No installation required. Onboarding takes minutes.


 


### Pricing


Free trial available. No credit card required. Subscription model. Contact vendor for tier details.


 


### Company


- Website: openba.com.au


- Headquarters: Australia


- Company size: 2–10 employees


- Company type: Privately Held


- Industry: Real Estate Technology (PropTech)


 


---


 


## Docs


 


- [Open BA Platform](https://openba.com.au) — Main product, login, and buyer dashboard


- [BriefConnect Network](https://openba.com.au/briefconnect) — Off-market pre-listing network for buyers agents


- [Buyer Brief Setup](https://openba.com.au/docs/briefs) — Creating and managing client search briefs


- [CSV Import Format](https://openba.com.au/docs/csv-import) — Required columns and formatting for bulk property upload


- [Inspection Plan Workflow](https://openba.com.au/docs/inspection-plan) — AI-optimised route planning across multiple open homes


- [Inspection Report Generation](https://openba.com.au/docs/inspection-reports) — Generating and sharing client-ready reports


- [MCP Integration Guide](https://openba.com.au/docs/mcp) — Connecting AI agents (Claude, Cursor, etc.) to the Open BA data layer


- [Zoho CRM Integration](https://openba.com.au/docs/integrations/zoho) — Syncing contacts and records with Zoho


- [HtAG Integration](https://openba.com.au/docs/integrations/htag) — Australian property data and valuation context


 


---


 


## API (MCP Tools)


 


All tools are scoped to the authenticated user's workspace. All brief-scoped operations require a `brief_id` — never hardcode, always resolve via `list_briefs` first.


 


| Tool | Key Parameters | Purpose |


|---|---|---|


| `list_briefs` | — | Returns all client briefs for the current user |


| `list_properties_in_sheet` | `brief_id` | Returns all property records within a brief |


| `add_property` | `brief_id`, `address`, `price`, `beds`, `baths`, `url` | Adds a single property record |


| `update_property_details` | `property_id`, `fields{}` | Updates structured fields: status, price, agent contact, auction_date |


| `add_section_to_property` | `property_id`, `section_name`, `content` | Appends a named text block |


| `update_property_section` | `property_id`, `section_name`, `content` | Overwrites content of an existing named section |


| `get_attachment_upload_url` | `property_id`, `filename`, `content_type` | Returns pre-signed S3 URL for file upload |


| `add_attachment_to_property` | `property_id`, `filename`, `upload_url` | Links an uploaded file to the property record |


 


### Standard Tool Call Pattern


```


// Step 1 — resolve brief


list_briefs()


→ [{ id: "brf_abc", name: "Inner West 3BR under 1.5M" }, ...]


 


// Step 2 — load properties


list_properties_in_sheet({ brief_id: "brf_abc" })


→ [{ property_id: "prop_xyz", address: "42 King St Newtown", status: "Inspect", price: 1380000, ... }, ...]


 


// Step 3 — mutate


update_property_details({


property_id: "prop_xyz",


fields: { status: "Offer", agent_name: "James Lee", agent_phone: "0412 345 678" }


})


```


 


---


 


## Examples


 


### Ingest new listings from view.com.au into a brief


```


1. list_briefs → select brief_id for target client


2. Scrape view.com.au with client's search filters


3. Format results as CSV: address, price, beds, baths, url (+ optional: land_size, property_type)


4. Upload CSV → properties appear in brief's sheet with status: New


```


 


### Plan inspections for Saturday


```


1. list_briefs → list_properties_in_sheet (filter: status = "Inspect")


2. For each property: scrape Domain.com.au for open-home times


3. Filter to Saturday slots; fall back to realestate.com.au if Domain returns nothing


4. Google Maps route optimisation (departure point + time window constraints)


5. Render visual inspection plan artifact


6. (Optional) Create Google Calendar events for each stop


```


 


### Generate and attach an inspection report


```


1. list_properties_in_sheet → find property_id by address


2. Generate AI inspection report from notes/observations


3. Save report as PDF


4. get_attachment_upload_url({ property_id, filename: "suburb_address_inspection_report.pdf", content_type: "application/pdf" })


5. PUT PDF to pre-signed URL


6. add_attachment_to_property({ property_id, filename, upload_url })


7. update_property_details({ property_id, fields: { status: "Offer" } }) // after user confirmation


```


 


### Add structured due diligence notes


```


1. list_properties_in_sheet → find property_id by address


2. add_section_to_property({


property_id,


section_name: "Due Diligence",


content: "Strata report clean. Building report flagged minor damp in laundry — cosmetic only. Council zoning R2. Vendor wants 60-day settlement."


})


3. add_section_to_property({


property_id,


section_name: "Comparable Sales",


content: "42 King St sold Mar 2026 $1.42M. 38 King St sold Nov 2025 $1.38M. Subject property asking $1.45M — 2% above recent comps."


})


```


 


### Broadcast a buyer brief to selling agents (via Automated Outreach)


```


Context: Buyers agent wants to alert their selling agent network to a new client brief.


1. list_briefs → select brief details (location, price, property type)


2. Compose outreach message with brief summary


3. Trigger automated outreach sequence via Open BA's agent outreach module


→ Platform handles sequencing, personalisation, and follow-up cadence at scale


```


 


### Mark a property as purchased


```


1. Confirm with user: "Mark 42 King St Newtown as Purchased at $1,420,000?"


2. update_property_details({


property_id,


fields: {


status: "Purchased",


price: 1420000,


auction_date: "2026-04-26"


}


})


```


 


### Pass on a property after inspection


```


1. update_property_details({


property_id,


fields: { status: "Passed" }


})


2. add_section_to_property({


property_id,


section_name: "Inspection Notes",


content: "North-facing rear but significant road noise. Client confirmed pass."


})


```

>