How to Build a Claude Skill for Bank Reconciliation (Free Skill File Included)
Table of Contents
Why this guide exists
Bank reconciliation is one of the few finance workflows still done by hand at most companies. The matching logic is mechanical, the inputs are predictable, and yet most AR teams still spend hours every month moving payments to invoices in a spreadsheet. The work has been waiting for the right tool. AI agents are now that tool. Below is a Claude skill for bank reconciliation that runs the matching end-to-end, plus the actual free skill file.
The bet behind this guide: the finance professionals who build AI fluency now will have a structural advantage over the ones who wait for IT to ship something. Fluency means being able to look at any financial workflow, decompose it, and build an automated system around it without writing code. The fastest path to that fluency is not theory. It is shipping a working tool against a real workflow and watching what breaks.
Bank reconciliation is a strong starting workflow because every finance team does it, the inputs are messy in predictable ways, and the matching logic exposes most of the failure modes that show up across other AR jobs. A finance professional who can build, install, and operate a Claude skill for bank reconciliation can build one for collections, cash application, dispute resolution, and every other workflow where the bottleneck is not analytical thinking but pattern matching at scale.
The download below includes the skill file and two sample CSVs. Run the skill against the samples first to confirm the install. Once it works on the samples, swap in real bank statement and invoice register exports. End-to-end build time is about fifteen minutes.
TL;DR: what this Claude skill for bank reconciliation does
At a glance
- Reconciles a bank statement against your open invoice register in one run
- Flags exceptions with reason codes (partial payments, amount mismatches, missing references, multi-currency variance, potential duplicates)
- Outputs a posting-ready Excel workbook with auto-confirmed and human-review queues
- Works with bank exports from any major bank, plus invoice exports from QuickBooks Online, NetSuite, Sage Intacct, and Xero
About the instructor: Jared Shulman, CFA
Jared Shulman is a CFA charterholder and a guest lecturer on fintech at Babson College, where he teaches undergraduate and MBA students. He is the CEO and co-founder of Daylit, an accounts receivable platform that uses AI agents to automate collections, cash application, and dispute resolution for finance teams. His current work focuses on AI applications in accounts receivable, the area of corporate finance where most of the remaining manual workload still sits.
This tutorial publishes the working bank reconciliation skill from module one of the AI Survival Guide, an AI Skills course built from six months of interviews with controllers, AR managers, and CFOs at companies running everything from QuickBooks to Oracle. The recurring question across bank reconciliation, collections, cash application, and every other AR job: can AI agents actually do the work that financial software does today, or is it hype? This tutorial gives finance professionals the finished skill. The course teaches the prompt engineering framework behind it, so a finance team can build the next five workflows on their own.
Prerequisites
- A Claude Pro or Team account. Skills run on the same plans you already use for chat.
- A bank statement export. CSV format, covering the period you want to reconcile.
- An open invoice register export. CSV format, covering the same period.
- Fifteen minutes. That's the full build time end-to-end.
Subscribe today and get each new AI Survival Guide module delivered straight to your inbox the moment it drops.
Step-by-step walkthrough
Download the skill file
Grab the bank-reconciliation-matching package from the link below. The download is a small zip containing three files: the SKILL.md file (roughly 25 KB of plain text instructions that tell Claude how to behave when it sees a bank statement and an open invoice register), plus two sample CSVs named sample-bank-statement.csv and sample-invoices.csv.
Test on the sample data first. Run the skill against the two sample CSVs before you run it on real numbers. The samples are designed to hit every match tier and every exception type the skill produces, so a successful run on them confirms the skill is installed correctly and your Claude environment is wired up. Once the sample run looks right, swap in your own bank statement and invoice register exports.
Download bank-reconciliation-matching →
What you should see: a folder containing bank-reconciliation-matching.md, sample-bank-statement.csv, and sample-invoices.csv in your downloads.
Install the skill in Claude
Open Claude, go to left side bar, then Customize, then Skills. Upload the SKILL.md file. Claude reads the skill description and registers it so the skill loads automatically the next time you ask for a bank reconciliation. Anthropic's full setup guide is at support.claude.com if you want the screenshots, and the broader skills documentation is at docs.anthropic.com.
What you should see: bank-reconciliation-matching listed in your active skills.
Prepare the bank and GL exports
If you're testing with the sample CSVs, skip ahead to Step 4. For real exports, both files need to be CSVs in UTF-8 encoding with no merged cells, no pivot tables, and no summary rows. Header row first, data rows below. Date columns can be ISO (YYYY-MM-DD) or US (MM/DD/YYYY); the parser handles both, but day-first formats (DD/MM/YYYY) need a heads-up in the prompt.
Bank statement minimum columns: Date, Description, Amount.
Invoice register minimum columns: Invoice #, Customer, Invoice Date, Due Date, Original Amount, Remaining Balance.
What you should see: two clean CSVs, openable in any text editor with no junk rows above the header.
Run the reconciliation prompt
Open a new Claude conversation, attach both CSVs (the samples on your first run, your own exports after), and paste the bank reconciliation prompt below.
Reconcile the attached bank statement against the open invoice register using the bank-reconciliation-matching skill.
Claude will ask two setup questions before running: which version of QuickBooks you use (Online or Desktop), and whether you use a third-party importer like SaasAnt or Transaction Pro. Answer both. Then the skill runs the full six-tier matching algorithm and produces a workbook download.
What you should see: a three-tab Excel file plus a one-paragraph summary of matched, unmatched, and flagged transactions.
Review the exception report
Open Tab 2 (Exceptions Queue). Every bank reconciliation transaction that didn't auto-clear lands here, grouped by reason code. Each row gives you the bank credit, the candidate invoice or invoices, the variance, and a Status dropdown.
| Bank Description | Amount | Candidate Invoice | Variance | Reason | Status |
|---|---|---|---|---|---|
| ACH from VARKON INC RMR I9741 | $47,350.00 | INV-9741 | $0.00 | Probable Match | PENDING |
| Wire from PAN ASIA LEATHER 8237 8304 | $12,400.00 | INV-8237 + INV-8304 | $0.00 | Combined Match | PENDING |
| RTP MERIDIAN CHEMICAL NOREF | $9,142.60 | INV-10289 | $0.00 | Amount-only, no reference | PENDING |
| ACH BAYLOR-PAYMENTS | $3,200.00 | (processor descriptor) | n/a | Unmatched, processor name | PENDING |
| Wire CM 28011 PAN ASIA | $1,800.00 | CM-28011 | n/a | Credit memo payment | PENDING |
Set each row to CONFIRMED, REJECTED, or ESCALATED. The skill never auto-clears a partial match, a credit memo, or a duplicate.
What you should see: a populated exceptions queue with a clear reason code on every row.
Export the journal entries
Tab 1 (Payments to Post) is your import file. Section A holds the auto-confirmed queue. Section B populates automatically the moment you mark exceptions as CONFIRMED on Tab 2; a native FILTER() formula handles the routing, no copy-paste.
Tab 1 columns are formatted exactly to the QuickBooks setup you specified in Step 4. If you said SaasAnt, the column order matches the SaasAnt template. If you said manual entry, the columns mirror the QuickBooks Receive Payment screen.
| Customer | Payment Date | Method | Reference | Amount | Invoice # | Deposit Acct | AR Acct | Memo |
|---|
What you should see: a CSV ready to import into QuickBooks via your importer, or ready to retype into Receive Payment if you said manual entry.

