An AI agent inside your business, on a stack you own

Connected to your CRM, your inbox and your files, it knows every customer, every job and every conversation, and works across all of them at once. Every call on the record, every quiet account noticed, every pattern nobody had the hours to find. On your accounts, with your choice of model.

How a project starts
agents · your-business ● 6 running
$ run account-review --scope all-active
planning · 4 steps · model claude-sonnet
crm.contacts(status=active) 412 accounts
gmail.threads(per account, last 90 days) 3,180 threads
calls.transcripts(last 90 days) 96 calls
skill: what-a-cooling-account-looks-like
crm.task.create ×9 · note on each account 1.2s
found · 9 accounts quiet for 60+ days with an open quote, owners notified
done · 1,240 tool calls · 2.1M tokens · $3.40 · cache 71%
$ _

An agent connected to your CRM, your inbox and your files knows every customer, every job and every conversation, and works across all of them at once. Three things underneath make that possible.

Fig 0.1

The harness

Plans a task, works through it in steps, calls tools, holds context across a long job, checks its own output and recovers when something fails.

Fig 0.2

Connectors

Your CRM, Gmail, Drive and Calendar through their connectors, your own systems through the open connector protocol. Adding one is configuration, not a project.

Fig 0.3

Skills

Your procedures written down in plain text. How a quote is checked, how a folder is named, what counts as finished. Someone non-technical can open and edit them.

Nothing
stops quietly

The jobs that run on their own, morning keys sync, overdue reminders, the settlement folders, each record their last run and its result. A job that stops is reported as stopped, not left showing as scheduled with nobody the wiser.

The failure that costs money is never the loud one. It is the job that has not run for three weeks while the dashboard said it had.

scheduled jobs today · Australia/Brisbane
jobschedulelast runresultnote
keys-overdue-syncdaily 07:0007:00:04✓ ok14 rows updated
settlement-foldersdaily 07:0007:01:12✓ ok2 folders created
outstanding-keys-emailweekdays 08:0008:00:02✓ oksent to 3 recipients
signboards-syncweekdays 08:0008:00:41✓ okno changes
hr-remindersdaily 07:0007:00:00! reportedmodel unavailable, retried twice, escalated
api-watchdogevery 2 min1 min ago✓ ok200 · 118ms
account-reviewmondays 06:00today 06:00✓ ok412 accounts, 9 flagged
backup-verifysunday 03:00sunday 03:00✓ okrestore tested

A bill you can
break down

Every call is recorded against the agent and the model that made it. You see which one is expensive, which one runs the most, and how much of a long task came from cache instead of being paid for again.

The live figures sit in your own provider accounts. A number nobody can break down is a number nobody can control.

spend · by agent · 30 days
usage · per agent 30 days
agentmodelrunscost
assistantclaude-sonnet1,204$58.20
account-reviewclaude-sonnet4$13.60
listing-checkdeepseek-v4618$9.85
settlement-folderskimi-k327$0.90
keys-overdue-syncscript30$0.00
totalcache hit 61%$82.55

Any model,
per agent

Claude, GPT, Gemini, DeepSeek and Kimi sit behind one routing layer on accounts in your name. Each agent gets the model that fits its job, a strong one for drafting, a cheap one for checking, with a fallback order for when a provider is having a bad day.

The model you would pick today is not the one you would pick in six months. Changing it is a settings edit, not a rebuild.

config / agents.yml
agents:
  account-review:
    model: claude-sonnet
    fallback: [gpt-5, deepseek-v4]
    skills: [what-a-cooling-account-looks-like]
  listing-check:
    model: deepseek-v4
    fallback: [kimi-k3]
  assistant:
    model: claude-sonnet
    connectors: [gmail, drive, vaultre]

Routing layer · accounts in your name

Claude GPT Gemini DeepSeek Kimi

Lit chips are in use by the agents above. The rest are one line away. Fallback order per agent, so a provider outage degrades to the next model rather than to nothing.

How a project
starts

Three steps before anything is built: a conversation about the jobs, a written scope, and one fixed price for the build. There is no list price, because no two agents do the same work.

Model usage is billed to your own provider accounts at the provider's list price, never marked up.

01

The conversation

What the business already has: the systems, the records, the calls and emails that nobody has time to read. What an agent takes over first, and who looks after it once it is running.

02

The scope

Written down before anything is built: the agents, the connectors, the schedules, what is in and what is out, and which accounts it all sits on.

03

The price

One figure for the build, fixed once the scope is agreed. What runs afterwards, the model usage and any ongoing arrangement, is listed separately so the two never blur.

Get in touch

Put an agent to work

Every business has work that nobody gets to: every call and email with a customer transcribed and on the record, the connections between accounts that no one person can hold in their head, the report that would take a week by hand. The first conversation is about which of those comes first. From there you get a written scope and a fixed price.

See the Content Engine

Questions people ask before they get in touch