Property Insurance
I spent the last year working full time at Beagle Labs while finishing college. Beagle does property inspections for the insurance industry. An MGA or a carrier orders an inspection, a 1099 inspector from our network drives out and photographs the building, ops reviews the photos for risks, and the underwriter gets a PDF back in about 14 days instead of the 30 plus a traditional vendor takes.
In October 2025 all of that ran on Wix. A year later it is four Next.js portals on Vercel, a mobile app, four agents on Google ADK and Cloud Run, and a Postgres database on Supabase with a real migration history. I'm grateful to have been able to help build it up from scratch.
QC Risk AgentTurns inspection photos into a live streamed risk reportREAD WHY ▾CLOSE ▴
QC is the step between the inspector submitting and the partner getting a report, and it was entirely manual. A reviewer opened 50 or more photos per inspection, picked risks out of a catalog of about 70, assigned a severity and wrote every accepted row by hand.
The 14 day turnaround is the whole pitch, and QC was the slowest part of it. The agent does the routine pass so the reviewer only has to accept, dismiss or add instead of starting from a blank modal. Its output feeds the partner report, so we tuned it for precision over recall.
Property Intelligence AgentScores property structure, hazards, valuation and zoningREAD WHY ▾CLOSE ▴
MGAs and carriers want a snapshot of a property before they order an inspection, and sometimes instead of one. Without it they were leaving our portal for third party tools, which is the one place you do not want your customer going.
A partner searches an address and gets structure, hazards, valuation and zoning with a recommended action, order an inspection, consider waiving it, or get more data. Partners used the rough first version enough in April that v1 shipped May 1, 2026, and the next step is reasoning across a whole portfolio rather than one property.
Dispatch AgentReaches out to inspectors to fulfill inspectionsREAD WHY ▾CLOSE ▴
Publishing a batch emails every inspector in the state and then ops waits. Multi building batches draw about 20 applicants but a median of two own a drone, so about a quarter of awards go to someone who never applied. Finding that person meant texting people one at a time from the ops phone with nothing recorded.
Multi building batches sat a median of 47 days between creation and assignment. The dispatch agent texts the nearest qualified inspectors a few at a time, records every offer and every reply, and turns a yes into an application ops already knows how to review, so that 47 days comes down.
Inspection Summary AgentDrafts the customer summary after QC reviewREAD WHY ▾CLOSE ▴
The summary the customer reads at the end was written by hand. Inspectors drafted notes, ops polished them in a text box, and whatever ended up in that field went straight to the partner portal and the PDF with no consistency between inspections.
Turning the approved risks and the questionnaire into a few paragraphs a customer can read is the most mechanical step in closing an inspection. The agent drafts it, ops reads it and applies it, and the summary reads the same way for every partner.
Agent Evals and ObservabilityRecall and precision evals gating deploysREAD WHY ▾CLOSE ▴
Once model output is going into a partner report you need to know the moment it gets worse, and before this nothing told us. There was no trace of what an agent saw, what it answered, what it cost or where it failed.
Braintrust traces every agent run. Every deploy runs an eval against an inspection that ops reviewers labeled by hand, so ops decisions are the ground truth, and errors in the cloud post to a Discord channel. A failing eval trips an alarm rather than blocking the deploy.
Inspector PortalMulti property inspections with threaded email built inREAD WHY ▾CLOSE ▴
The inspector portal is where 1099 field inspectors browse jobs, get awarded a batch, schedule with the property contact, upload photos, fill the questionnaire and submit. It replaced the Wix pages in the spring of 2026 with the first in field release in March.
Multi building came from partners. A habitational complex is one common area plus one inspection per building, we bill partners per building, and Volant submitted 96 inspections in one day before we supported it. Finer statuses followed, as partners could not tell a job was moving for up to a week and were calling ops to ask.
Inspector PayoutStripe payouts to contractors, auditable and safe to retryREAD WHY ▾CLOSE ▴
The goals were to pay 1099 inspectors without ever storing bank data, keep the release of money under ops control, and keep a history anyone can audit. Stripe owns bank collection, identity checks and compliance. Beagle owns who is eligible, when, and which batch a payout belongs to.
An inspector onboards once in a payments portal, and ops releases a payout from the batch with one click that is safe to click twice. The one complaint in the retro was that transfers are slow to land, which is a Stripe problem and a good problem to have.
Bulk Inspection ExportMany buildings into one partner PDFREAD WHY ▾CLOSE ▴
At the end of every inspection there is a PDF, and the PDF is what the partner is paying for. An underwriter files it in the policy folder and for a lot of partners it is the only thing they keep. A 17 building property used to mean 17 PDFs with no cover, no contents and no page numbers, so an underwriter downloaded 18 files and stapled them together by hand. Volant offered to merge the files themselves if we could not.
Now a multi building parent exports as one report with a cover in the partner's colors, a contents page, running headers and a bookmark per building, generated in the background so a closed tab does not lose the work.
Email ThreadingTwo way email with policyholders, every reply lands on its inspectionREAD WHY ▾CLOSE ▴
The goal was more inspections scheduled by the inspector themselves and fewer that need ops to step in, with ops able to see every email without seeing anyone's personal calls. A professional email from the Beagle domain gets a reply from a property owner who would ignore a stranger's call.
Every reply lands on its inspection, the inspector never types an address, and partners can read a plain English log of who reached out and when. It launched the first week of December 2025 and drew enough partner interest that the team reshuffled the sprint around it.
Message ThreadingTwo way SMS on a number we own, every text a row, inbox built into opsREAD WHY ▾CLOSE ▴
Texts went out from two places and neither could hear back. Ops texted inspectors by hand from a business phone app that recorded nothing in our database and kept opt outs only inside that app. The ops portal sent reminders it could not receive replies to.
The inbox has to live in the ops portal, since we cannot send a partner running the portal under their own brand to someone else's app to read their texts. Every text in or out becomes a row we own, and handing a partner their own inbox becomes a filter rather than a new product.
Supabase Source ControlGit source control for our Supabase table schemasREAD WHY ▾CLOSE ▴
When the team left Wix for Supabase the schema lived in the dashboard. A migration got missed between dev and production in December, and in January the team banned changing production directly.
Every production schema change is now a migration file in a reviewed pull request, anyone can rebuild a fresh database from the history plus a seed, and real customer data never goes into dev. It is the least visible thing on this list and the one that stopped the most incidents.
Replacement Cost EngineRebuild cost across materials, labor and permitsREAD WHY ▾CLOSE ▴
The question is, if this property were destroyed, what would it cost to rebuild today. That number lived in an Excel workbook where formulas changed without notice, prices had no version history and nobody could say why a figure moved.
The engine makes the estimate repeatable, explainable and auditable, every line item, materials, labor hours and permits. It also lets Beagle tell a carrier what a building would cost to rebuild, on top of sending someone to look at it, and the pitch is to run the estimate before the inspector shows up so the visit becomes verification.
Personal















