Turn a shoebox of receipts into a filed expense claim
Turn camera-roll receipts into a submitted expense claim with categorised line items and attached proof.
How it works today.
You take a photo of every receipt—coffee, taxi, client dinner—and promise yourself you will deal with it later. Later arrives at month-end when finance sends a reminder. You open your camera roll, scroll past family photos and screenshots, squint at faded thermal paper, and retype merchant names into a spreadsheet or web form one line at a time.
Half the receipts are sideways or blurry. You cannot remember which dinner was the pitch meeting and which was personal. You round the illegible totals, leave the category blank, and attach a PDF you exported by hand. The claim sits in someone's inbox for a week because you forgot to fill in the cost centre field.
Before you start.
All of it has to be true, or step one fails in a way that is annoying to debug.
- A folder or album in your phone containing only receipt photos from the period you want to claim.
- Access to an expense management system (Expensify, Rydoo, SAP Concur, or a shared spreadsheet) where you can paste line items and upload attachments.
- An AI agent with vision capability (Claude, GPT-4 Vision, or a document-extraction service like Mindee or Veryfi) that can read image files.
- Write access to a working folder in Google Drive, Dropbox, or OneDrive where the agent can save extracted data and the compiled claim.
The steps.
Export receipt photos to a cloud folder
Create a new folder in your cloud storage called Receipts_[Month]. Select all receipt images from your camera roll and upload them in one batch. Name the folder with the month so you can find it again. If your phone offers a 'Select All' option in an album, use it to avoid missing photos buried between personal shots.
Extract line items from each receipt image
Point your AI agent at the folder and ask it to read every image. The agent should pull merchant name, date, total, currency, and line items if itemised. If a receipt is rotated or low-contrast, the agent may return partial data; flag those file names so you can check them manually. Save the output as a CSV or JSON file in the same folder.
Paste thisRead every image in [Receipts_October]. For each receipt extract: merchant name, transaction date, total amount, currency, and a list of line items if the receipt is itemised. If the image is unreadable or missing key fields, note the filename and write 'MANUAL_REVIEW'. Write all results to a CSV with columns: filename, merchant, date, total, currency, line_items, notes.
Categorise each line item by expense type
Feed the extracted CSV back to the agent with your company's expense categories (Travel, Meals, Office Supplies, Client Entertainment, etc.). The agent assigns a category to each row based on merchant name and line-item description. If your expense system uses specific codes or cost centres, include those in the prompt. Review the output for obviously wrong guesses—'Stationery' tagged as 'Meals' because the shop also sells sandwiches.
Paste thisRead the CSV at [Receipts_October/extracted.csv]. Assign each row to one of these categories: Travel, Meals & Entertainment, Office Supplies, Software & Subscriptions, Client Gifts, Other. Use the merchant name and line_items field to decide. If you are uncertain, mark the category as 'Review'. Write the result to a new CSV with an added 'category' column.
Match receipts to calendar events or project codes
If your expense system requires a reason or project code, export your calendar for the claim period as an ICS file and drop it in the same folder. Ask the agent to match transaction dates and times to calendar entries, then suggest a reason or client name. This works best for meals and travel; it will guess wrong for standing purchases like software renewals. You still approve every match.
Generate a draft claim document
Ask the agent to compile the categorised CSV into a formatted table or fillable PDF that matches your expense system's layout. Include a column for the receipt filename so you can attach the right image to each line. If your system accepts bulk uploads via API or CSV import, use that format. If it is a web form, ask for a Markdown table you can paste into the notes field and a separate folder of renamed images keyed to each row.
Paste thisRead [Receipts_October/categorised.csv]. Create a Markdown table with columns: Date, Merchant, Category, Amount, Currency, Receipt. In the Receipt column, write the original filename. Below the table, write a one-line summary: 'Total claimed: [sum] [currency] across [count] transactions.' Save this as claim_draft.md in the same folder.
Rename and attach receipt images to match the claim
If your expense system requires you to attach images one by one, ask the agent to rename each file to match the row number or a short reference (e.g. 01_Cafe_Oct3.jpg). This saves you hunting through a folder of IMG_1234.jpg files when you paste line items into a web form. The agent writes a simple script or does it via API if your storage supports batch rename.
Review flagged items and fill gaps
Open the draft claim and the 'MANUAL_REVIEW' list. For any receipt the agent could not read, open the image yourself and type the missing fields into the CSV or table. Check that high-value or unusual expenses (client dinners over a threshold, international travel) have a note explaining the business purpose. Your finance team will ask if you do not.
Paste the claim into your expense system and attach receipts
Copy the table from claim_draft.md or import the CSV if your system allows it. Upload the renamed receipt images in the order they appear in the table. If the system has a mobile app that accepts photo uploads, you can skip the renaming step and attach directly from the cloud folder. Submit the claim and note the reference number in a separate tracking document so you know what you have already filed.
What you keep.
Automating the typing does not move the accountability. These stay with a person.
- Reviewing every extracted line item before you submit, especially amounts over your approval threshold or anything flagged as uncertain.
- Writing the business justification for client meals, gifts, or travel that finance will question.
- Deciding which personal expenses accidentally photographed in the same batch must be excluded from the claim.
- Checking that the claim matches your company's policy on per-diems, alcohol, or currency conversion before you submit.
Once it works.
The first run is the demo. These are where the time actually comes back.
Set a monthly calendar reminder that automatically creates the cloud folder, pulls images from your phone's receipt album, and starts the extraction step without you opening a browser.
After each claim is approved, ask the agent to append the submitted rows to a running CSV so you can see year-to-date spending by category without re-exporting from the expense system.
If your expense system has an API, connect the agent so it writes line items directly into a draft claim instead of producing a Markdown table you paste by hand.
Share the categorisation prompt and your company's expense-category list with your team so everyone's claims use consistent labels and finance stops sending them back for correction.
Run this next.
One workflow is a tip. Chained, they are how a week actually changes shape.
The work this replaces.
These are the O*NET work activities this workflow covers, and the categories of tool that address them.