Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automatically organizes invoices and receipts for tax preparation by reading messy files, extracting key information, renaming them consistently, and sorting them into logical folders. Turns hours of manual bookkeeping into minutes of automated organization.
.claude/skills/composiohq-invoice-organizer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 199% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 104% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 101% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 130% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 111% | 0% |
This skill transforms chaotic folders of invoices, receipts, and financial documents into a clean, tax-ready filing system without manual effort.
YYYY-MM-DD Vendor - Invoice - ProductOrService.pdf2024-03-15 Adobe - Invoice - Creative Cloud.pdfNavigate to your messy invoice folder:
cd ~/Desktop/receipts-to-sortThen ask Claude Code:
Organize these invoices for taxesOr more specifically:
Read all invoices in this folder, rename them to
"YYYY-MM-DD Vendor - Invoice - Product.pdf" format,
and organize them by vendorOrganize these invoices:
1. Extract date, vendor, and description from each file
2. Rename to standard format
3. Sort into folders by expense category (Software, Office, Travel, etc.)
4. Create a CSV spreadsheet with all invoice details for my accountantWhen a user requests invoice organization:
Identify all invoice files: bash # Find all invoice-related files find . -type f \( -name "*.pdf" -o -name "*.jpg" -o -name "*.png" \) -print
Report findings:
For each invoice, extract:
From PDF invoices:
From image receipts:
Fallback for unclear files:
Ask user preference if not specified:
markdown I found X] invoices from date range].
How would you like them organized?
Or I can use a default structure: Year/Category/Vendor
For each invoice, create a filename following this pattern:
YYYY-MM-DD Vendor - Invoice - Description.ext
Examples:
2024-03-15 Adobe - Invoice - Creative Cloud.pdf2024-01-10 Amazon - Receipt - Office Supplies.pdf2023-12-01 Stripe - Invoice - Monthly Payment Processing.pdfFilename Best Practices:
Before moving files, show the plan:
markdown # Organization Plan
## Proposed Structure Invoices/ ├── 2023/ │ ├── Software/ │ │ ├── Adobe/ │ │ └── Microsoft/ │ ├── Services/ │ └── Office/ └── 2024/ ├── Software/ ├── Services/ └── Office/
## Sample Changes
Before: invoice_adobe_march.pdf After: 2024-03-15 Adobe - Invoice - Creative Cloud.pdf Location: Invoices/2024/Software/Adobe/
Before: IMG_2847.jpg After: 2024-02-10 Staples - Receipt - Office Supplies.jpg Location: Invoices/2024/Office/Staples/
Process X] files? (yes/no)
After approval: bash # Create folder structure mkdir -p "Invoices/2024/Software/Adobe"
# Copy (don't move) to preserve originals cp "original.pdf" "Invoices/2024/Software/Adobe/2024-03-15 Adobe - Invoice - Creative Cloud.pdf"
# Or move if user prefers mv "original.pdf" "new/path/standardized-name.pdf"
Create a CSV file with all invoice details:
csv Date,Vendor,Invoice Number,Description,Amount,Category,File Path 2024-03-15,Adobe,INV-12345,Creative Cloud,52.99,Software,Invoices/2024/Software/Adobe/2024-03-15 Adobe - Invoice - Creative Cloud.pdf 2024-03-10,Amazon,123-4567890-1234567,Office Supplies,127.45,Office,Invoices/2024/Office/Amazon/2024-03-10 Amazon - Receipt - Office Supplies.pdf ...
This CSV is useful for:
markdown # Organization Complete! 📊
## Summary
## New Structure Invoices/ ├── 2024/ (45 files) │ ├── Software/ (23 files) │ ├── Services/ (12 files) │ └── Office/ (10 files) └── 2023/ (12 files)
## Files Created
/Invoices/ - Organized invoices/Invoices/invoice-summary.csv - Spreadsheet for accounting/Invoices/originals/ - Original files (if copied)## Files Needing Review List any files where information couldn't be extracted completely]
## Next Steps
invoice-summary.csv fileReady for tax season! 🎉
User: "I have a messy folder of invoices for taxes. Sort them and rename properly."
Process:
YYYY-MM-DD Vendor - Invoice - Product.pdf2024/Software/, 2024/Travel/, etc.invoice-summary.csv for accountantUser: "Organize my business receipts from last month by category."
Output:
markdown# March 2024 Receipts Organized ## By Category - Software & Tools: $847.32 (12 invoices) - Office Supplies: $234.18 (8 receipts) - Travel & Meals: $1,456.90 (15 receipts) - Professional Services: $2,500.00 (3 invoices) Total: $5,038.40 All receipts renamed and filed in: `Business-Receipts/2024/03-March/[Category]/` CSV export: `march-2024-expenses.csv`
User: "I have 3 years of random invoices. Organize them by year, then by vendor."
Output: Creates structure:
Invoices/
├── 2022/
│ ├── Adobe/
│ ├── Amazon/
│ └── ...
├── 2023/
│ ├── Adobe/
│ ├── Amazon/
│ └── ...
└── 2024/
├── Adobe/
├── Amazon/
└── ...Each file properly renamed with date and description.
User: "I download invoices from Gmail. They're all named 'invoice.pdf', 'invoice(1).pdf', etc. Fix this mess."
Output:
markdownFound 89 files all named "invoice*.pdf" Reading each file to extract real information... Renamed examples: - invoice.pdf → 2024-03-15 Shopify - Invoice - Monthly Subscription.pdf - invoice(1).pdf → 2024-03-14 Google - Invoice - Workspace.pdf - invoice(2).pdf → 2024-03-10 Netlify - Invoice - Pro Plan.pdf All files renamed and organized by vendor.
Invoices/
├── Adobe/
├── Amazon/
├── Google/
└── Microsoft/Invoices/
├── 2023/
│ ├── Software/
│ ├── Hardware/
│ ├── Services/
│ └── Travel/
└── 2024/
└── ...Invoices/
├── 2024/
│ ├── Q1/
│ │ ├── Software/
│ │ ├── Office/
│ │ └── Travel/
│ └── Q2/
│ └── ...Invoices/
├── Deductible/
│ ├── Software/
│ ├── Office/
│ └── Professional-Services/
├── Partially-Deductible/
│ └── Meals-Travel/
└── Personal/For ongoing organization:
Create a script that watches my ~/Downloads/invoices folder
and auto-organizes any new invoice files using our standard
naming and folder structure.This creates a persistent solution that organizes invoices as they arrive.
If date/vendor can't be extracted:
If same invoice appears multiple times:
For invoices split across files:
For unusual receipt formats:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,705 | 4,283 | -51% | 1 | 1 | 0% | 522 | 3,945 | +656% | 0 | 0 | — |
case-02 | fail→fail | 4,316 | 6,481 | +50% | 1 | 1 | 0% | 509 | 3,779 | +642% | 0 | 0 | — |
case-03 | fail→pass | 7,942 | 5,405 | -32% | 1 | 1 | 0% | 1,446 | 4,318 | +199% | 0 | 0 | — |
case-04 | fail→fail | 3,679 | 3,233 | -12% | 1 | 1 | 0% | 491 | 3,722 | +658% | 0 | 0 | — |
case-05 | pass→pass | 7,402 | 2,566 | -65% | 1 | 1 | 0% | 1,388 | 3,688 | +166% | 0 | 0 | — |
case-06 | fail→pass | 11,995 | 6,560 | -45% | 1 | 1 | 0% | 2,183 | 4,451 | +104% | 0 | 0 | — |
case-07 | pass→pass | 7,707 | 3,582 | -54% | 1 | 1 | 0% | 1,181 | 3,893 | +230% | 0 | 0 | — |
case-08 | fail→pass | 11,572 | 6,939 | -40% | 1 | 1 | 0% | 2,188 | 4,406 | +101% | 0 | 0 | — |
case-09 | fail→fail | 6,199 | 2,359 | -62% | 1 | 1 | 0% | 1,001 | 3,531 | +253% | 0 | 0 | — |
case-10 | pass→pass | 12,980 | 7,965 | -39% | 1 | 1 | 0% | 2,312 | 4,599 | +99% | 0 | 0 | — |
case-11 | fail→fail | 6,802 | 5,228 | -23% | 1 | 1 | 0% | 1,191 | 3,480 | +192% | 0 | 0 | — |
case-12 | fail→pass | 10,495 | 3,887 | -63% | 1 | 1 | 0% | 1,740 | 4,000 | +130% | 0 | 0 | — |
case-13 | pass→pass | 13,120 | 9,161 | -30% | 1 | 1 | 0% | 2,266 | 4,995 | +120% | 0 | 0 | — |
case-14 | pass→pass | 14,100 | 6,588 | -53% | 1 | 1 | 0% | 2,424 | 4,335 | +79% | 0 | 0 | — |
case-15 | pass→pass | 8,419 | 6,610 | -21% | 1 | 1 | 0% | 1,909 | 4,480 | +135% | 0 | 0 | — |
case-16 | pass→pass | 8,624 | 5,498 | -36% | 1 | 1 | 0% | 1,375 | 4,276 | +211% | 0 | 0 | — |
case-17 | fail→pass | 12,344 | 6,561 | -47% | 1 | 1 | 0% | 2,141 | 4,523 | +111% | 0 | 0 | — |
case-18 | pass→pass | 9,019 | 5,071 | -44% | 1 | 1 | 0% | 1,926 | 4,208 | +118% | 0 | 0 | — |
case-19 | fail→fail | 7,387 | 3,450 | -53% | 1 | 1 | 0% | 1,175 | 4,065 | +246% | 0 | 0 | — |
case-20 | pass→fail | 12,184 | 12,234 | +0% | 1 | 1 | 0% | 2,225 | 5,383 | +142% | 0 | 0 | — |
case-21 | fail→fail | 17,632 | 31,014 | +76% | 1 | 1 | 0% | 3,713 | 3,582 | -4% | 0 | 0 | — |
case-22 | fail→fail | 4,483 | 2,670 | -40% | 1 | 1 | 0% | 782 | 3,724 | +376% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +18 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.