[THE_SALES_OPERATOR]How I AI
01 / 13ContentsOne page
How I AI · a portfolio in nine chapters

What I Built With AI

One revenue operating system, and three personal builds. The operating system ran inside a real B2B SaaS revenue org, where the thing has to survive contact with people who did not build it and do not care that it was hard. The personal builds are where nobody is watching, and the people absorbing every defect are me and my family.

One design rule runs through all of it: the machine sources, ingests, researches, drafts and renders. The human keeps the judgment and every irreversible action. Nothing in here sends a message, accepts a term, or publishes a claim on its own.

Heath BarnettThe Sales Operator9 chaptersOpen the book →

Turn pages with → and ←, or swipe. Read it as one page instead.

Part one

Built with Product, RevOps, the data team and the reps who had to trust the output. That last group is the only reason any of it got used.

Twenty agents. One library of facts. Four questions a revenue team asks every week.

It is easier to hold if you start from the questions instead of the agents. A revenue team runs on four of them, in the order a customer moves through the business. Every agent below answers one. All of them read from the same canonical library, so a scoring rule or a field definition is written once and used twenty times.

Find. Who should we sell to?
ICP, the signal library, the scoring engine, enrichment, and the account brief a rep opens
Close. Is this deal real?
Deal Confidence Score, rep coaching, conversation pulse
Keep. Will they stay?
Onboarding milestones, renewal health, churn watch
Grow. What do we sell next?
Expansion Score, the book of business rollup

Underneath all four sits what separates a system from a demo: a gate in front of the compute, an agent that watches the other agents, one morning brief that decides whether anybody opens any of it, and a harness that graded every agent before it shipped. Those come last, once you have seen what they are protecting.

On the visuals and the examples. Every account, person and deal on this page is invented. Northfield Logistics, Halvorsen Freight and Cadence HQ are not companies. No customer, no account, no employee and no revenue figure from a former employer appears anywhere here. The method is real. The names are not.
Contents
Turn to a chapter

Nine chapters and a last page. Click any of them, or use the arrow keys.

  • Part one: the revenue operating system
  • FindWho should we sell to?
    The scoring engine, the signal library, and the account brief a rep opens.
  • CloseIs this deal real?
    Deal Confidence Score, coaching per rep, GTM University, conversation pulse.
  • KeepWill they stay?
    Onboarding milestones, renewal health, churn watch.
  • GrowWhat do we sell next?
    The Expansion Score and the book of business.
  • The plumbingWhat makes it a system and not a demo.
    The refresh gate, the agent that watches the agents, the one that proposes its own changes, and the morning brief.
  • The harnessWhy any of it can be trusted.
    The part I would bring to a client first. Every agent above was graded before it shipped, and this is how.
  • Part two: the personal builds
  • Content engineThe content engine behind The Sales Operator
    An idea goes in one end and something published comes out the other.
  • Headless siteThe headless site behind Build Better
    No CMS, no database. One record per episode, every surface a read of it.
  • Household budgetThe household budget my family actually runs on
    The smallest system here, with the least forgiving users.
  • Last pageWhat the two halves have in common, and the honest limits
Find

Who should we sell to?

The scoring engine, the signal library, and the account brief a rep opens.

The agents on this stage, in the order they run
01 · ICP analyst
Qualifies fit against who actually buys and sets the floor
→
02 · Enrichment analyst
Fills the contact and firmographic gaps from the waterfall
→
03 · Signal library
Reads every signal, its source, its worth and its decay
→
04 · Scoring engine
Gate, then fit, then intent. Signals only ever add
→
05 · Pipeline creation analyst
Ranks who to work this week, by channel and by rep
→
The output
The account brief, scored and explained, with the first touch already drafted

The number a rep sees took several rebuilds to get honest. The first version blended fit, usage and buying signals into one score, which is how you end up recommending accounts that look great on paper and never convert. The rebuild split it into layers: ICP fit qualifies an account and sets a floor, product usage is the loudest mover, and buying signals are capped boosts on top. A signal can only add. Its absence is never a penalty, so a strong fit account already using the product ranks high before a single third party signal shows up.

