AI Builder Day · Track 05 Give Yourself a Promotion

10 2
FTEs at the same throughput
$400–600K
saved per year
~80 hrs/day
human time reclaimed
100%
same packet quality & legal compliance

From clerk to clerkless.

I built v3 of this system inside Clicklease and got promoted for it.
v4 is what the system looks like when you let it finish the job.

Aug 2025
Title-and-Registration Clerk
Hired at Clicklease. Spent the first month transcribing MCOs into Salesforce by hand, eight hours a day.
Dec 2025
Automation Support Specialist
Promoted four months in — because v3 of this system shipped to my own team and started clearing the queue.
May 2026
Building v4 — onstage
The version that closes the loop on MCO ingestion + customer pull. What you're about to see.
Try the live demo → GitHub repo ↗

Vision: claude-opus-4-7 Structured output (json_schema) Confidence-flagged Async via Microsoft Teams

How we get to 10 → 2

The math, in one table.

Even if every clerk takes a full 10 minutes to review the flagged fields and sign the packet — a conservative number for an experienced reviewer working over Microsoft Teams:

TodayWith Clerkless + TeamsSaved
MCOs / day100100
Human-min / packet60–90~10 (review only)50–80 min
Human-hr / day100–150~1783–133 hr/day
FTEs required10 (at peak)~28 FTEs redeployable
Annual cost saved~$400K – $600K

Calculate it for your team

The headline applies to any team running a paperwork queue. Plug in your numbers — average minutes per packet today, your team size, your loaded cost per FTE — and watch the math redo itself.

human-hr saved per day
FTEs redeployable
saved per year
days to pay back compute cost

Compute cost basis: ~$0.008 per MCO on Sonnet 4.6 vision (typical), plus ~$0.0001 in Lambda invocation. Roughly $1/day at 100 MCOs.

The problem

Our team gets 100 MCOs a day.

Every trailer Clicklease leases — gooseneck flatbeds, dump trailers, enclosed cargo, horse trailers, equipment trailers — starts with a Manufacturer's Certificate of Origin. Faxed, hand-stamped, often-skewed. It lists the VIN, year, make, model, GVWR, axles, and the originating dealer. Before the lessee can title the trailer in their state, a clerk has to read the MCO, transcribe every field into Salesforce, look up the lease record, pick the right state form (50 states, 3 fee regimes — and trailers have their own fee tables in most of them), fill it in, and ship it.

100
MCOs per day inbound
10
people to clear them
5–10
packets per clerk per day
60–90
minutes per packet, end-to-end
The math is brutal: 100 packets × 60–90 minutes = 6,000 to 9,000 minutes of human time every day — that's 100 to 150 person-hours, the output of 12 to 19 FTEs working full days back-to-back. The team has 10 people. That's why volume spikes get absorbed by working through lunch and why one bad week means the queue takes a month to recover.

Where the time actually goes

  1. Read the MCO. Squint at a faxed scan. Note the VIN, year, make, model, MSRP, dealer name and address.
  2. Transcribe by hand into the lease management system. One transposed character on a 17-character VIN means the title prints wrong, comes back from the DMV in 3 weeks, and gets routed to a senior clerk to chase.
  3. Look up the customer's lease. Copy fields into the title application.
  4. Pick the right state form. Utah TC-656? California REG 343? Texas 130-U? Every state has its own form, its own fee math, its own edge cases. 50 states, 3 fee regimes, hundreds of conditional fields.
  5. Calculate fees. Title, registration, lien recording, sales/use tax. Different rules per state, different rules per county within California, and a different rate every time the legislature changes the budget.
  6. Print, attach, FedEx, log. Then the dealer follow-ups, customer questions, missing-paperwork chasing.

The solution

Three steps the clerk supervises.

Clerkless compresses the mechanical 90% of that workflow into seconds, and routes only the parts that actually require a human's judgment back to the clerk.

1

Drop the MCO image.

A vision model extracts every field — VIN, year, make, model, color, fuel type, MSRP, dealer name, dealer address — as structured JSON, with a confidence score per field.

2

Customer auto-pulls.

The system queries the lease database by VIN, returns the customer record (name, license, address, lease terms, payment), and routes mismatches to review.

3

State packet renders.

The customer's garaging state picks the template (TC-656 / REG 343 / etc.). Fees and taxes calculate from per-state rules. The packet is laid out exactly like the real DMV form. Clerk reviews, signs, ships.

What's deliberately not autopilot: The legal sign-off. Title and registration paperwork binds Clicklease as the lienholder; a human reviewer catches the model's mistakes before they become a 6-week DMV correction loop. That's the correct depth — not less, not more.

