Inspiration

A few weeks ago, a friend came home to water pouring through her ceiling lights. A pipe above her apartment had burst, and by the time it stopped her rug, couch, bookshelf and laptop were ruined.

The next morning her insurer asked one question: "Can you send us a list of everything you lost, with proof?"

All she had was a camera roll of panicked, blurry photos and a few receipts that were soaked or lost. She spent days on a wet floor building a spreadsheet. She almost listed the same chair three times, guessed prices she worried would get her claim denied, and ended up with a list that didn't match her roommate's.

Leaks, storms, floods and fires all end the same way: people have to prove what they lost, at the worst moment of their lives, with scattered evidence and no help. We built Rebuild so nobody has to do that alone.

What it does

Rebuild turns photos and receipts from any home damage into a recovery record where every line can be traced back to evidence.

  1. Create a case for a damaged room and upload photos and receipts. Every file gets a stable evidence ID.
  2. The Evidence Investigator (a CREAO agent) lists every visible belonging, describes the visible damage, and says where in the photo to look. It extracts receipts line by line and flags duplicates, like the same chair seen in two photos.
  3. It never guesses. Missing brands, dates and prices stay blank. It links a receipt only on a specific detail (brand, model, SKU, color, material). If it can't tell, it asks a question.
  4. Review together, live. The household, family and caseworkers answer questions and fix mistakes on one shared case, synced in real time.
  5. Follow-up runs keep what people confirmed. IDs never change, confirmed values are copied exactly, and resolved questions stay visible with their reason.
  6. The Product Researcher suggests possible product matches from the web, always labeled as unverified.
  7. Export a recovery record PDF, then have the Claim Submission Assistant draft the insurer email with the PDF attached. It never sends without explicit approval.

How we built it

  • CREAO: three agents (Evidence Investigator, Product Researcher, Claim Submission Assistant) with versioned skills and strict JSON output. Our backend calls them through CREAO's app-scoped API Trigger. The Claim Assistant uses CREAO's Gmail connector to create drafts with the PDF attached.
  • SpacetimeDB: the real-time backend for shared case state. Every confirmation, correction and resolved question syncs instantly to every reviewer.
  • FastAPI: uploads, evidence IDs, agent orchestration, schema validation, PDF export, and a separate approved-send step.
  • React: the evidence viewer and the review interface.
  • Notability: [describe how your team used it, e.g. sketching the flow, planning the data contract, annotating agent results]

Before writing any code, we agreed on a shared data contract. Every agent result has the same seven fields:

{
  "case_summary": "...",
  "evidence": [],
  "items": [],
  "findings": [],
  "questions": [],
  "limitations": [],
  "receipt_extracts": []
}

Every item cites its supporting evidence IDs, and human confirmations are stored separately from agent proposals.

Challenges we ran into

  • The agent analyzed the wrong photo. Our first test reported furniture that wasn't in the intended image. We fixed this with backend-assigned evidence IDs and filename checks on every run.
  • Plausible-sounding matches. Early runs matched a receipt to an item just because both said "sofa," and flagged a false conflict between two unrelated receipts. We rewrote the rules to require specific evidence.
  • Making follow-up runs trustworthy. A second AI run must never contradict what a person confirmed. Getting stable IDs, exact carry-over of confirmed values and kept-not-deleted resolved findings took several skill versions.
  • Ambiguous dates. 03/04/2024 could be March 4 or April 3, so we keep the date as printed and leave the normalized date empty instead of guessing.
  • Sending email safely. The Gmail connector can send, but it has no "send this exact draft" action or duplicate protection. So the agent only drafts, and sending is a separate approved step in our backend.

Accomplishments that we're proud of

  • An AI that is honest about what it doesn't know, and asks instead of inventing.
  • A follow-up run that keeps every human confirmation exactly as entered.
  • A complete flow from upload to investigation to live review to PDF to insurer email draft, tested end to end on a test inbox.

What we learned

  • In high-stakes situations, an AI that says "I don't know" is more useful than one that sounds confident.
  • Agreeing on a data contract first let four people build the frontend, backend and agents in parallel.
  • Provenance matters: every value should show whether it came from evidence, the agent, or a person.

What's next for Rebuild

  • Signed-URL uploads so private damage photos never touch a public link.
  • Answering the agent's questions directly inside the case.
  • Cross-run duplicate detection when new photos are added later.
  • A fully tested approved-send flow with duplicate-send protection.
  • Support for multiple rooms and whole-home cases.

Built With

Share this project:

Updates

Submission history