← All work

Job requests become drafted bookings. A person still says yes.

A traffic management contractor books crews, vehicles and permits in Traffio all day. This assistant reads the job request, builds the booking, runs the checks a coordinator would run by hand, and waits. It runs their live account every day, and the model never writes to Traffio.

AI assistantTraffic managementIn production

Three hours of checking dressed up as data entry.

The typing was never the cost

Repeat work is not re-keyed. The team copies the previous booking across in Traffio and then spends the time making it right — the dates have moved, the crew has changed, the site is somewhere else. Checking that against everything else already booked for that day is where the morning goes.

New jobs arrive as prose

A job request turns up as an email that usually says little more than to refer to the attached booking form. The form is the request. Someone reads the PDF, works out the client, the project, the times and the locations, and keys all of it in by hand.

Clashes surface late

A traffic controller already out on another job that day, someone on leave, a crew sent out without a leader. Each one is caught by whoever happens to notice, and the ones nobody notices are found on the morning of the job.

It books the job, and everything the job drags behind it.

A booking is never only a booking. It is a crew, a permit, a scheme, a cordon and a line on somebody's pay. All of it runs through the same conversation.

Jobs and standing work

One job, a repeat of last week's, a date range, or a whole series. Standing work is built by reading the previous booking and carrying it forward, so the pattern comes from the account rather than from anybody's memory of it.

Crew and rosters

Who is available, who usually works that project, who is already out. It drafts the roster, takes a revision, and applies it. It also answers the two questions asked every morning: who is working today, and which jobs are still short.

Permits

Permits drafted against the right issuing authority, including the road-authority forms, with the supporting file attached to the permit rather than left in somebody's downloads folder.

Schemes and cordons

Traffic guidance schemes counted per work location rather than per job, and parking cordons raised at draft time. Where nobody is already out, a cordon job is drafted alongside the main one.

Drive time

Drive time recorded against the job, reported in the shape payroll needs, and marked off once it has been dealt with.

The daily questions

What is on tomorrow, which project this job belongs to, who the contact is, whether the account is behaving. Asked in a sentence rather than hunted through screens.

The model never writes

The AI does two jobs. It reads unstructured email on the way in, and it holds the approval conversation on the way out. Everything between those two points is plain code with 1,145 tests behind it.

The language model produces a draft object. One module touches the write endpoints, only after a person has approved, and the read tools are GET-only by construction. The assistant also never retypes a value it can fetch — a purchase order read from the field is the purchase order, where one copied through a model is a good guess.

That shape is testable before it ever reaches a client, and it fails in ways you can explain. The client name didn't match, so it asked.

Checked before you see the draft

Already out

Booked on another job the same day

Unavailable

Leave, or marked unavailable

Leader rules

Crew size against who is qualified to lead it

Approval status

Whether the person is cleared for the client

Client blocklist

People that client has asked not to see again

Cordons and schemes

Quantity proposed with the addresses counted

Every write comes in a pair

Nothing is created in one step. A job, a roster, a permit, a crew change, a whole repeating series — each has a tool that drafts it and a separate tool that commits it, with a check and a revise sitting in between. The draft is a real object you can read, argue with and send back.

That is the approval gate built into the shape of the thing rather than written into a prompt and hoped for. An assistant with only the drafting half of the pair is an assistant that physically cannot write to the account.

Draft

Built from the previous booking or from the request. Reads only.

Check and revise

Clashes, leader rules, schemes and cordons. Send it back and it rebuilds.

Apply

A separate tool, after a yes. Reads the target, writes, verifies.

Read it, draft it, check it, then ask.

Read what came in

The assistant sits inside the AI tool the business already uses, so the job request and its booking form arrive with it. The form is the request, and the body rarely says more than to go and look at it.

Build the draft

Standing work is built from the previous booking, its requirement lines and its crew, all read back through the API. A new job is built from the text of the request. Around 87% of their bookings are standing work, so most of this is pattern matching rather than language.

Run the checks

Leave and unavailability, anyone already booked elsewhere that day, crew-size leader rules, approval status, client blocklist. Scheme quantities and cordons are proposed with the addresses they were counted from, so the number can be argued with.

Ask, then write

The draft and everything that failed a check go back in the conversation. On a yes, one module commits it. Every write reads the target first and verifies after, and the result is a confirmed booking rather than something parked for later.

A week of standing work in one go.

Standing work does not arrive one job at a time, so it is not drafted one job at a time. A range of dates or a whole series goes in as one instruction, and the assistant builds every job in it with every check run against the account as it stands. Thirteen jobs, fully checked, take 6.3 seconds.

The coordinator reads the batch, sends back the ones that are wrong, and confirms the rest. The work that used to be a morning of copying and checking is now a review.

What it won't do.

It won't decide who works

A clash is flagged, never resolved. The assistant names who is already out, which job has them, and what else is available that day, and the coordinator makes the call. The system does the legwork of the decision.

It won't push a number it can't show you

Where it proposes a quantity — cordons, traffic guidance schemes — it reports what it counted and where. On the counts measured so far it matches a person exactly 64% of the time and lands within one 97% of the time, which is why the addresses come with it.

It gets better with onboarding

Accuracy tracks the rules it has been given. A vague request means more questions back to the coordinator, and the questions thin out as the rules accumulate. The first weeks are a ramp.

Built with

PythonModel Context ProtocolTraffio APICloud Runpytest

Forty-one tools, hosted, and reached through the Model Context Protocol, which is the open standard for handing an AI assistant a set of tools. It runs inside the assistant the business already pays for, so there is no new subscription and no new app for a coordinator to learn. The client owns the code.

Got a system your team drives all day by hand?

If it has an API, an assistant can do the reading, the drafting and the checking, and leave the deciding with the person who should be doing it. Start with a free Workflow Review and I'll tell you whether yours is worth building.

Let's talk