Common failures and fixes
Date format mismatches. Bank statements often arrive with ambiguous date strings. The skill defaults to US format (MM/DD/YYYY) when it can't tell. If your bank exports day-first format (DD/MM/YYYY), you'll see invoices match to wrong months and clean bank reconciliation runs look broken. The fix takes one line in your prompt: "Bank statement dates are DD/MM/YYYY format." That locks the parser before matching runs.
Multi-currency rows. The skill stops processing the moment it detects bank credits and invoices in different currencies and asks you for a confirmed exchange rate. This is intentional. Silently applying yesterday's spot rate produces wrong matches, wrong variances, and wrong write-offs. For a single multi-currency batch, paste the rate up front: "Use 1 EUR = 1.082 USD for FX conversion." Multi-pair runs (USD plus EUR plus GBP in one statement) require splitting the inputs and running each pair separately, which is a known limitation.
Sub-account hierarchy collapse. NetSuite and Sage Intacct exports sometimes flatten parent-customer and sub-customer relationships into a single Customer column with a separator like "Parent Co : Sub Co." The matcher reads the full string as one customer name. If your bank deposits arrive under the parent name only, you'll see Tier 3 amount-only matches instead of clean payer matches. Pre-process the invoice export to use just the parent name, or tell the skill in your prompt: "All sub-accounts roll up to the parent listed in the Customer column."
Partial matches. A customer pays $9,000 against a $10,000 invoice. The skill flags this as a Partial Payment, calculates the $1,000 shortfall, and routes the row to Tab 2. If short-payment is intentional (early payment discount, trade allowance), the AR team applies the partial amount and writes off the balance via the AR Decision dropdown. The failure mode is treating a partial payment as a full match. The skill won't do this automatically, which is the correct behavior. Spot it by checking the Variance column on Tab 2.
Prior-period adjustments. If your AR team posts payments slowly, your "open" invoice register may include items that were actually paid in a prior period. Those create false candidate matches against this period's deposits. The fix is to refresh the invoice export immediately before running the reconciliation, or add a prompt note: "Exclude invoices paid before [statement start date] from matching." For more on getting your AR data ready for AI workflows, see our getting started with AI agents for AR guide.
Conclusion
If you've made it this far, you've answered the question yourself. The legacy AR software vendors have spent two decades convincing finance teams that bank reconciliation logic is the hard part. It's not. The hard part is the human judgment on the exceptions, and that's exactly the work the skill leaves to you.
The free skill file is yours to keep, modify, and pass to your team. The AI Survival Guide is a free weekly course that teaches finance professionals to build the workflows legacy software has been charging six figures a year for. Module two drops next week, a B2B collections agent that runs the dunning sequence end-to-end. See you then.
Frequently asked questions
What is a Claude skill?
A Claude skill is a Markdown file that tells Claude how to behave for a specific job. Skills load automatically when their description matches what you're asking, so you don't manually invoke them every time. They're free to create, free to use, and free to share. The full Anthropic documentation lives at claude.com/skills.
Can I use this with QuickBooks Online?
Yes. The skill formats Tab 1 of the output workbook to match the QuickBooks Online payment import structure. If you use a third-party importer like SaasAnt or Transaction Pro, the column order matches their templates exactly. If you enter payments manually, the columns mirror the QuickBooks Receive Payment screen.
Does this work for multi-entity or multi-currency reconciliation?
For multi-entity, run one reconciliation per legal entity. The skill doesn't combine bank statements from multiple entities in a single pass because the AR registers don't share a customer master. For multi-currency, the skill processes one currency pair per run and asks for a confirmed FX rate before matching. Multi-pair runs require splitting the inputs.
Is the skill file actually free?
Yes. The SKILL.md file for this Claude skill is free to download, free to use, and free to modify. Daylit publishes the full source. The only cost is your existing Claude Pro or Team subscription, which you already need to install and run any Claude skill.
How is this different from Claude Cowork?
Cowork is Anthropic's desktop tool that lets Claude operate your file system and applications directly. The bank reconciliation skill works in either environment. On standard Claude Pro you upload exports manually and download the workbook. In Cowork, Claude reads the exports from your folders and saves the workbook back to disk. Same matching logic, different IO.