The weights were tuned against a real won and lost backtest rather than against intuition. Signals that turned out to be gates rather than differentiators got moved out of the ranking, which sounds like a small change and reordered the entire list.

A page explaining to reps how their leads are scored
The explanation written for reps
A methodology document for a scoring model version, marked superseded
The methodology, including the version it replaced

Two habits from this are worth more than the model itself. Every version of the methodology stayed published, with the superseded ones clearly marked, so anyone could see what changed and why. And the model got a plain English explanation written for the reps rather than for the leadership deck, because a score nobody understands is a score nobody uses.

The signal library is the part that keeps it honest. Build Your Signal Library turns "we should watch for funding" into something a rep can act on: every signal with how you detect it, what it is worth, how it decays, which combinations score higher, and the message hook that earns the reply. It is easy to write and easy to write badly, and the eval is what separates the two. Does it reference the ICP inputs it claims to read. Does it fire on the request a rep would actually make. Would somebody know what to do with the output. A signal library that is never scored or decayed is a list of alerts, and the eval is what stops that version shipping.

A table titled the Score layer, listing each scoring signal such as ICP fit, sequence activation, inbound hand-raise and funding round, with its data source, role, magnitude and channel
The actual score layer that shipped. Every signal, where it comes from, and what it is worth.

The account brief is what a rep actually opens. Every account arrives already scored, already enriched, already explained, so nobody opens a list and wonders whether a name is any good. Relationship history pulled from the CRM, the sequencer and the call recordings, so a rep never opens with "just wanted to reach out" on an account that has been lost twice. Then the recommended play. Then the actions, one click each. Then, underneath, the evidence: what the score is made of, which product signals moved it, and who the buying committee is with contact detail already found.

An account brief showing relationship history across the CRM, the sequencer and call recordings, the recommended play, one-click actions, the score breakdown, the product adoption story, and the enriched buying committee
One account brief. Invented company, invented people, real layout.

The order is the whole design. The play sits above the evidence because a rep needs to act, and the evidence sits right below it because a rep who cannot audit the number will not trust it twice. Every point is traceable to a named signal. No black box.

The brief is not a dead end. Every one click action on it runs through MCP. A rep can push the brief into Claude with a question or a correction, "the champion moved to procurement, redo the play," and get a revised brief back with the reasoning updated. Or push the draft straight into Mixmax as a sequence step from the rep's own inbox, without opening another tool. The system did the reading. The rep reads the play, changes what they know better, and hits send. That last click is theirs and stays theirs.

What stays human here: whether a person is worth a conversation.

Close

Is this deal real?

Deal Confidence Score, coaching per rep, GTM University, conversation pulse.

The agents on this stage, in the order they run
01 · Conversation analyst
What has been said, and whether the champion went quiet
→
02 · Deal health analyst
One of eight verdicts per deal, with the dates that prove it
→
03 · Coaching analyst
The specific gap per rep, and the themes that hold across reps
→
04 · Comms agent
Writes the fields back and drafts the follow up
→
The output
A forecast call and a 1:1 where every number shows its reasoning

The Deal Confidence Score is the agent I would put in front of a VP Sales first, because the forecast is where a leader gets hurt. It never blends everything into one number. Activity, qualification and thread depth score separately, and the verdict is one of eight named states, from HEALTHY to GHOST, so a leader can see which one is dragging a deal down instead of squinting at a percentage.

Four checks do the work. Days dark is counted across every activity source, so a deal is GHOST only when the CRM, the inbox and the calendar are all cold, and the verdict has to show the dates that prove it. The qualification gap check compares the stage a deal claims against the fields that stage requires, and names the exact field that is missing, which is the sandbagging check. The thread check flags any deal with fewer than two people engaged in thirty days. And a commit creep watch flags deals that quietly moved from Commit to Best Case in the trailing two weeks, because that movement is the forecast telling on itself.

A deal confidence table of six open deals with a verdict, days dark and the reason for each, followed by three named next moves and a commit creep flag
Six open deals, one verdict each, and the next move named. Run before the forecast call.
What closes the gap. The suggested action is never "check in." It names the hole: get the economic buyer on a call before Friday, or move the close date now instead of finding out in the forecast review. A rep can argue with the read. Nobody argues with what it is reading.
Coaching, per rep

The coaching agent turns "who needs help" into a specific gap. It reads "completeness 14 percent, one of seven open deals, and the step missed most often is the decision dynamics field," where a manager would have written "needs work on methodology." It adds deal velocity against the rep's own median, win rate by segment with small samples labeled as small, and the share of the book going dark. Team themes only count when they hold across reps, so "three of five reps below target in mid market" is a theme and one bad quarter is not. It runs before the 1:1 and before the forecast call, and it knows what the rep called last week.

Coaching priorities for a week, with one rep as top priority, one strong rep to watch, and three team themes
Coaching priorities. A specific gap per rep, and team themes only where they hold across reps.
GTM University · The practice layer for the whole team

At Mixmax, major structural changes and turnover left me with two A players and mostly B players. The harder question was how to help the rest grow, and how to get new reps productive before another cycle of live deals went by. A sales method in a deck was not going to do that.

Knowledge became a course, then a conversation. We built the original university in Lovable. Product teams could upload what they knew; the system turned that knowledge into learning tracks, courses, and quizzes. That gave reps and CSMs a place to learn the product and the motion without waiting for a manager to repeat the same lesson.

The AI agents made practice spoken, not theoretical. ElevenLabs voice agents played the buyer in live discovery roleplays. Reps could practice out loud, handle questions and objections, and run the conversation again before facing a real customer. A roleplay and scoring layer sat on top of the bought tools. This was voice-to-voice rehearsal, not a chatbot worksheet.

Source
Product knowledge uploaded by the people who know it
Teach
Generated courses, quizzes, and structured learning tracks
Practice
ElevenLabs voice agents run live discovery roleplays
Coach
A scored attempt and a team conversation about what to improve

The people stayed in the loop. The agents ran the repetitions and scored the practice. Then the team met to discuss what they learned, and the manager coached the person, not just a score. That was the point: give a B player a path to stronger judgment and more useful practice, without pretending software can do the human part of leadership.

Screenshot of the original Mixmax University sign-in screen, showing structured learning tracks and AI-powered coaching
The original Mixmax University entry screen. GTM University is the name used here for the enablement build; the screenshot keeps its original branding. This is an entry screen, not a view of the roleplay itself.

The result. The broader onboarding and sales-excellence work reduced rep ramp time by about a third. That is an outcome of the program, not a claim that one agent caused it. The university was the practice layer: more reps could learn, rehearse, and get productive on a leaner team.

What stays human. A manager decides when someone is ready for a real buyer, listens to the calls, and helps them grow. The AI agents create practice and feedback. They do not replace trust or a coaching conversation.
Conversation pulse

Before a rep reaches out, the conversation agent answers what has already been said. Meeting timeline, reply tracking, the last positive signal, and whether the champion has gone quiet. It is the sixty second "where we left off" a rep needs walking into a call cold, and the champion drop off flag feeds straight into the deal verdict above.

What stays human here: the call, and the number a leader commits to.

Keep

Will they stay?

Onboarding milestones, renewal health, churn watch.

The agents on this stage, in the order they run
01 · Onboarding analyst
Day 30, 60 and 90, as named capabilities
→
02 · Product usage analyst
The engagement score, in features the customer recognizes
→
03 · Renewal health analyst
Renew or not, at what value, under what conditions
→
04 · Pattern analyst, churn mode
Last year's churn by cause, and who looks like it now
→
The output
A renewal verdict with the save play already in the CSM's task list