When the model isn't sure, it asks.

Anything below the confidence threshold (currently 85%) is flagged yellow with a "⚠ needs confirmation" pill and an inline editor. The "Render Packet" button stays disabled until the clerk has confirmed every flagged field. The model can return "Unknown" with 10% confidence rather than gambling — exactly the behavior you want from a system that ships into a regulated workflow.

Live demo

Drop in a synthetic MCO. Watch the pipeline run.

All three samples below are synthetic — no real Clicklease customer data, no real MCO scans. The vision model is claude-sonnet-4-6 via the Anthropic API. Same code path you'd ship into production.

mco-clean.png — Maria Lopez (Utah)
2024 Big Tex 22GN-40+5 gooseneck flatbed, $52,450 MSRP. Clean scan, all fields ≥97%.
mco-bad.png — same trailer, degraded scan
Skewed, low-contrast, dealer name blacked out. Triggers the question flow.
mco-california.png — Marcus Hayes (California)
2024 Big Tex 16GX heavy-duty dump, $28,990. Multi-state path; CA REG 343 with use tax.
mco-handwritten.png — Daniel Chen (Utah)
2024 PJ Trailers F8 24+5, $23,950. Small rural dealer hand-filled the dealer block in felt-tip — mixed printed-and-handwritten extraction.
3 states active, 3 more provisioned. UT (TC-656) · CA (REG 343) · TX (130-U) all rendering live. NV / AZ / ID rules pre-loaded in /admin/ — flip Active when their templates land.
Drop an MCO image here
or · PNG or JPEG · up to 6 MB
Try samples/mco-clean.png for the clean run, samples/mco-bad.png for the exception path.
End-to-end ~$0.008 / MCO 00:00.00

In Salesforce

This isn't a side tool. It lives inside the CRM.

Clicklease's title-and-registration team already works inside Salesforce all day. Production Clerkless slots in as a Lightning Web Component on the Equipment record page, calls out to the Lambda via a Named Credential, and writes the rendered packet back as a ContentVersion attached to the record.

The data flow

View technical depth — data flow diagram & Apex sketch
  ┌──────────────────────────────────────────────────────────────────────┐
  │  Salesforce Equipment record                                         │
  │  ┌────────────────────────────────────────────────────────────────┐  │
  │  │  <c-clerkless-wizard>  (Lightning Web Component)              │  │
  │  │    [ Drop MCO ]   [ Extract ]   [ Review ]   [ Render Packet ] │  │
  │  └────────────────────────────────────────────────────────────────┘  │
  └──────────────┬─────────────────────────────────────┬─────────────────┘
                 │  Apex callout via Named Credential  │  ContentVersion
                 │     CLERKLESS_API                   │  written back
                 ▼                                     ▲
  ┌──────────────────────────┐                ┌────────────────────────┐
  │  Clerkless Lambda (AWS)  │                │  ContentDocument       │
  │   POST /api/extract      │ ─── reads ──▶  │  Packet PDF + FedEx    │
  │   POST /api/packet       │                │  label both attached   │
  │   POST /api/ship         │                │  to Equipment record   │
  └────────┬─────────────────┘                └────────────────────────┘
           │
           ├── Anthropic API (vision extract from MCO)
           ├── Lease__c (lessee lookup by VIN)
           ├── Dealer__c (originating dealer normalization)
           ├── State_Rule__c (fee + tax math + carrier preference per state)
           └── FedEx Ship Manager API (label PDF, dropped on printer queue)
    

Salesforce objects we read from

Account
Name
BillingAddress
Phone
Email__c
The lessee. Mapped to the customer block on the title application.
Equipment__c
VIN__c
Year__c
Make__c
Model__c
Color__c
MSRP__c
The trailer. Pre-populated from MCO extraction; clerk verifies.
Lease__c
Lessee__c (lookup → Account)
Equipment__c (master-detail)
Start_Date__c
Term_Months__c
Monthly_Payment__c
The lease record. Drives the lessor/lessee/lien block on the form.
Dealer__c
Name
License_Number__c
Address__c
Default_State__c
Originating dealer. Resolves & normalizes the OCR'd dealer name.
State_Rule__c the magic
State_Code__c (UT, CA, …)
Form_Code__c (TC-656, REG 343, …)
Fee_Regime__c (Call-Or-Email · Base-Plus · Choice-By-Trailer-Type)
Title_Fee__c
Registration_Formula__c
Sales_Tax_Rate__c
District_Tax_Default__c
Required_Fields__c (multipicklist)
Packet_Template_Id__c
Preferred_Carrier__c (FedEx Overnight · FedEx 2Day · USPS Certified)
Return_Receipt_Required__c (boolean)
One record per state. Owned by the T&R team — not by engineering. When Utah raises the title fee from $6 to $8, the team flips a number on a record; no deploy required.

