DEV Community

Ricardo
Ricardo

Posted on

What I learned building 7 Claude Code skills to automate freelance admin

I use Claude Code all day for actual work. But the stuff that eats my evenings as a freelancer isn't code — it's the admin: invoices, proposals, re-reading contracts, chasing scope creep. So I started turning each of those into a Claude Code skill, and it changed how the boring half of the job feels. Here's what I learned.

Why a skill beats a web app for this

There are a hundred invoice generators and freelance apps out there (Tuttle, Bonsai, dozens of SaaS tools). They're fine. But they all have the same friction: you leave what you're doing, open another app, fill a form, come back.

A Claude Code skill lives where I already am — the terminal. I type:

/invoice bill Acme Corp for 12 hrs of website fixes at $75/hr plus $40 hosting
Enter fullscreen mode Exit fullscreen mode

…and it produces a clean invoice (HTML I can paste into an email + a Markdown copy for records), asking only for what's genuinely missing. No context switch. The admin happens in the same place as the work.

What makes a good "admin" skill

A few things I learned writing these:

1. The SKILL.md description is everything. It's how the model decides when to fire the skill. Vague descriptions never trigger; specific trigger phrases ("make an invoice", "bill this client", "write up an invoice for…") do. Front-load the when to use, not just the what.

2. Ask only for what's missing — never invent. The fastest way to make an admin skill untrustworthy is to hallucinate a rate or a client name. My rule in every skill: infer what you safely can, use sensible defaults (Net-15, today's date, INV-0001), and ask one short question if something load-bearing is genuinely absent.

3. Encode the judgment, not just the format. The invoice skill isn't a template — it computes line totals, handles optional tax, right-aligns money, shows the due date explicitly. The /redline (contract) skill doesn't just format; it knows which clauses are traps (IP transferring on signature, Net-60, unlimited revisions) and explains them in plain English. That domain judgment is the actual value.

4. Keep it self-contained. No API keys, no external calls. It should run for anyone the moment they add it.

The set

I ended up with 7, one for each thing that used to cost me an evening:

  • /invoice — work description → clean invoice
  • /proposal — job post or call notes → a proposal built to win (mirror the problem, sell the outcome, anchored pricing)
  • /meeting — messy notes → summary + action items + follow-up email
  • /redline — a contract → the risky clauses flagged before you sign
  • /outreach — a prospect → a personalized 3-touch sequence
  • /scopecheck — a new ask vs. original scope → a verdict + a ready reply
  • /setrate — a target income → the hourly rate, with the math shown

The /invoice one is free if you want to see the shape of a good admin skill:

npx skills add ricardo-agent/freelancer-skills
Enter fullscreen mode Exit fullscreen mode

The full set is a small paid pack (one-time, $27): https://agentia11.gumroad.com/l/dukuod

And if you're not in Claude Code, the same logic runs as free browser tools: https://freelancekit.tools

The takeaway

If there's a recurring, low-joy task in your workflow — freelance admin or otherwise — it's probably a good Claude Code skill. The bar isn't "can the model do it once in a chat." It's "can you encode the judgment so it does it well every time, from a one-line prompt, without you having to think." That's when a skill stops being a novelty and becomes something you actually rely on.

What have you turned into a skill? Curious what recurring tasks other people have automated this way.

Top comments (0)