Retention went proactive when the same discipline got pointed at the installed base. Three agents cover the customer from signature to renewal, and the rule across all of them is that a verdict has to name the capability, the person and the date behind it, or it does not ship.

Onboarding, the first ninety days

Day 30, 60 and 90 milestones, each written as a named capability rather than "good activation," so the read looks like "first capability adopted day 12, second started day 18, the day 30 target not yet touched." A handoff score checks that the kickoff happened inside two weeks and that the deal context actually transferred instead of sitting in stale sales notes. A champion who goes quiet in the first thirty days is a louder flag than the same silence at day 200, so it is weighted that way. And a customer the fit score floored who has already adopted three capabilities gets moved into the expansion pipeline instead of written off.

Renewal health reads one customer at a time and returns a verdict a CSM can act on: renew or not, at what value, under what conditions. Product adoption, champion stability, support sentiment and any competitive signal feed it. Two rules shaped the design. No renewal verdict ships without a champion check, and if the champion left or has been silent past ninety days the confidence downgrades automatically instead of letting the usage numbers carry the call. And the adoption story is written in capabilities the customer would recognize, grouped as deeply used, established, emerging and untouched, because the untouched group is the expansion conversation.

A renewal health verdict for an invented account showing champion stability, the adoption story grouped by depth, commercial levers, and a sequenced save play
One renewal verdict. The champion check, the adoption story, the strongest lever, and the save play in order.
Churn watch

The pattern agent reads twelve months of churned customers and groups them into named causes: consolidation, layoff, vendor switch, product gap, champion left, acquisition. It refuses to call anything a pattern below five occurrences. Then it scans the active base for accounts that look like each cause and surfaces them with a confidence tag and the evidence behind it, so a CSM sees "consolidation pattern, team went from 22 seats to 14, activity down by half" months before the renewal conversation, not during it.

A churn watch showing twelve months of churn grouped by cause and three active accounts that match a churn pattern, each with a confidence tag and evidence
Churn watch. Last year's churn by cause, and the live accounts that look like it, with the confidence stated.

What stays human here: the save conversation.

Grow

What do we sell next?

The Expansion Score and the book of business.

The agents on this stage, in the order they run
01 · Product usage analyst
Beachhead health. Is the team we sold thriving
→
02 · Expansion score
Whitespace, beachhead, buying signals, and the gate
→
03 · Book of business analyst
The whole book in four bands, with the renewal queue
→
04 · Comms agent
Drafts the cross sell sequence for the named contact
→
The output
One team to open, one contact, and a draft waiting in the rep's inbox

We already scored who to land and how well they use the product. The Expansion Score is the third score, for a customer already won: which team do we sell into next, and is now the time. The idea underneath it is a distinction most expansion plans skip. More seats in a team we already sold is upsell. Selling a brand new team, the AEs when we only have CS, the SDRs when we only have AEs, is cross sell, and cross sell is where the real expansion lives. So the score is weighted to find the next team, not the next seat.

Four inputs, each traceable to a system you can open. Team whitespace from the CRM: how many teams and how many people are still untapped. Beachhead health from product analytics: the engagement score of the team we already sold, which is the proof and the reference. Buying signals in the unsold team: is someone there researching, signing up free, or hiring in numbers. And stakes, current contract size, used to rank and never to score. When a source is thin the score says so and flags the account as data thin. Nothing gets papered over with a guess.