Why State_Rule__c is the load-bearing piece

Fifty states, three fee regimes, dozens of edge cases — that's not code, that's configuration. One record per state. Putting the rules in Salesforce means:

  • The T&R team owns it. Tax-rate changes happen on a record, not in a deploy. When Utah raises the title fee in July, an ops lead opens a record and types 8.00.
  • Audit trail comes for free. Salesforce field history tracks every rule change with timestamp + actor — exactly the audit a state DMV examiner would ask to see.
  • The Lambda stays stateless. It pulls the state rule on every render, so a config change is visible on the next packet without redeploying anything.
  • State rollout is just data. Adding Texas means inserting one State_Rule__c record. The Handlebars template for TX 130-U is the only code touch.

Apex sketch

@AuraEnabled(cacheable=false)
public static String generatePacket(Id equipmentId) {
    Equipment__c eq = [
        SELECT Id, VIN__c, Year__c, Make__c, Model__c, Color__c, MSRP__c,
               (SELECT Lessee__r.Name, Lessee__r.BillingState,
                       Start_Date__c, Term_Months__c, Monthly_Payment__c
                FROM Leases__r LIMIT 1)
        FROM Equipment__c
        WHERE Id = :equipmentId
    ];
    Lease__c lease = eq.Leases__r[0];
    State_Rule__c rule = [
        SELECT Form_Code__c, Title_Fee__c, Registration_Formula__c,
               Sales_Tax_Rate__c, Packet_Template_Id__c
        FROM State_Rule__c
        WHERE State_Code__c = :lease.Lessee__r.BillingState
        LIMIT 1
    ];

    HttpRequest req = new HttpRequest();
    req.setEndpoint('callout:CLERKLESS_API/api/packet');   // Named Credential
    req.setMethod('POST');
    req.setHeader('Content-Type', 'application/json');
    req.setBody(JSON.serialize(new PacketRequest(eq, lease, rule)));

    HttpResponse res = new Http().send(req);
    // Write the returned PDF as a ContentVersion attached to the Equipment record
    return ContentVersionService.attach(equipmentId, 'TC-' + eq.VIN__c + '.pdf', res.getBody());
}

That's it. ~30 lines of Apex, one Named Credential, one LWC, the existing State_Rule__c records the team already maintains for the current TITAN system. The Lambda doesn't change between Clicklease and any other equipment-finance shop running the same pattern — trailers, food trucks, generators, lifts.

The async upgrade

The clerk doesn't have to be at the screen.

The version of Clerkless you saw above blocks until a human clicks Confirm on every flagged field. That works when the clerk is at their desk. But real T&R work is interrupted by phone calls, dealer visits, and customer escalations — the clerk is rarely sitting in front of the queue waiting on the model. So we make the flag-and-wait flow asynchronous over Microsoft Teams.

What changes when the model isn't sure

  1. Lambda extracts the MCO as before. Three fields come back below threshold.
  2. Instead of blocking, the Lambda posts an Adaptive Card to Teams via incoming webhook to the clerk on rotation. The card shows the MCO image, the three flagged fields with the model's best guess, and Confirm/Edit/Reject buttons.
  3. Clerk gets the ping on phone or laptop. Reviews in 60–90 seconds, taps Confirm. The Teams card POSTs back to a Lambda webhook handler with the corrected values.
  4. Lambda renders the packet with the clerk's confirmed values, attaches it to the Equipment record in Salesforce, and posts a "✓ Packet ready" follow-up Teams message with the artifact link.
  5. FedEx label fires automatically. Same Lambda calls the FedEx Ship Manager API with the lessee's garaging address + the right service level for that state's DMV (overnight for CA, 2Day for UT, certified-mail-with-return-receipt for the few states that require it — all driven by State_Rule__c.preferred_carrier). The label PDF gets dropped on the printer queue and attached to the same Equipment record. Clerk never touches paper.
  6. If no response in 15 minutes — escalation rules in State_Rule__c kick in. Either it routes to a backup clerk, or the packet sits in a "Waiting on review" queue with an SLA timer.
This is the part that turns "fast tool" into "actually replaces the queue." The clerk's job becomes a five-minute review tax sprinkled across their day, not a 60–90-minute focused-attention block per packet. Same throughput, fraction of the cognitive load.

The clerk's remaining job, in two steps

1

