Send each new carrier one checklist, collect the documents in a single shared folder, have AI read each file into a tracker row, and let it flag mismatches in names, dates and coverage amounts. Then it sends reminder emails before certificates expire. A named person still approves the carrier.
Brokers lose days to carriers who send half a packet, a certificate that expired last month or a tax form under a different company name. Most of that is chasing and reading, which is where AI saves hours. What it must not do is decide, because a missed mismatch is how freight goes missing.
The packet as a numbered list carriers can finish
A packet gets abandoned when it asks for too much or is vague about what counts. Fix the list first, then number each item and say what a good copy looks like.
- Carrier profile. Legal name, trading name, operating-authority number, safety registration number, address, years in business, main contact, dispatch phone and email, fleet size and equipment types.
- Signed carrier agreement. Your standard contract, signed by someone with authority, dated, with the legal name matching the profile.
- Tax form. Completed, signed and with the same legal name as the profile.
- Certificate of insurance. Issued by the insurer or its agent, showing your company as certificate holder, with policy numbers, effective and expiry dates, and the coverage limits you require.
- Proof of operating authority. A current record or letter that shows the authority is active, plus the date you checked it.
- Payment details. Who gets paid, how and where. If a factoring company is involved, its notice of assignment and a release letter if needed.
- Safety and compliance contact. The person who answers questions about drivers, accidents and cargo claims.
Add or remove lines to suit your risk rules. If you handle temperature-controlled or high-value freight, ask your insurer which extra cover and evidence to require, and write it into the list. A reefer breakdown endorsement is one example of a line that only applies to some loads.
A tracker with one row per carrier and one column per document
Everything else depends on a tracker you can sort. A spreadsheet works. Each row is a carrier; each document has a status column and a date column. Add three more: "approved by", "approval date" and "next action".
| Carrier (illustrative) | Agreement | Tax form | Insurance expiry | Authority checked | Flags | Next action |
|---|---|---|---|---|---|---|
| Carrier A, 14 trucks | Signed 3 Nov | Received | 19 Feb | 3 Nov | None | Remind 20 Jan |
| Carrier B, owner-operator | Sent | Missing | Not received | Not done | Chase | Call 6 Nov |
| Carrier C, 6 trucks | Signed 29 Oct | Received | 12 Nov | 29 Oct | Insurance ends in 7 days | Hold new loads |
A tracker like this answers the owner's real question, "who can I book today?" in a glance. Before AI does anything, get the column layout right, because it is the structure the model fills in.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowAsking AI to read a certificate into the tracker
Certificates arrive as scans, photos or PDFs with the details in boxes. A current AI assistant that reads images can pull the fields out in seconds. Give it a fixed output so the rows paste straight into the sheet.
Read the attached certificate of insurance. Return one JSON object with:
insured_name, insurer_name, policy_type (auto liability / cargo / general),
policy_number, effective_date, expiry_date (ISO format YYYY-MM-DD),
limit_amount (number, no symbols), certificate_holder, producer_name.
If a field is unreadable or absent, return null. Do not guess.
Then list anything that looks unusual: altered text, mismatched
fonts, dates that do not follow, or a certificate holder that is not
"[our company name]".
An illustrative reply: {"insured_name": "[carrier legal name]", "insurer_name": "...", "policy_type": "auto liability", "policy_number": "...", "effective_date": "2026-02-20", "expiry_date": "2027-02-19", "limit_amount": 1000000, "certificate_holder": "[carrier legal name]", "producer_name": "..."} with a note: "Certificate holder is the insured itself, not your company." That note is the useful part. The model caught something a tired person reading the twelfth certificate of the day would skim past.
What you fix: dates in a different format (day first against month first), limits that are cut off by the scan, and any "unusual" remark you cannot verify. A model sees that a font changes; it cannot tell whether a document was forged, so anything odd goes to a person who contacts the insurer.
Mismatch flags: the comparisons AI is good at
Most packet problems are two documents that disagree. Ask the model to compare, not just read:
- Names across documents. Profile, agreement, tax form, certificate, authority record and bank account holder should name the same entity. "[Name] Haulage" on one document and "[Name] Transport Ltd" on another is the pattern that deserves a phone call.
- Dates. Policy effective date after the date a load moved, expiry inside the next 30 days, agreement signed before the profile date.
- Coverage against your floor. If your rule is $1,000,000 auto liability and $100,000 cargo (an example house rule, not a legal minimum), flag anything below, and distinguish "limit not shown".
- Addresses and contacts. A dispatch email on a free webmail domain when the profile says it is a fleet of 20 trucks is not proof of anything, but it is a reason to look harder.
- Payment details. Bank name on the payment form against the factoring notice. A last-minute change of bank details is a classic fraud pattern, so flag any change after approval for a call-back to a number you already had on file.
The prompt: "Compare the extracted fields for this carrier across all documents. Output a table: field, value in each document, match yes/no. Flag every 'no' and say which document you would ask them to correct." Treat each flag as a question, not a verdict. The common false alarm is a trading name against a legal name, which a quick note in the tracker resolves.
A filled-in run for a small carrier
An illustration of one packet arriving. A six-truck carrier replies with five attachments in one email. The assistant reports: profile complete; agreement signed but dated before the carrier's incorporation date quoted in the profile; tax form name matches; certificate expiry 12 days away; payment form lists a bank account holder with a different company name; no authority proof attached.
The broker's action list writes itself: ask for the renewal certificate or confirmation that renewal is bound, ask for the payment holder's relationship in writing, request proof of authority, and ask about the agreement date. Four of those would have taken a person 25 minutes to find; the model produces the list in under a minute. The person still makes the phone call about the bank account, using a number from an independent source, not from the email.
Reminder emails that actually get a reply
The second saving is chasing. Draft three templates once, and let the model fill in names and dates from the tracker. Plain wording works best, with a single request and a deadline.
Subject: Certificate renewal needed by [date] - [carrier legal name]
Hi [first name],
The insurance certificate we hold for [carrier legal name] ends on
[expiry date]. To keep booking loads with you, please send the renewed
certificate, showing [our company name] as certificate holder, by
[date 7 days before expiry].
If renewal is already in place, just reply with the new certificate.
If there is a gap, let us know today so we can plan around it.
Thanks,
[your name]
Schedule the sequence from the tracker: first message 30 days out, second at 14, third at 7 with a copy to the dispatch contact, and on the expiry date a status of "hold new loads" until the file arrives. Start with the AI drafting the messages and a person pressing send, at least for the first months; automation that emails carriers on its own is worth adding only once the drafts have been right for a long time. If you already run a sheet-to-email routine, the load email triage tutorial shows the same pattern on the booking side.
Getting files in without losing them in an inbox
Documents arrive by email, text message, chat and the occasional fax-quality scan, and the first job is to land them in one place. Give every carrier a folder named the same way, such as Carrier name - operating-authority number, and every file a name that says what it is: agreement-signed-2026-11-03.pdf, coi-auto-exp-2027-02-19.pdf. Ask the model to rename files from their contents: "Suggest a filename for each attached file in the form document-type, then date, using only what is printed on it." You still rename them yourself the first time, and then accept the model's suggestions once they match your own.
A shared inbox, such as an onboarding address, helps more than most tools. Carriers reply to the last email they got, so a single address means a single stream of documents. Let the AI summarise the day's arrivals in four lines: which carriers sent what, what is still missing, what looks wrong, who needs a chase. That summary replaces fifteen minutes of scrolling.
An owner-operator who only has a phone
Not every carrier has an office with a scanner. A one-truck owner-operator may send photographs of paper, taken on a dashboard in poor light. Plan for that rather than rejecting them.
Send a short text with three rules: lay the page flat in daylight, take the photo from straight above, and send each page as a separate picture. Ask for the certificate from their insurance agent as a PDF, which agents can email in a minute and which reads far more reliably. In an illustrative case a photo of a certificate came back from the model with the expiry date "unreadable" and a note that the lower third was cut off. The broker replied with one line asking for the full page, and the carrier sent it within the hour. The model's willingness to say "unreadable" instead of guessing is what you are paying for, so keep "do not guess" in every extraction prompt.
Exceptions: when a packet is almost right
Perfect packets are rare. Decide in advance which gaps you will accept, who can accept them and for how long, and record it in the tracker. A simple table keeps the rule visible.
| Gap | Allowed? | Who decides | Condition |
|---|---|---|---|
| Tax form missing | Yes, for 14 days | Operations manager | No payment until it arrives |
| Cargo limit below your floor | Case by case | Owner | Lanes under an agreed value only, noted in the tracker |
| Certificate holder not your company | No | - | Ask the agent to reissue |
| Authority not active | No | - | No loads until a fresh check shows active |
| Payment holder differs from carrier name | No, until verified | Owner | Call-back to a known number, written explanation |
Ask the AI to apply the table when it flags problems: "Classify each flag as allowed, needs approval or blocked, using this table." It will sort the list for you, and the person with approval power sees only the middle group. Never let it change the table itself; rule changes are a management decision with a date and a name on them.
Re-checking carriers who are already approved
A carrier approved in March can lose authority in July without telling you. The packet is a starting point, so schedule re-checks. Pick a rhythm that fits your volume: monthly for carriers you use weekly, quarterly for the rest. Have the AI generate the work list from the tracker each Monday: carriers used in the last 30 days, last check date, expiry within 45 days, flags still open. A person then runs the lookups and enters the new check dates.
Keep an audit line in the tracker for every AI read: which file, which date, which version of the prompt, who confirmed. If a claim ever arises over a load, you can show what you checked and when, which is worth more than a clever process nobody can reconstruct. Anything that touches liability or insurance claims belongs with your adviser and insurer, who may require specific records.
Keeping the documents safe
Packets hold tax details, bank information and policy numbers. Store the originals in your own cloud folder or document system with access limited to the people who onboard carriers. Send only what the model needs, such as a single certificate page, and avoid pasting bank details into a chat. Choose a plan where your content is not used for training and where you can see retention settings; the business plans of ChatGPT and Claude both state that business content is not used for training by default, and you should read the current wording of whichever you use.
Bank-detail changes deserve special treatment because they are where fraud usually pays out. The rule: a change request that arrives by email is never actioned from the email. A person phones the number already on file, confirms the change and logs who they spoke to.
Numbers: what it saves and what it costs
Take a broker with 180 active carriers, onboarding about 12 new ones a month. By hand, a packet takes a person roughly 40 minutes: reading five documents, comparing names, typing the tracker row and chasing missing items by email. With AI reading and flagging, a person's share falls to about 12 minutes, mostly the phone call and the decision. The saving is 28 minutes x 12 = 336 minutes, about 5.6 hours a month, before counting renewals.
Renewals add to that. With 180 carriers on annual policies, about 15 certificates expire each month. At 10 minutes each to chase and file, that is 150 minutes; with templates and automatic flags it drops to about 4 minutes each, or 60, a saving of 90 minutes. Together, 336 + 90 = 426 minutes, around 7 hours a month. The AI cost is small: a business assistant seat at about $20 to $25 a month (Claude Team, for example, lists $20 a seat billed annually and $25 monthly), or a few cents of API use per certificate if you build the routine in a tool such as a spreadsheet script. All these figures are illustrations; time your own packet before you plan around them.
How a packet went wrong anyway
In one illustrative case, a broker's tracker showed a carrier's insurance as valid until December because the model read the "effective" date as the expiry. The certificate was a two-page scan with the dates printed in a column of smaller type. The error stayed until a reminder never fired. The cure was two small changes: the extraction prompt now says "expiry is the later of the two dates and must be after the effective date; if not, return null and flag", and a person spot-checks the first five certificates from any new insurer.
The same tracker revealed a second pattern. Carriers whose certificates arrive as a photo taken at an angle are more often misread than clean PDFs. Ask carriers for PDFs from their agent, and give an example of what a readable one looks like.
Where to stop: the points where a person must decide
Three decisions stay with a human. First, the authority and insurance check at the source: the packet shows what the carrier says, and the person confirms it with the regulator's public lookup and the insurer or agent. Second, anything that looks like identity fraud, such as a carrier whose phone number and email domain are new while the name belongs to an established firm. Third, exceptions to your own rules, such as a lower cargo limit for a short, low-value lane.
For the checklist that governs those decisions, including the liability side, read the companion tutorial on carrier vetting with a human sign-off. For scams that target the email and bank-detail side of the business, the freight security tutorial goes through the common patterns.
Getting it running in a week
- Day 1. Fix the document list and build the tracker with the columns above.
- Day 2. Run the extraction prompt on ten certificates you already hold and compare the model's dates with the paper. Note every miss.
- Day 3. Add the comparison prompt and run it on five existing carrier files. You will probably find real problems, which is a good sign the check works.
- Day 4. Write the three reminder templates and the "hold new loads" rule.
- Day 5. Onboard one real carrier with the new routine, a person watching every step.
After a month, review: how many certificates were misread, how many flags were real, how many expiries were caught in time. Keep the model on reading and flagging until its misses are rare, then decide whether to let it send the first reminder automatically. If you want to map this against your own packet and tools, that is what my AI implementation consultation covers.
Questions brokers ask about packet automation
Can AI approve a carrier on its own?
It should not. AI can collect documents, read them and flag problems, but approval is a decision with liability attached, so a named person signs it after checking authority and insurance at the source. The carrier vetting tutorial in this series covers that sign-off.
Which documents belong in a carrier packet?
A typical packet asks for a signed carrier agreement, a tax form, a certificate of insurance, proof of operating authority, payment or remittance details, a contact sheet and a dispatch or safety contact. Your own risk rules may add more. Keep the list short enough that carriers finish it.
How early should expiry reminders go out?
A common pattern is 30, 14 and 7 days before a policy ends, with a hold on new loads if the renewal certificate has not arrived on the expiry date. Pick the dates that match how quickly your carriers' insurers issue certificates.
Is it safe to put insurance certificates into an AI tool?
They hold policy numbers, insured names and sometimes bank-linked details. Use a plan that does not train on your content, keep the original files in your own storage and give the AI only the pages it needs. Check the tool's retention setting.
Do I need a platform, or will a spreadsheet do?
A spreadsheet plus email works for a few dozen carriers a month. Past that, or when carriers must upload through a portal, a purpose-built onboarding platform saves time. Compare it with the cost of your own hours before paying for one.
Further reads
- AI for Freight Business Optimisation: Quotes, Loads and Follow-Ups — Connect onboarding to quotes and load follow-ups.
- Freight Invoice Audit: AI Checks Carrier Bills Against Quotes — Check carrier bills against the quote.
- Detention Pay: AI Tracks Wait Times and Invoices Brokers — See the same paperwork from the carrier's side.
- Freight Rate Sheets: AI Extracts Carrier Rates From PDFs — Pull carrier rates from PDFs once onboarded.
- Driver Qualification File: AI Tracks Expiring Documents — Track expiring documents on the carrier's own side.
- Negotiate Freight Rates: Prepare Counter-Offers With AI and Data — Understand what small carriers weigh up before they agree.
- Subcontractor Management: Track Insurance Expiry and Onboarding With AI — A document pack checklist, an expiry tracker with working formulas and four reminder emails, with AI reading certificates and a person approving them.
- AI Freight Quoting: Turn Customer Emails Into Draft Quotes — A practical email-to-draft-quote workflow with rate validity, surcharges, margin rules and approval controls.
- Freight Damage Claim: AI Builds the Evidence Pack and Letter — An evidence checklist, a liability-limit sum, a deadline tracker and a claim letter drafted with AI, with a person checking and filing each claim.
- Supplier Onboarding Automation: AI Forms, Checks and Reminders — How a wholesaler can collect supplier documents with one form, have AI check them, chase gaps on a schedule and stop bank-detail change fraud.
- AI for Freight Forwarding: What It Does Well and What It Doesn't — A plain scorecard for a small forwarder: the jobs AI handles well, the ones it gets wrong, and how to test each.
- AI for Owner-Operators: Eight Jobs You Can Hand to ChatGPT — Eight admin jobs for a one-truck owner-operator, each with a prompt, a worked figure and a check.
- Can AI Read Bills of Lading and Fill Your TMS? An Accuracy Test — How a small forwarder can test AI on 100 bills of lading and air waybills, and set up validation and an exceptions queue.
- Export Declaration: What AI Can Pre-Check Before You File — Use AI to catch mismatched values, weights and descriptions across your shipping papers, and know which decisions stay with you or your broker.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: worked figures are illustrative; the document list reflects common broker practice, so confirm your own requirements with your insurer and adviser.