HB Capital deal dashboard, Board view on desktop and phone, dark mode

Role

Role

Architect, designer and builder

Year

Year

2026

Type

Type

Deal operating system

Stack

Stack

Interface: PHP, JavaScript Data: Supabase: PostgreSQL, Row Level Security, Edge Functions (TypeScript on Deno), pg_cron, pg_net, pg_trgm AI: Claude Opus via the Anthropic API, structured tool outputs, scheduled Claude agent runs Integrations: Microsoft Graph (Outlook mail, folders, categories and webhooks), SharePoint, Entra ID, SEC EDGAR filings

Status

Status

Live and in daily use by the HB Capital team

Challenge

Commercial real estate lending runs on relationships, and relationships run on email. At HB Capital, every deal lived across four team inboxes, thousands of lender threads, and whatever each of us happened to remember. Which lenders had seen this deal? Did anyone reply? Who actually lends on behavioral health in Arizona? The answers existed, but they were scattered, and the work of connecting them happened in people's heads.

What I Built

A deal operating system that sits on top of the firm's inbox. Every hour it reads new mail across the team's mailboxes through Microsoft Graph, matches each thread to its deal, and has Claude summarize where things stand and pull out the action items, each one traced to the exact sentence it came from. Underneath is a lender intelligence layer: more than 5,000 lending companies and 2,100 individual loan programs, screened against every deal so the team starts with the lenders most likely to say yes. A maturity radar reads over 16,000 securitized loans from public SEC filings to find refinancing opportunities before they hit the market. Referral partners get a live view of their deals, and outreach drafts are written in each team member's own voice. One rule runs through all of it: the machine suggests, people decide. A thread matched by guesswork stays a suggestion until someone confirms it, and an item a person has closed is never reopened by the AI.

$2B+

Pipeline managed

2,100+

Loan programs screened

16,000+

Securitized loans on the radar

Deal Tracker overview with loan volume, time zones, rates and deal cards, light mode
An open deal with lender status counts, notes, files and lender table, dark mode

The Hard Part

The hardest problems were the quiet ones. At one point the email matcher stopped proposing new links for weeks while still reporting success, because the database API caps every response at 1,000 rows and says nothing when it cuts one off. Another time, an audit showed that only 113 of nearly 1,200 automated "reply received" notes could be verified, so I retired that job and rebuilt it with stricter rules: a note gets written only when the message, the deal and the lender all line up. A system people rely on has to be honest about what it doesn't know. Moving mail inside a teammate's inbox is the kind of automation that loses people's trust after one bad run. So existing threads were moved in batches: each run started as a dry run I reviewed, skipped any message a person had already moved, refused to file anything that could belong to more than one deal, and kept an undo log for every move.

Deal Tracker Board view on desktop and phone, light mode
Lender drawer with a Claude-written follow-up and the email thread, dark mode
The dashboard on three phones: deal list, open deal and More menu, light mode

Outcome

The team now opens one screen in the morning instead of five. Deal status, lender replies and the next follow-up are all visible together, and the outside systems update themselves instead of waiting for someone to copy data across.

Upgrade your Web
presence with Framer

Get in contact with template creator

Upgrade your Web presence with Framer

Get in contact with template creator