Inspiration

Property managers don’t just manage buildings, they manage layers of history.

At firms like CBRE, it is estimated that a single property manager can oversee 20–60 properties and 200–500+ tenants, with years of conversations spread across emails, spreadsheets, and internal systems. The real problem isn’t lack of data, it’s that critical context lives in scattered systems and individual memory.

Miro changes how institutional memory is handled in commercial real estate. When a property manager leaves, critical context is often fragmented across tools and incomplete handoffs, forcing the next manager to rebuild understanding from scratch. Miro solves that gap by preserving and mirroring the past into the present. So whether it’s a new manager stepping in or a current one managing day-to-day operations, they aren’t starting from zero, they’re always working with the full context of everything that came before.

What it does

Miro is a RAG-powered memory system that transforms scattered operational data into a living intelligence layer for property managers.

It connects to tools like Google Workspace (Gmail and Sheets) and processes voice notes, documents, and historical records to extract structured signals such as tenant risk patterns, maintenance history, payment behavior, escalation signals, and unspoken contextual knowledge that would otherwise be lost in transitions.

From this memory layer, Miro generates a daily ranked briefing, the first thing a property manager sees each morning. Instead of manually digging through emails and piecing together history, they immediately see what matters most: urgent issues, high-risk tenants, recurring problems, and key follow-ups, all with full context attached.

Managers can also query the system directly, asking questions like:

“Which tenants are showing signs of churn risk?” “What issues keep recurring at this property?” “What did we previously agree with Unit 4B?”

Miro responds with context-aware insights grounded in historical memory, and visualizes results through a dynamic portfolio heatmap and ranked tenant table, helping managers move from reactive triage to informed decision-making instantly.

How we built it

• Built a multi-layer RAG memory system using FastAPI for the backend and a React-based dashboard for the frontend

• Integrated Google OAuth (Gmail + Sheets read-only) to securely ingest emails and spreadsheet data Designed ingestion logic to process full Gmail threads, preserving conversation context instead of isolated messages

• Used the Gemini API to extract structured memory from unstructured data (tenant risk, maintenance history, payment behavior, etc.)

• Stored memory in Supabase with pgvector, enabling semantic search and a RAG-based retrieval layer

• Built an agent interface that allows natural language queries over historical property data

• Created a dashboard with a daily briefing, portfolio heatmap, and ranked tenant table

• Added multimodal support, letting users upload maintenance images analyzed via Gemini Vision and linked to property context

Challenges we ran into

One of the biggest challenges was structuring unorganized, messy data into something actually useful.

Emails, voicemails, and notes are inconsistent and context-heavy, so extracting meaningful insights required careful prompt design and iteration. We had to ensure the system didn’t just summarize information, but understood what actually mattered, like distinguishing between a routine request and a high-risk tenant issue.

Another challenge was prioritization. It’s easy to show information, but much harder to rank it correctly. We focused on building logic that considers both urgency and historical context so the output feels intelligent, not noisy.

Finally, designing a UI that balances complexity with clarity was difficult. Property management involves a lot of moving parts, so we had to make sure the interface simplified decision-making instead of overwhelming the user.

Accomplishments that we're proud of

We’re most proud of turning an abstract idea—“institutional memory”—into something tangible and interactive.

The daily briefing is a standout feature, transforming dozens of scattered inputs into a single, prioritized view of what matters. Our multimodal input (especially image-based maintenance analysis) adds a layer of real-world usability that makes the system feel practical, not theoretical.

We also built a system that doesn’t just store data, but makes it actionable. Instead of searching through history, users can ask questions and immediately get context-aware answers.

Most importantly, we created a product that feels like a natural starting point for a property manager’s day, not just another tool they occasionally check.

What we learned

We learned that the hardest part of building AI products isn’t generating information, it’s deciding what not to show.

Users don’t need more data; they need clarity and prioritization. Designing around that principle changed how we approached both the backend logic and the user interface.

We also learned how important unstructured knowledge is. The most valuable insights weren’t in spreadsheets, they were in conversations, edge cases, and informal context. Capturing that turned out to be one of the most impactful parts of the product.

Finally, we saw how critical positioning is. Framing Miro as a tool that augments property managers made the idea significantly stronger and more realistic.

What's next for Miro

Next, we want to expand Miro into a fully integrated property intelligence platform.

This includes deeper integrations with property management systems, financial tools, and maintenance platforms to create a more complete view of each asset. We also plan to improve our risk modeling by incorporating predictive analytics, helping managers anticipate issues before they happen.

Another focus is collaboration, allowing teams to share insights, annotate context, and build a collective memory across an entire organization.

Long term, we see Miro becoming the default interface for property management, where every decision is informed by the full history of the asset, not just what’s immediately visible.

Built With

Share this project:

Updates