categorize-transactions
Skill65 starsChanged 12 days agoMITView on GitHub
Review and categorize uncategorized bank transactions, match them with invoices, and verify bookkeeping entries. Use when the user wants to review transactions, categorize expenses, do bookkeeping, or reconcile their bank account.
In this repository26 other files it gives its agents.
- accounting-cutoverSkill
- calculators-and-formsSkill
- company-incorporationSkill
- corporate-tax-registrationSkill
- create-invoiceSkill
- expense-reportSkill
- financial-overviewSkill
- find-receiptsSkill
- gewerbe-registrationSkill
- manage-clientsSkill
- manage-productsSkill
- monthly-reconciliationSkill
- overdue-remindersSkill
- pl-opening-balanceSkill
- pl-tax-settingsSkill
- run-payroll-monthSkill
- run-workflowSkill
- suggest-categorySkill
- ta-client-periodSkill
- ta-company-reviewSkill
- ta-datev-preparationSkill
- ta-missing-receiptsSkill
- ta-tax-complianceSkill
- tax-deduction-finderSkill
- tax-reportSkill
- verfahrensdokumentationSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 1 is distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Call get_company_details and check isSme, country and usesCompanyChart:
- Very specific: line 30
Fetch uncategorized transactions: Call search_transactions to find transactions that need attention.
- Very specific: line 39
Freelance: Use categorize_transaction with the transaction details — it returns the AI-suggested freelance category.
- Distinctive: line 44
Invoice matching: When a transaction looks like an incoming payment:
- Very specific: line 45
Call list_invoices to find matching unpaid invoices (by amount or client)
- Very specific: line 46
Use link_transaction to connect the payment to the invoice
- Very specific: line 50
Use upload_bulk_attachments for multiple receipts
- Very specific: line 51
Use link_attachment_transaction to connect receipts to transactions
- Very specific: line 53
Verification: After categorizing, use change_transaction_verification to mark transactions as verified.
≈ “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
Help the user categorize and organize their bank transactions.
First: determine account type and country
Call get_company_details and check isSme, country and usesCompanyChart:
- Freelance (
isSme: false,usesCompanyChart: false): Usecategorize_transaction— AI detects the freelance category automatically. - JDG (
isSme: false,country: PL,usesCompanyChart: true): a Polish sole trader books on its own PL_KPIR chart, never on the freelance categories. Its tax book is the KPiR, or on the ryczałt the revenue register; the account decides the KPiR column. Uselist_company_categoriesand assign the account withupdate_transaction(company_category_id). - GmbH / UG (
isSme: true,country: DE): Uselist_company_categoriesto find DATEV categories by code. If the right category isn't provisioned, usesearch_skr_by_codeorsuggest_skr_categoryto search the full SKR catalog, thencreate_company_categoryto add it. - Sp. z o.o. (
isSme: true,country: PL): full books on the PL_FULL chart of accounts (Zakładowy Plan Kont), not a KPiR. Uselist_company_categorieswithchart_template: "PL_FULL"and assign the account withupdate_transaction. The SKR tools are German and not available for it; if no PL_FULL account fits, ask the user which account to use.
Transfers between own accounts
With automatic categorization on, a bank import books a German company's payment to or from another of its connected accounts by IBAN: on Internal transfer for a freelancer or trader, on Transfers between own accounts for a GmbH or UG. These rows carry no VAT and do not change profit. Leave them there unless the user says the payment is something else.
Workflow
- Fetch uncategorized transactions: Call
search_transactionsto find transactions that need attention. Look for unverified or uncategorized entries. - Smart categorization: For each transaction, suggest a category based on:
- The transaction description / reference text
- The counterparty name
- The amount and pattern (recurring = likely subscription)
- Similar past transactions
- Assign the category:
- Freelance: Use
categorize_transactionwith the transaction details — it returns the AI-suggested freelance category. - SME, or a JDG on its PL_KPIR chart: Use
update_transactionwithcompany_category_idto assign the account. For a GmbH/UG, if the needed category isn't inlist_company_categories, search the full SKR03/SKR04 catalog withsearch_skr_by_code(by number) orsuggest_skr_category(by description, uses AI). Thencreate_company_categoryto add it.
- Freelance: Use
- Same counterparty: When the user corrects the category of one booking, call
find_same_counterparty_transactionswith that booking before you save its new category. Offer to change thesuggestedbookings too, and say how many finalized ones stay as they are. Change the ones the user agrees to withupdate_transaction. If the new category asks for details (trip dates, VAT period, business share, asset lifetime), change only the one booking. - Invoice matching: When a transaction looks like an incoming payment:
- Call
list_invoicesto find matching unpaid invoices (by amount or client) - Use
link_transactionto connect the payment to the invoice
- Call
- Document attachment: Remind the user to attach receipts for expenses:
- An uploaded receipt or invoice books itself as an unpaid booking. Never create a second transaction for it. Use
find_booking_paymentsto find its payment, andrecord_booking_paymentif it was paid another way. - Use
upload_bulk_attachmentsfor multiple receipts - Use
link_attachment_transactionto connect receipts to transactions
- An uploaded receipt or invoice books itself as an unpaid booking. Never create a second transaction for it. Use
- Verification: After categorizing, use
change_transaction_verificationto mark transactions as verified.
Present transactions in batches of 10-15 for manageable review. Show: Date, Amount, Description, Suggested Category.
Does 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.

