Belayer

OutShine: a sales platform built around the field

OutShine (opens in a new tab) is a commercial window cleaning company with sales reps working territories across the country. Their customer and job data lives in a long-running ERP built on FileMaker. It was reliable, but it wasn’t built for someone standing in a parking lot between two sales calls. Belayer has been building their sales software since late 2025.

The sales app

The first version was a native iOS app that talked to the ERP directly. Reps could see nearby companies on a map, work their clients and leads, log every touch (a visit, an email, a quote), set reminders, and track their time. It also drafted follow-up emails and could pull new leads out of a batch of photos.

The second generation, shipping since spring 2026, is a full rewrite. It runs on iPhone, iPad, Mac, and Apple Watch, with widgets and a share extension. It adds call recording, a daily Today view, a command palette, and an assistant built into the app.

A backend that can outlive the ERP

Rather than have every screen call FileMaker, we put a single bridge service in front of it and moved everything else onto small Cloudflare Workers, one per job: sign-in, sales data, touches, timesheets, push notifications, metrics, and AI. The sales data is copied into D1 every hour, and the app picks up changes from a change log about every 20 seconds, so reps see fresh data without waiting on the ERP.

Because only the bridge knows FileMaker exists, retiring the ERP later means replacing one service, not rewriting the app.

Handing leads to an agent

Reps can hand a cold lead to an AI agent that follows up by email. The agent drafts each offer, waits for the rep to approve it, stops to ask when it isn’t sure, and gives up after a set number of exchanges or a period of silence. A web hub tracks how each agent is doing and what it costs.

Making the data usable by AI

The latest piece is an assistant that answers questions over the company’s own data: hundreds of thousands of records across companies, services, touches, and leads, organized and indexed so it can query them quickly. It writes its own read-only SQL against copies of the data, and its prompt is built from the live table definitions, so it can’t fall out of sync with the real schema. A daily snapshot builds account history for churn and trend questions the ERP could never answer on its own.

Uploaded documents are converted to text, split up, and embedded for search. Analysis runs in a sandboxed Python environment with no network access, and reports can be exported as PDFs.

What we built

Native apps for iPhone, iPad, Mac, and Apple Watch · about a dozen Cloudflare Workers with D1, Durable Objects, R2, and Vectorize · an ERP bridge · an email agent with human approval · an AI assistant over the company’s sales data · a web hub for managers.