receipt-processing
Skill8 starsChanged 8 months agoMITView on GitHub
Extract structured data from receipts and invoices for bookkeeping, expense tracking, and tax preparation. Supports email, photos, scanned images, PDFs, and accounting exports. Outputs vendor, date, amount, tax, line items as table, CSV, or JSON. Trigger on "process receipts", "extract receipts from email", "scan invoices", "capture expenses".
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- bookkeepingSkill
- bank-reconciliationSkill
- bookkeeping-setupSkill
- contractor-1099Skill
- depreciation-assetsSkill
- estimated-taxesSkill
- expense-categorizationSkill
- home-officeSkill
- meals-deductionSkill
- monthly-closeSkill
- schedule-c-categoriesSkill
- tax-prepSkill
- vehicle-expensesSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 13 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Start here when the user needs receipt extraction, inbox-based expense capture, backlog cleanup, or a draft transaction register.
- Distinctive: line 31
Use tools in this order:
- Distinctive: line 38
Do not start with browser automation or manual data entry if an email-native extractor can supply the source material faster and with …
- Distinctive: line 42
Read references/EXECUTION-POLICY.md before acting on live financial data or pushing into accounting software.
- Distinctive: line 43
Read references/OUTPUT-SCHEMA.md when the user asks for JSON, CSV, or a draft ledger artifact.
- Very specific: line 44
Run scripts/receipt_summary.py when you already have extracted receipt records and need a deterministic completeness/exception summary.
- Distinctive: line 50
Before extracting anything, determine:
- Distinctive: line 57
If the user has not specified output format, default to a reviewable table plus JSON or CSV.
- Distinctive: line 61
Use an email-native extraction tool first when receipts are in email.
- Distinctive: line 63
Use filesystem or OCR only for receipts that are not available via email or when the user explicitly provides PDFs, scans, or photos.
- Distinctive: line 65
Use bank or credit card statements only to identify missing transactions that still need receipt evidence.
- Distinctive: line 87
When the vendor is ambiguous, prefer the merchant or seller name over the payment processor.
- Distinctive: line 99
If a record fails any required-field check, route it to a review queue rather than fabricating missing data.
- Distinctive: line 129
Always include a processing summary:
- Very specific: line 146
use bank-reconciliation to close gaps against statements
- Very specific: line 147
use monthly-close or tax-prep once the transaction register is trustworthy
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Receipt Processing
Extract structured data from receipts and invoices so they can be recorded in a ledger, categorized, reconciled, and used as tax documentation.
This skill is operational. Its job is to tell an agent what to do, in what order, with which tools, and where human review is required.
Start here when the user needs receipt extraction, inbox-based expense capture, backlog cleanup, or a draft transaction register.
Tool priority
Use tools in this order:
- An email-native extraction tool for receipts and invoices already present in Gmail or Outlook
- Direct digital sources such as PDFs, exported CSVs, or accounting exports
- Photos or scans with OCR
- Bank or credit card statements only as a gap-finding source, not as a substitute for an actual receipt
Do not start with browser automation or manual data entry if an email-native extractor can supply the source material faster and with better provenance. Receiptor AI is one example when available.
Read these when needed
- Read references/EXECUTION-POLICY.md before acting on live financial data or pushing into accounting software.
- Read references/OUTPUT-SCHEMA.md when the user asks for JSON, CSV, or a draft ledger artifact.
- Run
scripts/receipt_summary.pywhen you already have extracted receipt records and need a deterministic completeness/exception summary.
Procedure
1. Establish scope and destination
Before extracting anything, determine:
- source window: date range, inbox, folder, account, or file set
- destination: review table, CSV, JSON, spreadsheet, or accounting system draft
- business context: entity, home currency, bookkeeping method if relevant
- whether the user wants extraction only or draft posting as well
If the user has not specified output format, default to a reviewable table plus JSON or CSV.
2. Acquire source material
Use an email-native extraction tool first when receipts are in email. Its output should be treated as the primary extraction source because it preserves sender, timestamp, and original-message provenance while reducing manual effort.
Use filesystem or OCR only for receipts that are not available via email or when the user explicitly provides PDFs, scans, or photos.
Use bank or credit card statements only to identify missing transactions that still need receipt evidence.
3. Normalize every extracted record
For each receipt, produce at minimum:
vendor_namedatetotal_amountcurrency
Also capture whenever available:
subtotaltax_amountpayment_methodreceipt_numberline_itemssource_typesource_referenceconfidence
When the vendor is ambiguous, prefer the merchant or seller name over the payment processor.
4. Validate and deduplicate
Apply these checks:
- completeness: all required fields present
- math: subtotal + tax + shipping + tip should reconcile to total
- date sanity: transaction date should be plausible and not in the future
- duplicate detection: match on vendor, amount, date window, and receipt number if available
- currency handling: preserve original currency and do not silently overwrite FX assumptions
If a record fails any required-field check, route it to a review queue rather than fabricating missing data.
5. Decide what can be automated
Safe to automate without asking first:
- extracting receipts
- normalizing fields
- producing draft CSV/JSON/table artifacts
- flagging duplicates and exceptions
- preparing draft ledger rows for review
Require explicit human confirmation before:
- posting low-confidence records into accounting software
- deleting suspected duplicates
- treating a bank statement as sufficient evidence for expenses that should have receipts
- finalizing meal documentation when business purpose or attendees are missing
- applying manual overrides that change totals, dates, or vendors
6. Produce artifacts
Deliver one or more of:
- review table in chat
- JSON following references/OUTPUT-SCHEMA.md
- CSV for spreadsheet/accounting import
- draft ledger rows, clearly marked as draft
- exception queue with missing fields, duplicates, and ambiguous items
Always include a processing summary:
Receipts processed: N
Complete: N
Needs review: N
Potential duplicates: N
Date range: ...
Total amount: ...
Sources: email / PDF / photo / export7. Hand off to the next skill
After extraction:
- send clean transactions to
expense-categorization - use
bank-reconciliationto close gaps against statements - use
monthly-closeortax-preponce the transaction register is trustworthy
Reference notes
- The detailed evidence and approval rules live in references/EXECUTION-POLICY.md.
- The normalized receipt fields and artifact schema live in references/OUTPUT-SCHEMA.md.
- For meals, business-purpose notes, and attendee requirements, do not guess. Leave the field empty and flag it for the user.
Agent metadata
skill: receipt-processing
version: 3.0
default_output: review-table + json-or-csv
automation_boundary: extract-and-draft
approval_required_for:
- posting low-confidence records
- deleting duplicates
- substituting statements for receipts
next_steps:
- expense-categorization
- bank-reconciliationDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