Sign the packet.

The clerk reviews the AI-rendered TC-656 / REG 343 / 130-U onscreen, confirms the math, signs it. The legal-compliance review they should have been doing all along — and now have time for.

2

Drop the box in the FedEx bin.

Packet, MCO, supporting docs, FedEx label — all printed and bundled by the system. The clerk physically moves the package from the desk to the pickup bin. That's it.

Between MCO arrival and FedEx pickup, everything is automated. The clerk contributes the two things only a human can contribute: a legal signature and physical handling of paper.

The math, redone with realistic clerk time

Even if every clerk takes a full 10 minutes to review the flagged fields and sign the packet (a conservative number for an experienced reviewer):

TodayWith Clerkless + TeamsSaved
MCOs / day 100 100
Human-min / packet 60–90 ~10 (review only) 50–80 min
Human-hr / day 100–150 ~17 83–133 hr/day
FTEs required 10 (at peak) ~2 8 FTEs redeployable
Annual cost saved ~$400K – $600K

At fully-loaded clerk cost of $50K–$75K (salary + benefits + overhead). Conservative; doesn't count the downstream cost of DMV correction loops or the customer-experience cost of titles that come back wrong.

Beyond the MCO

Same flag-and-confirm pattern. Second document type.

The MCO is the hard input on the dealer side. On the customer side, the driver's license is the equivalent — and it's where most title packets actually come back wrong. The DL on file in Salesforce was captured at lease origination; by the time the title application ships, the lessee may have moved, renewed their license, gotten married and changed their name, or had their address transposed by an intake agent.

Clerkless treats the DL exactly like the MCO: vision extraction → compare to the Salesforce record of truth → flag every mismatch for the clerk to confirm via Teams.

What conflicts get flagged

Name
SalesforceMaria Lopez
DLMaría Elena Lopez
Likely the same person; DL has middle name + accent. Clerk confirms which spelling goes on the title.
Address
Salesforce412 Vine Street, SLC, UT 84102
DL415 Vine Street, SLC, UT 84102
House number off by 3. Move? Typo? Clerk decides whether to update SF or override the DL.
Date of Birth
Salesforce1987-03-14
DL1987-04-13
Month/day swap — classic intake transposition. The clerk knows: DL is law, SF gets corrected.
License Number
SalesforceUT-188372912
DLUT-188377912
One digit different — DL was renewed since lease origination. SF is stale; clerk authorizes the update.
Why this matters for the FTE math: DL conflicts are the second most common reason packets come back from the DMV. Catching them at submission time instead of three weeks later is the difference between a 5-minute review and a 45-minute correction loop.

Same Teams card, different fields

The clerk gets a single Adaptive Card per packet — MCO flags and DL conflicts in the same card. They review once, confirm once, the packet renders with both the model's MCO extraction and the human-vetted DL data baked in. One review, two documents resolved.

The control plane

Where the team actually works.

The clerk-facing piece is the in-Salesforce wizard. The ops-facing piece is the Clerkless management UI: a queue view of every packet in flight and an editable table of state rules. Both views run on the same Cloudflare Pages origin as the demo.

Two views, one job each

Deals Queue

Every packet in flight, with status (Extracted → Awaiting Review → Rendered → Filed). Filters by state, clerk, status, age. Click any row → see the MCO image, the extraction, the customer record, the rendered packet. The same SLA timer that fires the Teams escalation lives here.

  • Real-time status across all 100/day
  • Reassign to backup clerk one click
  • Re-render packet if a State_Rule__c changed mid-flight

State Rules Editor

One row per state. The T&R lead opens it, sees Utah at $6.00 title fee + 6.85% combined sales tax, types a new value, clicks save. Next packet that renders for a Utah lessee picks up the new rule. No deploy. No engineering ticket. No three-week wait.

  • Edit fees, tax rates, formulas, packet template
  • Field history shows who changed what when
  • Add new states by inserting a row — TX, NV, AZ, etc.

The close

10 → 2.

Same hundred MCOs a day. Same packet quality. Same legal compliance. Eight people on this team can do something else now — dealer onboarding, customer escalations, the exception cases the model flags. The work that actually justifies their salary instead of the work the company is paying for because there's nobody else to do it.

The whole pattern — vision-extract → entity-pull → template-render → human-in-the-loop review over Teams — generalizes. The playbook is in PLAYBOOK.md. Pick the queue-shaped slice of your own job and follow it. The build itself is a weekend.

Caleb Mason · Automation Support Specialist, Clicklease · Title-and-Registration Clerk, Aug–Dec 2025 · caleb@themasons.us

Initializing…