Automate Invoice and Receipt Reconciliation with Claude Cowork
Learn how to build a Claude scheduled task that matches receipts to transactions weekly using Composio's multi-inbox Gmail connector.

What is automated invoice and receipt reconciliation?
Automated invoice and receipt reconciliation is a scheduled AI task that pulls unexplained transactions from your accounting software, searches your email inboxes for matching receipts, attaches them automatically, and flags anything it can’t match for manual review. Built with Claude’s scheduled tasks feature, it runs on a recurring basis (typically weekly) without anyone opening a laptop, and it solves a problem almost every small business has: receipts scattered across multiple inboxes, transactions piling up unreconciled in tools like FreeAgent, Xero, or QuickBooks, and a growing backlog that turns into a nightmare at year end.
TL;DR
- Claude scheduled tasks can now run in the cloud on a recurring basis, meaning reconciliation work happens automatically instead of piling up until tax season.
- The core technique is loop engineering: giving Claude a clear “done” condition, such as “every transaction is either matched or flagged,” so it works autonomously until that condition is met.
- Because native connectors only link to one Gmail account at a time, a Composio MCP connector is used as a workaround to give Claude access to multiple Gmail inboxes at once.
- The workflow pulls the week’s unexplained transactions from accounting software, hunts for matching receipts across inboxes, attaches matches automatically, and builds a gaps list for anything it can’t find.
- Claude never sees raw credentials in this setup. Composio stores the authentication and acts as an interface layer between Claude and each connected account.
- One business owner reported using this exact setup to clear a backlog of over 600 unreconciled transactions, something that would otherwise take hours of manual matching.
- The same “done criteria” approach used here can be adapted to almost any recurring back-office task, not just bookkeeping.
- ✕a coding agent
- ✕no-code
- ✕vibe coding
- ✕a faster Cursor
The one that tells the coding agents what to build.
How does the reconciliation task actually work?
The workflow follows a simple weekly loop. Each Friday at a set time, Claude connects to the business’s accounting software and pulls the week’s unexplained transactions. It then searches connected email inboxes for receipts that correspond to those transactions, matching them by amount, date, vendor name, or other identifying details.
When Claude finds a match, it attaches the receipt to the transaction and marks it as explained inside the accounting software. When it can’t find a match, instead of guessing or stalling, it adds the transaction to a running “gaps list.” At the end of the run, it sends a summary, usually by email, listing what got matched automatically and what still needs a human to track down or manually reconcile.
The “done” condition for this loop is straightforward: every transaction from that week has to end up in one of two buckets, matched or flagged. That single sentence of criteria is what lets Claude work independently across dozens or hundreds of transactions without needing back-and-forth prompting.
Why does this need Composio instead of the built-in Gmail connector?
Claude’s scheduled tasks can only reach outside apps through connectors, since there’s currently no general credential vault for pasting in API keys directly. The built-in Gmail connector works fine if all your receipts land in one inbox, but most businesses aren’t that tidy. Receipts often arrive across a personal inbox, a shared team inbox, and a dedicated finance or purchasing inbox. In the case described in the source workflow, receipts were spread across three separate Gmail accounts.
The built-in connector only authenticates one Gmail account at a time, which makes multi-inbox reconciliation impossible out of the box. The workaround is to route Gmail access through Composio, a connector platform with a free tier that supports linking multiple Gmail accounts under one integration. Once connected, Claude can be instructed in the prompt to search across all linked inboxes via the Composio MCP (Model Context Protocol) rather than a single native connector.
This matters for a practical reason beyond convenience: security. Composio functions as an interface layer that stores the actual login credentials for each connected account on its own side. Claude never sees or handles those credentials directly. It just sends requests through the connector and gets results back, the same way it would with any other integration.
What is loop engineering and why does it matter here?
Loop engineering is the underlying concept that makes tasks like this possible. Instead of chatting back and forth with Claude turn by turn, you give it a “done” condition and let it keep working in cycles until that condition is satisfied. Anthropic has described this concept in its own writing on agentic workflows.
There are three ways a loop can start:
Turn-based loops start when a person sends a message and the model works until it’s done. These still require someone to be present to kick things off, which defeats the purpose of a background task.
Other agents start typing. Remy starts asking.
Scoping, trade-offs, edge cases — the real work. Before a line of code.
Time-based loops run on a schedule, such as every Friday afternoon. Most practical business automations, including reconciliation, fall into this category because they don’t depend on a specific external trigger, just a recurring cadence.
Event-based loops fire when something happens in the real world, like an email landing in an inbox or a meeting ending. These can also be approximated by time-based checks, for example checking an inbox every hour instead of waiting for a true push notification.
For reconciliation specifically, the time-based weekly run works well because transaction volume is predictable and doesn’t need instant handling. The precision of the “done” condition, not the trigger type, is what actually determines whether the automation works reliably.
Is this worth setting up for a small business?
For any business with recurring expenses across multiple cards, accounts, or team members, the time saved is real and compounding. Letting reconciliation slip for months creates a backlog that’s disproportionately painful to clear later. One example in this workflow involved over 600 unreconciled transactions built up over roughly six months, the kind of cleanup that eats an entire afternoon or gets pushed onto an accountant at a higher hourly cost.
A weekly automated pass keeps that number near zero. Even accounting for the setup time (defining the done criteria, connecting Composio, testing against a few weeks of real transactions), the ongoing maintenance is minimal once it’s running. The main watch-out is accuracy: matches based on amount and vendor name can occasionally be wrong, so the “gaps list” and any auto-matched items are worth spot-checking early on until you trust the matching logic for your specific vendors and transaction patterns.
Frequently Asked Questions
What accounting software does this work with?
The underlying logic isn’t tied to one platform. It requires an accounting tool that Claude can connect to and query for unexplained or unreconciled transactions, such as FreeAgent, and the same approach can be adapted to other cloud accounting software with API or connector access.
Can this handle receipts sent to more than two inboxes?
Yes. Composio’s Gmail integration supports linking multiple accounts, so the number of inboxes is limited by how many you connect, not by the automation itself.
What happens to transactions Claude can’t match?
They go onto a gaps list included in the summary email or notification, so a person can manually track down the receipt or reconcile the transaction directly rather than the task silently failing.
Does Claude ever see my email or accounting passwords?
No. Composio acts as the authentication layer and stores credentials on its side. Claude interacts with it through a connector protocol rather than handling raw login details.
How often should this task run?
A weekly cadence, such as every Friday afternoon, keeps transaction volume manageable and prevents the kind of large backlog that turns reconciliation into a multi-hour task at year end.

