Claude Code Skill automatisiert das Mahnwesen für Freiberufler
Ein Tutorial zeigt, wie ein Claude Code Skill überfällige Rechnungen verfolgt, ohne selbst E-Mails zu versenden. Das Skill liest eine Rechnungsliste im Klartext und übernimmt den unangenehmen Teil des Mahnens.

If you run a one-person consultancy, late invoices cost you twice: once in cash flow, and again in the 20 awkward minutes it takes to write a reminder that's firm but doesn't burn the relationship. This tutorial builds a Claude Code skill that does the awkward part: it reads a plain-text invoice list, works out who is overdue, and drafts the right reminder for how late each one is. You still press send.
You need Claude Code installed ( https://code.claude.com/docs/en/setup ).
A skill is a folder containing a SKILL.md file. The top of the file is YAML "frontmatter" with a description; Claude reads that description to decide when the skill applies. The rest is plain-English instructions. Project skills live in.claude/skills/<name>/SKILL.md inside your project folder. No code required.
| invoice | client | amount | currency | issued | due | status | last_reminder | |---|---|---|---|---|---|---|---| | 2026-014 | acme | 2400 | USD | 2026-09-01 | 2026-09-15 | sent | | | 2026-015 | brightline | 1800 | USD | 2026-10-01 | 2026-10-31 | sent | | Enter fullscreen mode Exit fullscreen mode A markdown table beats a spreadsheet here: Claude can read and update it reliably, and you can read it too.
Create.claude/skills/invoice-chase/SKILL.md:
--- name: invoice-chase description: Draft reminders for unpaid invoices, escalating by how overdue they are. Use when the user mentions an overdue, late, or unpaid invoice, or asks "who owes me money". --- # Invoice chase Run `date +%F` first and compute days overdue explicitly for each open invoice. | Days overdue | Tone | Must include | |---|---|---| | -3 to 0 | Friendly heads-up | invoice #, amount, due date, payment details | | 1-7 | Polite reminder | + "could you confirm when this is scheduled?" | | 8-21 | Firm | + offer to resend, ask who in accounts to contact | | 22-45 | Final notice | + date work pauses / late fee applies | | 45+ | Stop drafting | list options (call, pause work, demand letter) | Rules: under 90 words; never accuse before stage 4; save drafts to clients/ <client> /drafts/; update last_reminder; never send email. Enter fullscreen mode Exit fullscreen mode Three design choices matter more than the wording:
Open a terminal in your project folder, run claude, and type:
Claude picks up the skill from its description, lists open invoices by days overdue with totals, and offers to draft reminders. Then:
You get one draft per invoice, at the right stage, saved in each client's drafts/ folder.
Instructions can be ignored; hooks can't. A PreToolUse hook runs before every shell command Claude tries, and exit code 2 blocks the command. Add.claude/settings.json:
{ "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash \" $CLAUDE_PROJECT_DIR \" /.claude/hooks/no-send.sh" } ] } ] } } Enter fullscreen mode Exit fullscreen mode and.claude/hooks/no-send.sh:
#!/usr/bin/env bash input = " $( cat ) " if printf '%s' " $input " | grep -Eq '(sendmail|mailx? +-s|smtp|api\.sendgrid|hooks\.slack\.com)'; then echo "Blocked: this workspace only drafts messages." > &2; exit 2 fi exit 0 Enter fullscreen mode Exit fullscreen mode Now even if a future instruction says "just send it", the command is stopped and Claude is told why.
The same pattern (data in a markdown file, a ladder of situations, drafts only) works for proposal follow-ups and post-meeting recaps. I've published this skill plus client-follow-up and meeting-to-tasks as a free folder you can drop into Claude Code: https://solostackkits.gumroad.com/l/free-consultant-skills
Disclosure: I make Solo Stack Kits; the free sample above is ours, and there's a paid version with more skills.
Not affiliated with Anthropic; "Claude" is a trademark of Anthropic.
Browse 279 more Claude Code workflows: https://solostackkits.surge.sh