Freelance Operations skill for Codex
Quotes, contracts and invoices that get paid. Codex handles the admin side of a freelance practice: it calculates a floor rate from target income, costs and realistic billable utilisation, writes scoped quotes with deposits and milestone payments, checks contracts for change control, IP on payment and kill fees, keeps a sequential invoice ledger, and drafts escalating payment reminders for you to approve. Tax and legal questions are flagged for an accountant or lawyer.
curl -fsSL codexskills.dev/install.sh \ | sh -s -- freelance-operations Installs to ~/.agents/skills/freelance-operations/ for every project on this machine.
curl -fsSL codexskills.dev/cli.mjs -o codex-skills.mjsnode codex-skills.mjs install freelance-operations The CLI also searches, updates and removes skills. Run it with no arguments to pick from a list. Needs Node 20.12+.
curl -fsSL codexskills.dev/install.sh \ | sh -s -- --project freelance-operations Installs to .agents/skills/freelance-operations/ in the current repository. Commit it and everyone who runs Codex there gets it.
curl -fsSLO codexskills.dev/downloads/freelance-operations.zipunzip -o freelance-operations.zip -d ~/.agents/skills/ The archive holds the skill folder with its generated agents/openai.yaml. Unzip into .agents/skills/ to scope it to a repo.
& ([scriptblock]::Create((irm codexskills.dev/install.ps1))) freelance-operations PowerShell 5.1 or 7. Installs to %USERPROFILE%\.agents\skills\. Add -Project for the current repo.
104-line POSIX script. No sudo, no telemetry. Read install.sh
Use it in Codex
Start a prompt with $freelance-operations, or pick it from /skills.
You can also just describe the task: Codex reads the description below and loads the playbook when your request matches.
What Codex reads before loading it
Sets up the business side of freelancing and solo consulting - rate calculation from target income and billable utilisation, scoped quotes with fixed, time-and-materials or retainer pricing, contract essentials (deposit, payment terms, IP on payment, change requests, kill fee), invoice numbering and required fields, payment reminders, time tracking, simple pipeline and cash tracking, with tax items flagged for an accountant. Use when a freelancer or consultant asks to price a project, write a quote, set up invoicing, chase a late payment, handle scope creep, or organise their admin.
Use it when
- Starting or tidying up a freelance or solo consulting business
- Pricing a project or deciding between fixed fee and hourly
- Setting up invoices, a ledger and a reminder routine
- A client keeps adding work outside the agreed scope
Use something else when
- You are a company sales team writing proposals and SOWs: use sales-proposals
- You need invoice PDFs generated from data: use invoice-generation
- You need a detailed review of a client's contract: use contract-review-checklist
How to check the result
The quote lists included and excluded items with milestone payments, the ledger numbering is sequential with no gaps, and every tax or legal question is marked for professional review.
The mistake it prevents
Starting work before a signed agreement and cleared deposit, then discovering the scope was never agreed.
A freelance practice runs well when every project starts with a written scope, a signed agreement and a deposit, time and expenses are recorded the same day, invoices go out on a fixed schedule with consistent numbering, and late payments are chased by a routine rather than by awkward ad-hoc emails. The goal is fewer surprises in cash, not more paperwork.
Tax, VAT/sales tax, business registration and contract enforceability depend on the country and status of the freelancer and client. Flag these for an accountant or lawyer; never state that a specific tax treatment applies. Sending quotes, invoices, reminders or contracts to clients is outward-facing: draft them and send only after the user confirms.
Setting a rate
Billable hours/year = working weeks x hours per week x billable utilisation
= 46 x 40 x 0.60 = 1,104 h
Required revenue = target pre-tax income + annual business costs (software,
insurance, equipment, accountant, pension, benefits)
= 110,000 + 18,000 = 128,000
Minimum hourly rate = 128,000 / 1,104 = ~116 per hour
Day rate = hourly x 8 (or the hours you actually bill per day)
Billable utilisation of 50-70% is typical once sales, admin and learning time are counted; new freelancers often assume 100% and underprice. Treat the result as a floor; market rate and the value delivered set the price above it.
Choosing a pricing model
| Model | Use when | Protect with |
|---|---|---|
| Fixed fee per project | Scope is clear, you have done similar work | Written deliverables, revision limit, change requests, milestone payments |
| Time and materials (hourly/daily) | Scope unclear, ongoing changes, advisory | Estimate range, weekly time reports, optional not-to-exceed cap |
| Retainer | Ongoing availability or monthly work | Hours or deliverables included, rollover rule, overage rate, notice period |
| Value-based | Large, measurable client benefit | Agreed baseline and measure; strong scope definition |
Quote template
# Quote <Q-2026-014> - <Client> - <Project> - valid until <date>
## Goal
<What the client wants to achieve, in their words.>
## Scope
Included: <deliverables with enough detail to test "done">
Not included: <obvious adjacent items, e.g. copywriting, hosting, content entry>
Revisions: <e.g. two rounds of revisions per deliverable>
## Timeline
<Milestones with dates or durations from deposit receipt; client inputs and their due dates>
## Price
| Milestone | Amount | Due |
|---|---|---|
| Deposit (non-refundable once work starts) | 40% | On signing |
| Design approved | 30% | On approval |
| Launch | 30% | On delivery |
Currency, taxes (stated separately where applicable), expenses policy.
## Terms
Subject to the attached agreement. Changes outside scope quoted separately before work starts.
Contract essentials
Use a written agreement for every engagement, even small ones. Check that it covers (and have a lawyer review the template once, not per project):
- Parties, project, scope reference (quote or SOW attached)
- Fees, deposit, payment terms (for example 14 days), currency, late-payment terms where local law allows them
- Change requests: written, priced, approved before work
- Client responsibilities and deadlines for feedback and materials; what happens if they are late (timeline shifts, pause fee)
- IP: ownership or licence transfers on full payment; your right to reuse pre-existing tools and to show the work in a portfolio (or not)
- Confidentiality
- Cancellation / kill fee: work done to date plus a percentage of remaining fee
- Limitation of liability (often capped at fees paid) and no guarantee of results the freelancer cannot control
- Independent contractor status; you control how and when the work is done (classification depends on reality and local law, not only the contract)
- Governing law and dispute process
For reviewing a contract a client sends, use contract-review-checklist.
Invoicing
Required content differs by country (and VAT-registered businesses have stricter rules); confirm with an accountant. Commonly needed:
- Unique sequential invoice number (for example
2026-0042; never reuse or skip silently) - Issue date and due date; supply date or period
- Your legal name, address, tax/VAT ID where registered; client’s legal name and address (and their VAT ID for B2B cross-border invoices where required)
- Line items with quantity, rate and amount; subtotal, tax lines, total, currency
- Payment instructions and reference; late-payment terms if used
- Purchase order number if the client uses POs (missing PO numbers are a top cause of delayed payment at larger clients)
Generating PDFs from data is covered by invoice-generation. Keep invoices in a ledger:
invoice_no,client,issued,due,amount,currency,status,paid_on,notes
2026-0041,Acme Ltd,2026-10-01,2026-10-15,4800.00,EUR,paid,2026-10-14,
2026-0042,Northwind,2026-10-05,2026-10-19,2400.00,EUR,overdue,,PO 7781
Payment reminders
| Timing | Message tone |
|---|---|
| 3 days before due | Friendly heads-up with the invoice attached |
| Due date + 1 day | Polite reminder, ask whether anything is blocking payment |
| + 7 days | Firm reminder; reference payment terms; ask for a payment date |
| + 14 days | Final notice; state next steps per contract (pause work, late fees where allowed) |
| + 30 days | Phone call; then formal demand or collections/small claims after advice |
Draft each reminder for the user to approve; never send automatically. Pause new work for clients with significantly overdue invoices, as the contract allows.
Time and scope tracking
- Record time daily against client and project with a short description; weekly summaries for T&M and retainer clients.
- Compare hours spent against the fixed-fee estimate at each milestone; at 80% of budget with significant work left, raise it with the client before going over.
- Log every out-of-scope request as a change request with an estimate, even if you decide to do it free; it makes the value visible and avoids precedent creep.
Monthly admin routine
- Send invoices for completed milestones and the month’s T&M or retainer
- Review the ledger: overdue invoices and reminders due
- Reconcile bank deposits against invoices
- Put aside the tax percentage your accountant recommends into a separate account
- Update pipeline: leads, quotes out, expected start dates, expected revenue next 3 months
- File receipts for expenses
- Check capacity versus pipeline; raise rates for new clients if consistently full
Gotchas
- Starting work before the deposit clears and the agreement is signed.
- Unlimited revisions, or “small tweaks” with no definition.
- Quoting from the client’s budget instead of from scope and rate.
- Invoicing irregularly, so cash arrives unpredictably and late payers go unnoticed.
- Not separating tax money from operating cash.
- Accepting client payment terms of 60-90 days without pricing in the financing cost.
Output
Rate calculation, quote, contract checklist with gaps, invoice ledger and template fields, reminder drafts, and a list of items for the accountant or lawyer.
What the zip contains
SKILL.md plus the interface file below. Nothing runs on install.
agents/openai.yaml
Gives the Codex app a display name, a one-line description and a starter prompt for this skill.
interface:
display_name: "Freelance Operations"
short_description: "Quotes, contracts and invoices that get paid"
default_prompt: "$freelance-operations Work out what hourly and day rate I need as a freelance designer to earn 90k a year" About this skill
Written and maintained by the Codex Skills editors to the same editorial standard as every skill here: a selective description, a real workflow, known pitfalls and a way to verify the work. First published , last updated . MIT licensed. Something wrong or out of date? Tell us.