/vertical-real-estate
Residential-proptech domain knowledge so architect / pm aren't naive when speccing real-estate products (listings, lead-crm, transaction-coordination, property-mgmt). Codifies MLS/IDX reality, listing status lifecycle + syndication canonical-source, long-cycle lead nurture,
$ npx -y skills add avelikiy/great_cto --skill vertical-real-estate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/vertical-real-estate
Context preview
The summary Claude sees to decide when to auto-load this skill.
Residential-proptech domain knowledge so architect / pm aren't naive when speccing real-estate products (listings, lead-crm, transaction-coordination, property-mgmt). Codifies MLS/IDX reality, listing status lifecycle + syndication canonical-source, long-cycle lead nurture,
SKILL.md
vertical-real-estate.SKILL.mdname: vertical-real-estate
description: Residential-proptech domain knowledge so architect / pm aren't naive when speccing real-estate products (listings, lead-crm, transaction-coordination, property-mgmt). Codifies MLS/IDX reality, listing status lifecycle + syndication canonical-source, long-cycle lead nurture, transaction-coordination as the high-pain wedge, and the must-model entities. Applied during spec authoring so the architecture reflects how real estate actually works — not a generic CRUD assumption.
when_to_use: |
Apply when architect or pm is speccing a residential real-estate / proptech product:
- listings (content) — build once, syndicate to every portal
- lead-crm (crm) — capture + long-cycle automated nurture
- transaction-coordination (crud) — tasks / docs / deadlines to close
- property-mgmt (crud) — rent, maintenance, tenant comms
Use to seed the domain model + the "what a naive build gets wrong" checklist before tasks are decomposed.
effort: low
allowed-tools: Read, Write, Grep, Glob
paths:
- "docs/architecture/**"
- "docs/plans/**"
- "docs/design/**"
Vertical: residential real estate — don't spec it naively
Real estate looks like generic CRUD (a listing is a record, a lead is a contact, a deal is a checklist). It isn't. The domain has hard-won structure — MLS quirks, status lifecycles, months-long sales cycles, agent-vs-brokerage data boundaries — that a naive build ignores and then rebuilds. This skill front-loads that structure so the spec is right the first time.
Incumbents to know (and what they own): **Lone Wolf / Propertybase** (brokerage CRM + back office), **Follow Up Boss** (lead-to-close CRM, the nurture gold standard), **CINC** (lead-gen
- CRM), **Top Producer** (legacy CRM), **kvCORE / BoldTrail** (all-in-one platform). They are
expensive, broad, and switching-cost-heavy — which is why the wedge matters (see per-product).
1. Domain vocabulary (use these terms in the spec)
- **MLS** (Multiple Listing Service) — regional database of listings; there are ~500+ MLSs in
the US, each its own system, login, and field set. There is no single national MLS.
- **IDX** (Internet Data Exchange) — the rules + feed that let a brokerage display *other*
brokers' MLS listings on its own site. Governed by per-MLS display/redistribution rules.
- **RESO** — the standards body. **RESO Web API** (modern REST/OData feed) and **RESO Data
Dictionary** (canonical field names) are the standard — but adoption and cleanliness vary per MLS. "RESO-compliant" still means per-MLS quirks.
- **Listing status** — lifecycle, not a flag: `active → pending / contingent → closed`
(plus `coming soon`, `active under contract`, `withdrawn`, `expired`, `sold`). Status drives display rules and downstream automation.
- **Buyer agent vs seller (listing) agent** — opposite sides of a transaction; data and
permissions differ. A contact can be a buyer lead and later a seller.
- **Brokerage vs agent** — the brokerage holds the license and (often) the data; the agent is
the user. Commission **split** is how the deal's commission divides brokerage↔agent.
- **Escrow / settlement / closing** — the funded close; **contingencies** (inspection,
financing, appraisal) are conditions that must clear first, each with a **deadline**.
- **Transaction coordinator (TC)** — the person who shepherds a deal from accepted-offer to
close: chasing docs, signatures, and deadlines. Often done in Dotloop / Excel today.
- **CMA** (Comparative Market Analysis) — comp-based price estimate an agent gives a seller.
- **Lead-to-close funnel** — capture → nurture → active → under-contract → closed; months long.
- **Syndication portals** — **Zillow, Realtor.com**, Redfin, Trulia, etc.; a listing is
pushed (syndicated) to many; our copy is one of many downstream copies.
2. Non-obvious domain rules (the stuff that breaks naive specs)
- **There is no one MLS schema.** Each MLS has its own auth, field quirks, photo handling, and
redistribution rules. RESO standardizes the *intent* but the data is messy per-MLS. Model an **integration adapter per MLS**, not one global importer.
- **Transaction-coordination is the underserved, high-pain wedge.** It's the part still done in
Dotloop/Excel with manual deadline-chasing. Low switching cost (it's not the system of record for leads), high pain, clear ROI. Lead this if choosing where to land first.
- **A listing has a canonical source and many syndicated copies.** The MLS record (or our
record) is the source of truth; portal copies derive from it. Don't model portal copies as independent listings — model `source` + `syndication targets`.
- **Lead nurture is long-cycle.** A real-estate lead can sit warm for **6–18 months**. The CRM's
job is *not* close-this-week; it's stay-top-of-mind for months with automated drip until the lead is ready. A short-funnel CRM design is simply wrong for this domain.
3. What a naive build gets wrong
- ❌ **One MLS schema.** Assuming a single import format. Reality: per-MLS adapter, per-MLS
redistribution rules, RESO Data Dictionary as the *target* normalization, not the source.
- ❌ **Listing without status lifecycle + syndication canonical.** A flat "listing" row with no
status state machine and no source/target model can't drive display rules or feed portals.
- ❌ **TC checklist without deadline + contingency tracking.** A plain task list misses the
point: the value is enforced **deadlines** and **contingency** clearing, with alerts.
- ❌ **Lead CRM without long-cycle nurture.** Stage + next-touch + multi-month drip is the core;
a pipeline-only CRM (close/lost in weeks) doesn't fit.
- ❌ **Ignoring agent-vs-brokerage data boundaries.** Who owns the lead and listing data —
agent or brokerage — is a real permission/ownership boundary. Bake it into the model, not bolt it on later.
4. Must-model entities
Seed the domain model with these (exact fields negotiable; the *shape* is not
Read more
name: vertical-real-estate description: Residential-proptech domain knowledge so architect / pm aren't naive when speccing real-estate products (listings, lead-crm, transaction-coordination, property-mgmt). Codifies MLS/IDX reality, listing status lifecycle + syndication canonical-source, long-cycle lead nurture, transaction-coordination as the high-pain wedge, and the must-model entities. Applied during spec authoring so the architecture reflects how real estate actually works — not a generic CRUD assumption. when_to_use: | Apply when architect or pm is speccing a residential real-estate / proptech product: - listings (content) — build once, syndicate to every portal - lead-crm (crm) — capture + long-cycle automated nurture - transaction-coordination (crud) — tasks / docs / deadlines to close - property-mgmt (crud) — rent, maintenance, tenant comms Use to seed the domain model + the "what a naive build gets wrong" checklist before tasks are decomposed. effort: low allowed-tools: Read, Write, Grep, Glob paths: - "docs/architecture/**" - "docs/plans/**" - "docs/design/**"
Vertical: residential real estate — don't spec it naively
Real estate looks like generic CRUD (a listing is a record, a lead is a contact, a deal is a checklist). It isn't. The domain has hard-won structure — MLS quirks, status lifecycles, months-long sales cycles, agent-vs-brokerage data boundaries — that a naive build ignores and then rebuilds. This skill front-loads that structure so the spec is right the first time.
Incumbents to know (and what they own): **Lone Wolf / Propertybase** (brokerage CRM + back office), **Follow Up Boss** (lead-to-close CRM, the nurture gold standard), **CINC** (lead-gen
- CRM), **Top Producer** (legacy CRM), **kvCORE / BoldTrail** (all-in-one platform). They are
expensive, broad, and switching-cost-heavy — which is why the wedge matters (see per-product).
1. Domain vocabulary (use these terms in the spec)
- **MLS** (Multiple Listing Service) — regional database of listings; there are ~500+ MLSs in
the US, each its own system, login, and field set. There is no single national MLS.
- **IDX** (Internet Data Exchange) — the rules + feed that let a brokerage display *other*
brokers' MLS listings on its own site. Governed by per-MLS display/redistribution rules.
- **RESO** — the standards body. **RESO Web API** (modern REST/OData feed) and **RESO Data
Dictionary** (canonical field names) are the standard — but adoption and cleanliness vary per MLS. "RESO-compliant" still means per-MLS quirks.
- **Listing status** — lifecycle, not a flag: `active → pending / contingent → closed`
(plus `coming soon`, `active under contract`, `withdrawn`, `expired`, `sold`). Status drives display rules and downstream automation.
- **Buyer agent vs seller (listing) agent** — opposite sides of a transaction; data and
permissions differ. A contact can be a buyer lead and later a seller.
- **Brokerage vs agent** — the brokerage holds the license and (often) the data; the agent is
the user. Commission **split** is how the deal's commission divides brokerage↔agent.
- **Escrow / settlement / closing** — the funded close; **contingencies** (inspection,
financing, appraisal) are conditions that must clear first, each with a **deadline**.
- **Transaction coordinator (TC)** — the person who shepherds a deal from accepted-offer to
close: chasing docs, signatures, and deadlines. Often done in Dotloop / Excel today.
- **CMA** (Comparative Market Analysis) — comp-based price estimate an agent gives a seller.
- **Lead-to-close funnel** — capture → nurture → active → under-contract → closed; months long.
- **Syndication portals** — **Zillow, Realtor.com**, Redfin, Trulia, etc.; a listing is
pushed (syndicated) to many; our copy is one of many downstream copies.
2. Non-obvious domain rules (the stuff that breaks naive specs)
- **There is no one MLS schema.** Each MLS has its own auth, field quirks, photo handling, and
redistribution rules. RESO standardizes the *intent* but the data is messy per-MLS. Model an **integration adapter per MLS**, not one global importer.
- **Transaction-coordination is the underserved, high-pain wedge.** It's the part still done in
Dotloop/Excel with manual deadline-chasing. Low switching cost (it's not the system of record for leads), high pain, clear ROI. Lead this if choosing where to land first.
- **A listing has a canonical source and many syndicated copies.** The MLS record (or our
record) is the source of truth; portal copies derive from it. Don't model portal copies as independent listings — model `source` + `syndication targets`.
- **Lead nurture is long-cycle.** A real-estate lead can sit warm for **6–18 months**. The CRM's
job is *not* close-this-week; it's stay-top-of-mind for months with automated drip until the lead is ready. A short-funnel CRM design is simply wrong for this domain.
3. What a naive build gets wrong
- ❌ **One MLS schema.** Assuming a single import format. Reality: per-MLS adapter, per-MLS
redistribution rules, RESO Data Dictionary as the *target* normalization, not the source.
- ❌ **Listing without status lifecycle + syndication canonical.** A flat "listing" row with no
status state machine and no source/target model can't drive display rules or feed portals.
- ❌ **TC checklist without deadline + contingency tracking.** A plain task list misses the
point: the value is enforced **deadlines** and **contingency** clearing, with alerts.
- ❌ **Lead CRM without long-cycle nurture.** Stage + next-touch + multi-month drip is the core;
a pipeline-only CRM (close/lost in weeks) doesn't fit.
- ❌ **Ignoring agent-vs-brokerage data boundaries.** Who owns the lead and listing data —
agent or brokerage — is a real permission/ownership boundary. Bake it into the model, not bolt it on later.
4. Must-model entities
Seed the domain model with these (exact fields negotiable; the *shape* is not
Showing the first part of this file.
Don't buy software. Get the work done. GreatCTO ships AI autopilots that run a whole business function — medical coding, legal docs, procurement, accounting, IT, tax — from intake to outcome. A qualified human signs only the judgment calls. Live connectors, built-in compliance.
Repo: avelikiy/great_cto
Other skills on great-cto.
- /anti-patterns
Catalogue of known SDLC anti-patterns that great_cto agents must actively reject when reviewing architecture, plans, code, or post-mortems. Used by architect (pre-impl), pm (planning), senior-dev (impl), l3-support (post-incident).
Open skill - /anydesign
Analyze images, websites, and Figma files to extract their design and generate a `design.md` with token system, component inventory, and reconstruction notes. Use this skill whenever the user wants to understand, document, replicate, or audit the design of something visual: a
Open skill - /archetype-review-base
Shared review framework that every domain reviewer (pci, oracle, gov, edtech, healthcare, mlops, etc.) MUST follow. Defines the output artifact (TM-{slug}.md), mandatory sections, severity scale, verdict format, the workflow scaffold (when-invoked, Step-0 read-inputs, HANDOFF),
Open skill - /brainstorming
Structured idea generation + multi-LLM debate for the product-owner stage. Diverge (generate genuinely different bets), debate (a 4-persona panel on 4 models argues over 2 rounds), converge (synthesize a recommendation). Used by product-owner before architect; available to
Open skill - /cost-model
Standardized cost-estimation framework for great_cto plans. Forces explicit LLM cost, infra cost, human-supervision time, and the (defensible) human-equivalent comparison. Output format is parsable by the board's /api/cost path — must follow exactly.
Open skill - /crystallize
Distils repeating patterns from session logs and lessons.md into draft skill files. Run after ≥10 sessions to extract durable knowledge. Output: draft skills/ files + promotion report.
Open skill

