From a week of site reports to a signed time and material sheet, with Claude and Simplepush
The Friday problem
On a fixed-price job, nobody asks how many hours the crew spent. On a time and material job, the customer asks every week. On most small crews the answer gets pieced together on Friday afternoon, from the group chat, a photo of a delivery note, and a call to the foreman to ask whether Tuesday was a full day.
The sheet that comes out is usually honest. But when the customer questions twelve hours of digging, nothing ties those hours to a day or a photo.
So record the week while it happens, somewhere an agent can read it back. Here is how I would set that up. Say a landscaping crew of three: Dan, the foreman, with Marco and Lena, on a job at Hill Street. The patio is on a fixed quote; the drainage the customer added in week one is billed on time and materials. In the office, someone runs Claude Desktop with two connectors: Simplepush's hosted MCP connector for the crew, and DokuTrak for the paperwork that comes back from the customer. This is a walkthrough of that setup, not a report from a real crew.
What to collect on site each day
The sheet needs four things per day: hours per worker, materials with quantities, a photo of the work, and a note on anything extra the customer asked for. Whatever is missing on Monday will still be missing on Friday, so ask for all of it in one end-of-day task to Dan.
You ask Claude Cowork for it in plain words:
Every workday at 16:00, send Dan an end-of-day task for Hill Street, tagged hill-street: a slider from 0 to 12 hours, in quarter hours, for each of Dan, Marco and Lena; a text field for materials used, with quantity and unit; a photo of today's work; and an optional voice note for anything the customer asked for that wasn't planned.
Claude sends it with the connector's send_task tool. The schedule part needs a client that runs on a timer, such as Claude Cowork; in the basic Claude chat, scheduling does not exist. The tag is a free-form label: it doesn't change who receives the task, it makes the task easy to find later.
I'd use sliders for hours because a slider answer comes back as a number, so nobody can write "about 8". Materials stay as text because the list changes daily. The voice note catches the extra work while it is fresh.
That task has six inputs. The free plan allows five per task, so this needs a paid plan.
Pulling the week
On Friday:
Pull the Hill Street week, Monday 28 September to Friday 2 October: every task tagged hill-street with its answers, anything Dan, Marco or Lena sent on their own in that window, and the photos.
Behind that, Claude calls query_tasks with the time window and keeps the summaries tagged hill-street, then get_task on each for the answers and photo ids, query_submissions for reports the crew sent without being asked, and download_attachment for the photos, which come back as images it can look at.
Building the sheet
The sheet groups the week by day, by worker for hours, and by material for quantities. Before drafting, Claude lists the holes:
- a workday with no end-of-day report,
- a material with no quantity ("some gravel"),
- hours for someone the voice note says went home at noon.
Each hole becomes a question to Dan, not a guess. The rule I would put in the prompt:
Before you draft, list every gap. Send Dan one Simplepush task per gap, tagged hill-street, with the input that fits: a slider for hours, a text field for a quantity, a photo for missing proof. Don't fill any gap yourself. Draft only when each gap has an answer or Dan says it can't be answered, and mark those lines.
send_task waits 90 seconds by default. Dan may answer an hour later from the trench, and that's fine: a timeout doesn't cancel the task, and Claude picks the answer up with get_task_answer.
Keep the arithmetic out of the model's head. Attach a file with the hourly rates and material prices in the office conversation, and ask Claude to do the totals with its code tool. A model reads "3 t gravel" out of a voice note well. Adding up a column is where it slips.
The office checks it
Dan has already answered every gap, so the sheet doesn't need to go back to the site. The person who checks it is the one in the office running Claude: the draft is right there in the conversation, and a wrong line gets fixed by saying so. If a site manager signs off on sheets at your firm, email it to them the way you do today.
Once it's right, ask for the final sheet as a PDF: the sheet on the first page, then one or two photos per day, each captioned with the date and who sent it. Those captions come straight from the record.
Customer sign-off
The customer never sees Simplepush, and shouldn't have to install anything. The office emails the PDF as it already does.
DokuTrak doesn't do e-signatures. What it does here is collect the signed copy and make sure it comes back. You ask:
Ask the Hill Street customer to return the signed time and material sheet for week 40 by Thursday. Say the sheet is in my email from today.
Claude prepares a request with the recipient, the deadline, a one-item checklist ("Signed T&M sheet, week 40") and the message, and shows it to you. DokuTrak's create_request tool is marked as one that needs your confirmation, so Claude Desktop asks before anything is sent. Nothing reaches the customer until you say yes.
The customer gets an email with a link, uploads the signed page without creating an account, and gets reminders until it's in. The signed copy lands on that request in the DokuTrak dashboard, where the office accepts it. Claude can tell you whether it has arrived; accepting it is a person's job.
Two shortcuts. If your contract accepts an emailed OK, the customer's reply is the sign-off. If you already send paperwork through an e-signature tool, keep using it.
What to watch
Rounding. Quarter hours, a minimum charge per visit, how travel counts: write it into the contract once, and have the code step apply it.
Rates. Keep them in the file, out of the prompt, so they don't end up in a task to the crew.
Your own copies. On the free plan, uploads are kept for 30 days. File the photos with the signed sheet in your job folder.
Encryption. The hosted connector holds no keys, so it can't read an encrypted organization. If you turn encryption on, run the @simplepush/mcp package on your own machine instead.
Arthur Teboul builds DokuTrak, which collects the documents professionals need from their clients through one upload link.