Skip to main content
skill CX Codex

smart-categorize — Claude Code skill: sort transactions into

Sorts uncategorized transactions: runs your existing rules first, then suggests new ones from vendor names.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add openaccountant/skills --skill smart-categorize -a claude-code
Open on GitHub

What smart-categorize does

The skill pulls transactions with an empty category, applies the rules you already saved, and reports how many rows it handled. Whatever is left gets grouped by similar vendor names, with a suggested category per group. You confirm or adjust before anything is written.

Two Wilson tools do the work: transaction_search finds the uncategorized rows, categorize applies the rules. Matching is case-insensitive and looks at any part of the description. When a transaction fits several rules, the earliest one wins. Categories that are already set stay untouched unless you ask for an overwrite.

Confirmed rules can be saved — Wilson keeps them in the categorization_rules table, so they survive the session and apply to later imports. Without Wilson the skill walks through doing it by hand in Excel or Google Sheets: a rules sheet with pattern-category pairs and formulas built on REGEXMATCH. One catch there: VLOOKUP in Google Sheets does not support wildcards, so exact matching only gets you so far.

What it helps with

  • find transactions with no category set
  • apply saved rules to a fresh import
  • group leftover rows by vendor name
  • suggest a category for each vendor group
  • save new rules so the same vendors stop coming back

Example prompts for the agent

  • categorize my uncategorized transactions
  • show what's still uncategorized and suggest rules
  • save the confirmed rules for future imports

How to install smart-categorize

1Skills CLI (Vercel)

npx skills add openaccountant/skills --skill smart-categorize -a claude-code

2Manually: put the files in place

~/.claude/skills/smart-categorize/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/smart-categorize/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about smart-categorize

How do I install smart-categorize in Claude?

Run npx skills add openaccountant/skills --skill smart-categorize -a claude-code. The skill lands at ~/.claude/skills/smart-categorize/SKILL.md.

What does smart-categorize do?

It finds uncategorized transactions, applies your existing description-based rules, and suggests categories for the rest grouped by vendor. New rules are applied only after you confirm them.

What does the skill need to run?

It relies on the Wilson tools: transaction_search to find uncategorized transactions and categorize to apply rules. Without Wilson you fall back to sorting in a spreadsheet.

Source text

SKILL.md · MIT
---
name: smart-categorize
description: >
  Auto-categorize uncategorized transactions using vendor pattern matching.
---

# Smart Categorize

## Overview
Automatically categorize uncategorized transactions by matching vendor/description patterns against known rules. Uses existing categorization rules first, then suggests new rules for unmatched transactions based on common vendor names.

## Wilson Tools Used
- `categorize` — apply pattern-based categorization rules to transactions
- `transaction_search` — find uncategorized transactions

## Workflow
1. Use `transaction_search` to find all transactions where `category` is null or empty.
2. Run `categorize` to apply existing categorization rules (pattern matching on description field).
3. Report how many transactions were categorized by existing rules.
4. For remaining uncategorized transactions, group by vendor/description similarity.
5. Suggest category assignments for each vendor group (e.g., "SPOTIFY" -> Entertainment, "SHELL OIL" -> Transportation).
6. Ask the user to confirm or adjust the suggested categories.
7. Apply confirmed categories and optionally save new categorization rules for future imports.

## Without Wilson
You can categorize transactions manually in a spreadsheet:

### Setting Up Category Rules in Excel/Sheets
1. Create a reference sheet called "Rules" with two columns: `Pattern` and `Category`.
2. Add your vendor patterns:
   | Pattern | Category |
   |---------|----------|
   | AMAZON | Shopping |
   | WHOLE FOODS | Groceries |
   | SHELL | Transportation |
   | NETFLIX | Entertainment |
   | STARBUCKS | Dining |

3. In your transactions sheet, use a lookup formula in the Category column:
   - **Excel**: `=IFERROR(INDEX(Rules!B:B,MATCH("*"&"AMAZON"&"*",Rules!A:A,0)),"Uncategorized")` — but this only works for exact matches.
   - **Better approach with Excel**: Use a helper column with `=SUMPRODUCT` or VBA macro to do partial matching.
   - **Google Sheets**: `=IFERROR(VLOOKUP("*"&A2&"*",Rules!A:B,2,FALSE),"Uncategorized")` does not support wildcards in VLOOKUP.
   - **Practical Google Sheets approach**:
     ```
     =IF(REGEXMATCH(A2,"(?i)amazon"),"Shopping",
      IF(REGEXMATCH(A2,"(?i)whole foods|trader joe"),"Groceries",
      IF(REGEXMATCH(A2,"(?i)shell|chevron|exxon"),"Transportation",
      "Uncategorized")))
     ```

### Common Category Mapping
| Vendor Pattern | Suggested Category |
|---|---|
| AMAZON, TARGET, WALMART | Shopping |
| WHOLE FOODS, TRADER JOE, KROGER, SAFEWAY | Groceries |
| UBER EATS, DOORDASH, GRUBHUB | Dining |
| NETFLIX, SPOTIFY, HULU, DISNEY+ | Entertainment |
| SHELL, CHEVRON, BP, EXXON | Transportation |
| AT&T, VERIZON, T-MOBILE, COMCAST | Utilities |
| CVS, WALGREENS, PHARMACY | Healthcare |
| VENMO, ZELLE, PAYPAL (person-to-person) | Transfers |

## Important Notes
- Pattern matching is case-insensitive and matches against any part of the transaction description.
- Rules are applied in the order they were created. If a transaction matches multiple rules, the first match wins.
- Categorization does not overwrite transactions that already have a category unless you explicitly ask.
- Wilson stores rules in the `categorization_rules` table so they persist across sessions and apply to future imports automatically.

© openaccountant · MIT · openaccountant/skills

Similar skills

Everything for Finance and business →

From the same set28

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor