Classification, addresses, documents, support — the four things that burn the most hours in freight are already handled by AI, running on live volume. But in freight, working is only the baseline: an invented NMFC code is a rebill, a missed hazmat is a fine or worse. So every one of them carries a brake: choose from real data, never fabricate, hand back when unsure.
The code comes from an indexed library, not from the model — you can check it against the carrier.
It flags hazardous goods and asks for a UN number and MSDS. This is the dividing line — an AI built to look capable would have just handed you a code.
Type a commodity in plain language and get candidate codes, the resulting class, and the reasoning. Misclassify once and the carrier reprices the load — this is where seasoned staff spend their judgement.
Leash: it may only pick from codes that exist in our indexed library — never generate one. Low confidence is flagged for human review.
Customers routinely book lithium batteries and power stations as ordinary freight, not knowing they are hazardous. The system catches it before classification and routes it to Class 9 / UN3480/3481.
Leash: here the correct behaviour is to refuse. No self-serve code, and a UN number plus MSDS required — an undeclared hazmat does not cost a rebill, it costs fines, refusal, or an incident.
Customers send a blob — street, contact, phone, all mixed. Paste it in and it comes back as structured fields, pickup and delivery separated in one pass.
Leash: parsing only. Residential vs commercial is decided by the carrier API, not the model — and a human confirms before the order is placed.
A drayage delivery order carries a lot of scattered fields — bill of lading, vessel, ports, ETD/ETA, pieces, weight, CBM, multiple containers. Paste the text and the form fills itself.
Leash: it fills the form, it does not submit. Ops confirms first — one wrong container digit sends a truck to the wrong terminal.
"Where is my shipment?" "When does it deliver?" — these dominate the support queue, and the answer is already in the system.
Leash: read-only, scoped to that customer's own shipments, grounded in system facts. No invented promises, no delivery guarantees. Data is redacted to the customer view — cost and markup never reach the model. Anything uncertain goes to a human.
A language model will happily complete a plausible-looking code. Carriers bill against real ones — the moment it invents, the rebill is already in motion. So we retrieve from the real library first, then let the model choose among what actually exists.
Every one of them carries a confidence check and a human hand-off. The system would rather say "not sure, please confirm" than hand you something that sounds certain and is guessed.
Order data is redacted to the customer view before it reaches the model. Cost, markup and upstream source never enter the prompt. If you run an agent network, this one matters — adding AI does not leak your buy rate.
Start with the step that burns the most hours and costs the most when wrong. That is where it belongs.