Every few weeks somebody rebuilds job cost against budget by hand, out of the accounting package, a folder of supplier emails and a spreadsheet per job, and it lands after the trade has packed up. This is the brief that hands that job to Claude. Copy it, paste it into a new Claude conversation, and attach what you already export. It asks what committed, incurred and paid mean in your files before it builds anything.
A job reads on budget. The framing and drywall purchase orders issued this month have not been invoiced yet, and two change orders are priced and sent but nobody has signed them. The accounting package cannot see either, so the report says fine while the job is carrying committed costs nobody booked.
Job cost has always been rebuildable. The reason it lands late is that rebuilding it means holding four things at once: what was budgeted, what has been ordered, what has been invoiced, and which change orders are real yet. Claude reads those files directly, asks what your cost codes and your change order states mean before it combines anything, and holds every open job in one go. The review becomes a paste, and the person who knew which purchase orders were still outstanding writes it down once instead of carrying it in their head.
It is an ordinary Claude conversation. You paste the brief, send it, and drag your exports and job sheets into the same window when it asks. Nothing gets installed and nothing connects to your accounting package.
What it does not do. It runs on exports you attach by hand, each time. Making the files arrive on their own, or writing anything back into your accounting package, is a build rather than a brief.
A job reads on budget in the accounting package. The run puts it near the top of the list anyway, and the line says why: the framing purchase orders are committed and uninvoiced, and two change orders are priced but unsigned. The gap it names is the one nobody could see from the cost report.
Your AI department, on demand. We plan, build, and deploy your company's AI strategy.