Expand now
Untapped teams, a thriving beachhead, and buying signals in the next team. Run the cross sell play this week.
Land and expand
Healthy beachhead and clear whitespace, no live signal yet. Warm the next team.
Upsell only
Every team is already covered. The room is seats and depth, not a new team.
Fix first
Whitespace exists, but the team we sold is dormant. Score capped at 40. Save before you expand.
Dormant
Little whitespace, weak adoption. Park it until something changes.
The weights
Whitespace 40, beachhead health 25, buying signals 35. Stakes rank the list and never move the score.
The beachhead gate is the load bearing rule. You cannot cross sell a new team off a deployment that is dying, so a dormant or ghost active beachhead caps the score and forces the save first. Same discipline as the disqualify cap on the fit score. Above the gate, a next team engine ranks the unsold teams by in market signal, size and adjacency to the team we have, and hands the rep one team to open, its size, its signal, and a named contact.
An expansion score card for an invented customer showing the score, the expand now verdict, the four inputs and the next team to open
One expansion read. The score, the verdict, where each input came from, and the team to open next.
The book of business, on a Monday

The portfolio agent is what a CSM opens first. Every account in the book lands in one of four bands, healthy, watch, at risk or ghost, and every band carries the reasons that produced it. Open renewals sit in 90, 120 and 180 day queues, each with a verdict. A penetration view per product line shows adopted against total, and the largest gap is the biggest opportunity. A going dark detector pairs every account with falling active users to its contract value and renewal date. It closes with named next moves tied to specific accounts, because a rollup that ends in a chart is a rollup nobody acts on.

A book of business rollup with health bands, a renewal queue, accounts going dark, product penetration bars and named next moves
One book, Monday morning. Bands with reasons, the renewal queue, who is going dark, and the moves.

What stays human here: the ask.

The plumbing

What makes it a system and not a demo.

The refresh gate, the agent that watches the agents, the one that proposes its own changes, and the morning brief.

The agents on this stage, in the order they run
01 · Refresh orchestrator
Runs first. Full, partial, recycle, or skip
→
02 · The twenty analysts
Read, augment and write, off one canonical library
→
03 · QA agent
Reads the audit log and the overrides. Names the drift
→
04 · Evolution agent
Proposes the change as a pull request I can reject
→
The output
A morning brief, rep mode and leader mode, that people actually open

Twenty agents by the job they do. Every one of them reads from the same canonical library, and every one of them carries its own eval verdict.

Read
Prospecting, pipeline, deal confidence, renewals, onboarding, book of business, conversation
Augment
ICP, enrichment, pattern, coaching, strike-zone, expansion
Write
Comms
Meta
QA, evolution
Gating
Refresh orchestrator
Compose
The morning brief, rep mode and leader mode

Three things in it are worth more than the agent count.

A gate in front of the spend. A refresh orchestrator runs first on every expensive workflow and decides whether the artifact needs a full regeneration, a partial one, a recycle of the unchanged sections, or nothing at all because the underlying data has not moved. It cut roughly half the compute. Most AI cost problems are not model choice, they are regenerating things that did not change.

An agent whose job is watching the other agents. It reads the audit log and the override history and reports where scoring is drifting, where the CRM data is too thin to answer the question, and which outputs people quietly stopped opening. Every human override becomes a training signal instead of a shrug.

An agent that proposes changes to the system's own instructions as a pull request, which I review and merge or reject. The system can suggest how it should change. It cannot change itself.

And one workflow that decided whether any of it mattered. The suite composes into a single morning brief with two modes. Rep mode answers what should I work on today, with the risk flags, the hot accounts and the drafts already waiting. Leader mode answers what does my team need today, with the coaching priorities and the deals where the story and the data disagree.

It is the least clever piece on the page. A system people have to remember to open is a system people stop opening.

The harness

Why any of it can be trusted.

The part I would bring to a client first. Every agent above was graded before it shipped, and this is how.

An agent without an eval is an opinion.

Every agent on this page was built and deployed the same way, and this is the part that made it deployable. The hard part is not writing the prompt. It is knowing the thing you wrote will hold up on the hundredth run, in someone else's hands, on inputs you did not think of. Without that you cannot tell an agent that works from one that worked once, and you cannot deploy anything at scale.

BRIEF is the structure. Five blocks, and every prompt that has to run more than once gets all five.

