โ† Back to Directory
๐Ÿงพ

Expense Categorizer

Auto-categorize bank transactions and generate monthly spending reports

๐Ÿค– 0 โ†‘ 0 โ†“ ย |ย  ๐Ÿ‘ค 0 โ†‘ 0 โ†“
intermediateโฑ 35 minutes๐Ÿ”„ 8 swappable alternatives

๐Ÿง‚ Ingredients

๐Ÿ”Œ APIs

bank_transaction_data_merchant_amount_date_category_hints

๐Ÿ”„ Alternatives:

Yodlee โ€” More institution coverageMx โ€” Better data enrichmentTeller โ€” Direct bank connections, no screen scraping

expense_log_and_spending_dashboard

๐Ÿ”„ Alternatives:

Airtable โ€” Better for structured data + APINotion Databases โ€” More flexible views

alerts_for_unusual_transactions_or_budget_thresholds

๐Ÿ”„ Alternatives:

Ntfy โ€” Free, open-source push notificationsTelegram โ€” Free push via TelegramSlack โ€” Team notification channel

๐Ÿ“‹ Step-by-Step Build Guide

STEP 1

1. Connect to Plaid (or set up CSV upload) for bank transaction data

1. Connect to Plaid (or set up CSV upload) for bank transaction data

Connect to Plaid (or set up CSV upload) for bank transaction data

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully โ€” retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

๐Ÿง‘ Human Required

  • โ€ข ## Connect Your Bank via Plaid 1. Your agent will open a Plaid Link window 2. Search for your bank 3. Log in with your bank credentials (secured by Plaid, not stored by the agent) 4. Select which accounts to connect 5. Confirm the connection ๐Ÿ”’ Plaid is used by Venmo, Robinhood, and most fintech apps. Read-only access.
STEP 2

2. Pull recent transactions: merchant name, amount, date, Plaid category hints

2. Pull recent transactions: merchant name, amount, date, Plaid category hints

Pull recent transactions: merchant name, amount, date, Plaid category hints

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully โ€” retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 3

3. Categorize each transaction: Dining, Groceries, Transport, Subscriptions, Sho

3. Categorize each transaction: Dining, Groceries, Transport, Subscriptions, Shopping, Bills, Entertainment, Health, Other

Analyze the input and classify it into the defined categories.

Classification approach:
1. Extract key signals from the content (keywords, sender, urgency markers, topic)
2. Match against category definitions
3. Assign confidence score (high/medium/low)
4. For ambiguous cases, classify as the more important/urgent category (err on the side of caution)

Output for each item: { category, priority, confidence, reasoning }

If an item could belong to multiple categories, pick the primary one and note the secondary.
STEP 4

4. Use merchant name patterns and Plaid hints; allow manual reclassification for

4. Use merchant name patterns and Plaid hints; allow manual reclassification for learning

Use merchant name patterns and Plaid hints; allow manual reclassification for learning

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully โ€” retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 5

5. Detect anomalies: unusually large transactions, duplicate charges, new recurr

5. Detect anomalies: unusually large transactions, duplicate charges, new recurring charges

Monitor the data for anomalies and trigger alerts when thresholds are exceeded.

Detection rules:
1. Compare current values against defined thresholds
2. Check for sudden changes (>X% deviation from rolling average)
3. Look for pattern breaks (missing expected data, unusual timing)
4. Cross-reference multiple signals for higher confidence

For each detected anomaly:
- Severity: ๐Ÿ”ด Critical (immediate action) / ๐ŸŸก Warning (attention needed) / ๐Ÿ”ต Info (notable)
- What: specific metric and current value
- Why: what threshold or pattern was violated
- Context: recent trend, baseline comparison
- Suggested action: what to do about it

Suppress duplicate alerts โ€” don't re-alert for the same issue within the configured cooldown period.
STEP 6

6. Alert on anomalies: 'Unusual charge: $487 at [merchant] โ€” is this expected?'

6. Alert on anomalies: 'Unusual charge: $487 at [merchant] โ€” is this expected?'

Alert on anomalies: 'Unusual charge: $487 at [merchant] โ€” is this expected?'

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully โ€” retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 7

7. Monthly: spending report โ€” total spending, breakdown by category ($ and %), v

7. Monthly: spending report โ€” total spending, breakdown by category ($ and %), vs previous month, vs budget targets

Compile the gathered data into a structured report.

Format as clean Markdown with:
- Title/date header
- Executive summary (2-3 sentences)
- Key metrics section with actual numbers
- Detailed sections with bullet points
- Action items or recommendations at the end

Keep it scannable โ€” busy people read reports in 30 seconds.
Use emoji sparingly for visual anchors (๐Ÿ“Š metrics, โœ… wins, โš ๏ธ concerns, ๐Ÿ“‹ action items).
Include data comparisons: "X this period vs Y last period (โ†‘Z%)"

If any data source was unavailable, note it clearly: "โš ๏ธ [Source] data unavailable โ€” excluded from this report."
STEP 8

8. Track trends: which categories are increasing/decreasing over 3-6 months

8. Track trends: which categories are increasing/decreasing over 3-6 months

Track trends: which categories are increasing/decreasing over 3-6 months

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully โ€” retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

๐Ÿค– Example Agent Prompt

Connect to Plaid (or set up CSV upload) for bank transaction data

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully โ€” retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

Copy this prompt into your agent to get started.