A CRM the crew runs by talking to it.

A curbside bin-cleaning business kept losing new customers for one reason: nobody wrote them down. Aletheon built an agentic CRM around a language model that runs on the client’s own server. The crew logs a customer in one sentence, and no data leaves the business.

Client
HC Bin Cleaning
Sector
Curbside bin cleaning
Engagement
Custom agent build
Platform
Installable web app
100%
Local and private.
1
Sentence to log a client.

The real CRM was the crew’s memory, and it leaked all day long.

Customers were met at the curb, half-scribbled on a text thread, and forgotten by pickup day.

Off-the-shelf CRMs meant forms, logins, monthly fees, and handing customer names and addresses to a third party. None of that survives a workday with wet gloves and a pressure washer.

Four ways customers slipped through the cracks.

01

Every new customer meant remembering a name, address, phone, and which bins, then re-entering it later, if at all.

02

No shared picture of which houses are already clients while driving a street.

03

“What is on this week?” lived in one person’s head.

04

SaaS tools added a bill, a login wall, and a privacy question nobody wanted to answer.

Three jobs, one app, plain English.

Instead of screens full of fields, the crew talks to an assistant. A local language model reads what they say, pulls out the details, and calls real functions that read and write the database. The map, client list, and schedule are all views onto the same data.

Capture

Log a client by talking

Type it or tap the mic and say it the way it happened. It saves the name, address, phone, and bins, and asks a quick question first when something is unclear.

Coverage

See every client on a map

Each serviced address drops a pin on satellite imagery, so the crew sees which houses they already clean. Tap a pin for name, address, and tap-to-call.

Rhythm

Know the week

A weekly job view, plus a plain-language read-back. Ask what is coming up and get who, where, when, and price in a sentence.

What happens when the crew talks to it.

The chat runs a short loop. The model gets a set of tools, picks which to call using details it pulls from plain English, and the server runs them against the database, looping until it has a plain-language answer. The same tools feed the visual views, so nothing gets out of sync.

01 · Tech speaks

Plain English

“New customer, the Lees at 88 Pine Ave, recycling.”

02 · Model extracts

Local LLM

Picks the fields and chooses a tool.

03 · Server executes

Runs the tool

The tool runs against SQLite and the result returns to the model.

04 · Replies and syncs

Confirms

Confirms in plain English, and every view updates.

The same tools that answer the crew also power the map, the directory, and the schedule, so the data is never entered twice.

From a six-field form to one sentence.

Before, a typical CRM

  • Open the app, find New contact.
  • Type first name, last name, phone, and email.
  • Type street, city, and ZIP.
  • Pick service from a dropdown, save, then repeat for the next house.

After, the Aletheon build

  • “Met the Garcias at 100 Locust St, both bins, 515-555-0101.”
  • One line, typed or spoken.
  • The client, the property, the map pin, and the record of what was said are created at once, and the assistant offers to book the first visit.

Private, and cheap to run.

Because the model is self-hosted, there is no per-message cost and no data leaves the business. API, database, and model share one small server, and the front-end is free.

Front-end (Netlify free tier)$0
Server (API, database, and model)~$7
Model usage (self-hosted)$0
Database storage$0
Total~$7 / mo
Flat.

Whether that is five messages a day or five hundred, the price does not move. You rent the machine, not the model.

  • Customer names and addresses never leave the owner’s server.
  • The model is bound to localhost. Only the API is exposed, over HTTPS.
  • The whole database is one file, so a nightly copy is the whole backup.
  • Installs to the home screen like a native app.

What it changes on the job.

It fixes the thing that lost customers before: a customer is saved the moment they say yes.

01

Nothing forgotten. A customer met at the curb is a saved record before the crew reaches the next house.

02

One place for everything. Chat, map, schedule, and the directory all read the same database, so nothing gets entered twice.

03

Owned, not rented. No per-seat SaaS fee, and no third party holding the customer list.

Where it goes next.

Near term: per-tech logins and roles to replace the shared passcode, and tap-a-client to open history, edit details, and jump to them on the map.

Later: route optimization across the week’s scheduled stops, and recurring-program automation for monthly and bi-monthly reminders.

Node and ExpressSQLiteOllama, tool-calling LLMLeaflet and OpenStreetMapPWACaddy auto-HTTPSNetlify

Custom AI tools, built for how your team already works.

We build private, practical AI tools for small and mid-sized teams, designed to hold up under real operational constraints. Reach out to talk through where this could help.