B
Brief the goal. What this run has to produce, in one sentence, and who it is for.
R
Role. Who the model is being asked to be, and what it is expected to already know.
I
Inputs. What it reads, where that lives, and what to do when a field comes back empty.
E
Execution. The steps, in order, including the ones it is not allowed to skip.
F
Finish line. What a correct output looks like, written so you can answer yes or no against it.

The Finish line is the part most frameworks skip, and it is the one that makes everything else testable. Write it properly and you have not just written a prompt, you have written the test.

The harness runs that test. It scores every output two ways: structural checks that need no API call, and a second model grading the subjective requirements against the rubric. It reports a pass rate, a bar per criterion so you can see which single requirement is leaking, and a consistency score. It also runs the naive one line version of the same ask as a baseline, so the report shows what the structure is worth in points rather than in vibes. Consistency is the number that matters. An agent with a good average and poor consistency got lucky once.

An eval scorecard comparing a BRIEF structured prompt against the naive one line version across nine checks over five runs
The receipt on one prompt. BRIEF against the naive version, same model, same data, nine checks, five runs.
A grid of agent cards, each showing an approved four of four eval verdict and whether it is used inside a playbook
Shipped agents, each carrying its own verdict. Four of four means it cleared every dimension.

Every public agent and every playbook is scored automatically during the build, so nothing goes out unmeasured, and a failure breaks the build rather than logging a warning. Four dimensions: referential integrity, trigger accuracy, structure and completeness, and a user quality judge. That is what the four of four on each card means. The last judge run came back 114 pass, 2 warn, 0 fail.

The distance between an impressive demo and something a team actually trusts is almost entirely measurement, and almost nobody does it.

Part two

The personal builds

These are mine. No stakeholders, no roadmap, no one to blame. Which is exactly what makes them the honest test, because I am the one absorbing every defect the same day it ships.

Personal build

The content engine behind The Sales Operator

An idea goes in one end and something published comes out the other.

An idea goes in one end and something published comes out the other. The steps in between are run by agents I built for each step, rather than by me doing the steps.

The path. An idea gets drafted in voice, against a canon file that defines how the brand actually sounds, so the voice is a dependency rather than an instruction I retype. An art director agent then picks the one real photo or clip from my library that fits that post, or returns nothing, in which case a generated card wins instead. Nothing gets a stock image because a slot needed filling. Then it ships: LinkedIn through Buffer, the newsletter and the subscriber list through Ghost. No separate database holds a second copy of any of it, and there is no publish button anywhere. Every surface is git push to publish.

A promotional graphic for a live episode titled Your Signals Are Going Cold
One episode promo. The template catalog produces these through an API rather than me opening a design tool.

Long form gets cut down the same way. A recording goes in by URL, Descript transcribes it, the transcript comes back, and the short clips are pulled from that. It is asynchronous by design, so a long video never blocks the rest of the queue.

Documents are committed as content only. The current design shell is applied at serve time, which means every doc ever published inherits the current template automatically and none of them can drift. This page is one of them.

The piece I did not expect to matter: a sponsor landing page generator. Every sponsor gets their own page, built for them, carrying their brand and their own preview card, and it counts its own views so I know whether it was actually read. The commercial terms are the interesting part. The package and the price render verbatim from a config file and the model never touches them. Personalize the argument. Never personalize the numbers.

The guard rail that makes it safe to move fast. A content validator runs in continuous integration before anything can deploy, and it fails the build rather than warning me. It rejects an em dash. It rejects two metrics I retired from every receipt on the site. It rejects a precise forecast accuracy figure where the rule says publish an expectation floor. It rejects a playbook whose proof link does not resolve to a real system, and a skill referenced in a step that has no page behind it, because a broken proof is worse than no proof.

The bug that taught me the most was not in a model. My career numbers were hand typed into one place, hand typed again into the thing that was supposed to check them, and stored properly in a matrix file that was meant to be the authority over both. Three copies of one truth, two of them wrong and quietly drifting. Now the drafting side and the checking side are both derived from that file at read time, so editing one file moves both. Most of the AI reliability problems I have run into were data governance problems wearing a costume.

It is the least sophisticated thing on this page and the one that changed how I work the most, because it removed the reason not to publish.

Personal build

The headless site behind Build Better

No CMS, no database. One record per episode, every surface a read of it.

Build Better is the show. The site behind it has no CMS and no database. Every episode is a single record, and every surface the show needs is a projection of that one record, read live at request time. I push the record, the pages change. There is no rebuild and nothing to keep in sync, because there is only ever one copy.

Twenty five episodes are in it now. The record is not just a title and a description. It carries the topic and the one line the audience should leave with, the promise, the arc, the guests, the timeline, the receipts, the key docs, the sponsor fit, the casting goal, the target audience, and a status per section so I can see which parts of an episode are actually finished rather than trusting my memory of it.

Two of the surfaces are the ones that earned the build. Each episode generates a token gated prep page for the guest and a run of show page for the day, both drawn off the same record as the public page. Before this, the guest had a doc, the producer had a different doc, and the run of show was a third one written the night before. All three drifted from each other, and the one everybody actually opened on the day was usually the stalest.

The lesson generalizes past the show. The interesting problem in almost every content system is not authoring, it is that the same fact ends up living in four places with four owners. Making the record the only copy and every page a read of it is unglamorous and it is the thing that stopped the drift.

The show manager listing episodes with their status, air date and readiness
The show manager. One record per episode, and every surface reads from it.
Personal build

The household budget my family actually runs on

The smallest system here, with the least forgiving users.

The smallest system here and the one with the least forgiving users. It is a household budgeting app built on Lovable that my family runs our month on, with real accounts, real bills and real consequences when it is wrong.

The design decision that made it work is the unit. Most budgeting tools ask you to reconcile after the fact, which is why people abandon them in week three. This one is built around the paycheck. You enter each paycheck with its date, set the period the budget covers, and every recurring bill is expanded to each occurrence inside that window and grouped under the paycheck that funds it. So the question it answers is not what did I spend, it is what is already spoken for. Any bill can be overridden for a single session without changing the underlying record. Whatever is left gets allocated, and surplus is pushed at the smallest remaining debt.

Two things in it are not obvious from a screenshot. Every month is saved as a session, so past months load back for comparison rather than being overwritten, which is what turns a calculator into a record. And a task center tracks bill payments from previous sessions that were never confirmed, because the failure mode of every household budget is not a bad forecast, it is a record nobody closed the loop on.

It is also multi user with roles, which sounds like overkill for two people and is the entire reason it gets used. A budget one person maintains is a budget one person believes.

A household budget dashboard showing income against bills and surplus across saved months
Saved months compared against each other, which is what turns a calculator into a record.
Last page

What the two halves have in common

  1. One source of truth, read at run time. Not restated in a prompt, not copied into a checker. The moment a fact lives in two places it is already wrong in one of them.
  2. Failure has to be legible. Every one of these can stop, and when it stops it writes down why in language somebody can act on. A system that fails silently is worse than one that does not run.
  3. Show the work under the answer. The play sits on top, the evidence sits directly beneath it. People do not adopt a recommendation they cannot audit, and they only need to check it a few times before they stop checking.
  4. The human keeps the irreversible actions. Nothing sends, publishes, commits, or commits me. The systems surface what is due and what the state is. They are not allowed to take the step that cannot be taken back.

The honest limits

I am not an engineer. I read code, I direct it, I test it harder than most people would enjoy, and I know where I am out of my depth. What is above is the work of someone who kept refusing to accept an output he could not verify, not someone who could have written it from a blank file.

The things I have deliberately not automated are the ones that cost the most when they are wrong. What a number means. Whether a person is worth a conversation. Anything a customer reads with my name on it. That line has moved a few times. It has never disappeared.

A group of people towing a friendly giant robot on a wooden wagon

The human tows the giant. Agency pulls the load.

Read it as one page →thesalesoperator.aiLinkedIn