AI Adoption GuideConstructionMobilize
Subcontractor Compliance Chasing Agent
Agentic system tracks missing insurances, SWMS, and ITPs per subcontractor and sends automated chasers until resolved.
Construction processBidAwardPlanMobilizeBuildInspectHandoverClose
By Don, DoneThat’s AI coach · updated
Read the register before you chase
A chase is only valid when the mobilisation register already has a row for that subcontractor and that artefact, and that row is empty, expired, or mismatched. If there is no row, the agent sends nothing. Empty stays empty. Do not invent a missing insurance because every trade supposedly needs public liability. That is a fabricated gap, not a quality outcome.
The agent watches insurance certificates, Safe Work Method Statements (SWMS), and Inspection and Test Plans (ITPs) against the package list already held in project document control. Platforms in the Procore or Autodesk class commonly host that list. The agent does not decide who may enter site and does not rewrite the contract. It produces a chase with a cite: package, artefact, register field, and the last file seen, if any.
A coordinator should follow the cite and see the same blank or stale cell. If they cannot, do not send.
This is the paper trail before a package starts. Person-level tickets sit in worker competency document verification. Crew mix on people already inducted sits in deployed workforce skills gap analysis. Do not merge those into one outstanding-docs flag.
What missing means for insurance, SWMS, and ITP
Treat each artefact as its own rule. A single outstanding-docs bucket hides which hold is real.
Insurance is missing when the row for that legal entity and cover type has no current file, or the file expires before planned package start. Cover types are only those on your contract schedule. If the schedule has no row for a given cover, the agent must not add one. A blank schedule is a question for commercial (should this entity be on the register?), not a prompt to chase certificates from memory.
SWMS is missing when the package activity has no linked SWMS, or the linked SWMS does not name that activity, site, and principal contractor as your procedure requires. Cite the activity line and the SWMS register ID. Do not rewrite the method or score residual risk. That review starts after a file exists.
ITP is missing when the plan for the specified lot or hold-point set is absent from the quality register, or the revision on file is not the revision in the specification or approved submittal. Match document to clause the same way as a submittal spec compliance check. If the spec does not call an ITP for that lot, do not chase one.
Emit only rows marked required where the file is absent, expired, or the wrong revision. Unreviewed is not missing.
Send a chase that cites the row
Address the subcontractor's nominated commercial or HSE contact and copy your package owner. Each chase must include the package or work lot ID, the legal entity name from the register, the artefact type and exact field, and a cite (system, project, register, row ID, time of last successful read). If a file exists but fails the rule, name that file and its date. Never say nothing is uploaded when something is. Resolved means a current file in that row accepted by a named reviewer on your side, not an attachment left in an email thread. State the hold in procedural terms: this artefact stays held until a coordinator clears it. The chase is not a site ban, a default, or a demobilise direction.
Prefer one artefact per chase. A bundled send-all-outstanding mail hides the item that blocks start and is hard to stop when only some files land.
Illustrative path. Package 3.2, hydraulic services, entity Northside Hydraulics Pty Ltd. Public liability is on file and current through planned start. The SWMS register has a row for hot work on an occupied roof, Level 4, with no file. The ITP register requires ITP-HYD-04 revision C per the approved submittal; revision B is what is linked. The agent sends two chases. It does not mention public liability. It cites SWMS row HW-L4-03 as empty and ITP-HYD-04 as revision B against required C. The coordinator still decides whether the SWMS hold delays the whole package or only the hot-work task. The agent does not invent a workers compensation gap if that row is not on this entity's schedule.
Write the chase ID back onto the register row so the next cycle sees an open chase and does not stack the same mail.
A person lifts the hold; the agent does not
The agent may recommend a hold. Only a person releases it.
The coordinator or nominated HSE or quality reviewer opens the new file, confirms it matches the cited row, and marks the row current. That artefact hold then drops. If insurance is current and the SWMS is still empty, only the SWMS hold remains. Three chases sent is not a ban. Gate access, induction, and right-to-work are separate controls.
If the subcontractor uploads into the project workspace (often a Procore-class or Autodesk-class document control project) while a chase is in flight, the next register read should see the file and suppress a repeat. If the integration lags, wait for a re-read that still shows empty before sending again. A second mail claiming the SWMS is missing after the PDF is already in the folder trains people to ignore the next chase.
When a file is present but wrong (insured name mismatch, SWMS that skips the activity, ITP missing a hold point), chase a review comment and cite the file you have. Set the row to submitted, under review, or rejected with comment. The missing-artefact template is false once the file exists.
Put open artefact holds on the lookahead as constraints, the same class of signal as a lookahead constraint scan. The signal is that this document hold is open, not that the company is banned. The agent does not move the start date.
Failure modes that turn a chase into noise
Chasing a file already uploaded happens when the agent keys off email attachments, a side spreadsheet, or a folder name instead of the live register row, or when it reads a stale snapshot. Bind every chase to the row ID. If the row has a file and a current date, do not chase it as missing. If you need a better file, say so and cite the file that is there.
Treating a chase as a site ban happens when the wording says the crew is not permitted on site until documents arrive. That turns a quality hold into an access decision the agent is not allowed to make. Site access sits with induction, permits, and the superintendent. Say the package or activity remains document-held and that a named person will release that hold. If someone later refuses the gate, record that as a human instruction, separately.
Sending the same email after the document is on file usually means writeback failed: the upload never updated the row, the chase ID was not stored, or the send job does not check that the chase is still open and the row is still not current. Fix the loop before adding reminder intensity. Extra mail on a closed gap is a defect.
A quieter error sits under all three: running the agent when the register has no row. No row means this system of record has not required the artefact. Do not backfill from another project or from a vendor default checklist. Ask commercial, add the row on purpose if the contract needs it, then chase. Until the row exists, silence is the correct output.
An auditor should see, for each required insurance, SWMS, and ITP row, either a current file, an open chase that points at that row, or an explicit human decision that the row is not required. They should never see a ban nobody issued, an insurance gap nobody recorded, or a reminder that outlived the upload.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first