Free · No signup · Five files

The five Claude skills I actually use

There are directories listing sixty-three thousand free Claude skills. I installed forty of them looking for the good ones. Most were not skills at all — one was a desktop app, one was a prompt list, one was Claude Code itself. These five are the ones that survived, rebuilt generic so you can run them. Copy the file, drop it in the folder, done.

What separates a skill from a bookmark

Most published skills are a paragraph of instructions in a folder with a well-written README. They read like a tool and behave like a sticky note.

The five below share one property: each produces an artefact you could put in front of a paying client — a score, a verdict, a table, a sendable email. Not a summary. Not advice. A thing.

Two of them carry a rule worth stealing even if you never install a single file: the score is deterministic code — never adjust a score by judgement, and never present an estimate as a score. A number the model can be talked out of is not evidence, and a client will find that out at the worst possible moment.

How to install any of them

  1. Make the folder: ~/.claude/skills/<skill-name>/
  2. Save the block below into it as SKILL.md
  3. Restart Claude Code. Ask for it by name, or just describe the job — the description line is what makes it fire on its own.

That description field is the part most people get wrong. It is not a label — it is the trigger. Write it as the sentences you would actually say when you want the job done.

01

on-page-audit

Scores a page against the live top-10 for a keyword and tells you what to fix.

This is the one that replaced a $99/mo tool and a morning of work. It is also the easiest thing to sell, because the output is a number a client can watch move.

~/.claude/skills/on-page-audit/SKILL.md
---
name: on-page-audit
description: Score a page against the live top-10 SERP for a target keyword and return a deterministic 0-100 optimisation score with a ranked gap list. Use when asked to "audit this page", "score this page for [keyword]", "what do I need to rank for [keyword]", or when a page is underperforming and nobody knows why.
---

# On-Page Audit

Answer one question: what is on the pages that outrank us, that is not on ours?

## Inputs
- Target URL
- Target keyword
- Market (country + language) — the SERP is localised, and auditing
  against the wrong market is worse than not auditing at all

## Steps
1. Pull the top 10 organic results for the keyword in the target market.
   Exclude the target URL if it already ranks.
2. Fetch and parse each competitor page: title, H1, H2s, word count, and
   term frequency for the head term and its variants.
3. Parse the target page the same way, with the same parser. Different
   parsers produce different numbers and destroy the comparison.
4. For each measured term compute the range across competitors
   (min / median / max) — never a single target number. Ranges are honest.
   Single numbers pretend to a precision that does not exist.
5. Score the target 0-100 in code against those ranges. Suggested weights:
   coverage of terms all top-3 use > body length inside range >
   heading placement > everything else.
6. Emit the gap list ranked by (weight x distance from median).

## Output
| Field      | Value                                                  |
|------------|--------------------------------------------------------|
| Score      | 0-100                                                  |
| Band       | Critical <40 / Weak 40-59 / Competitive 60-79 / Strong 80+ |
| Top gaps   | 5 max, each with current value vs competitor range     |
| Word count | target vs competitor median                            |

## Rules
- The score is deterministic code. Never adjust a score by judgement, and
  never present an estimate as a score. The moment a score becomes a vibe
  it stops being evidence you can put in front of a client.
- Store every run with its date. The second audit is worth more than the
  first, because it is the one that proves movement.
- Recommend nothing you cannot point at in a competitor's HTML.
- Always report the date and the SERP the score was measured against.
  SERPs move; a score without a date is a rumour.
02

local-audit

Audits a Google Business Profile and its map-pack competitors across six pillars.

Local is where small businesses actually feel the money. This one turns a fifteen-minute look at a listing into a scored document with a fix list.

~/.claude/skills/local-audit/SKILL.md
---
name: local-audit
description: Audit a Google Business Profile and its map-pack competitors, returning a deterministic 0-100 score across six pillars plus a ranked fix list with evidence tiers. Use for "audit this GBP", "why aren't we in the map pack", "check this business on Google Maps", or any local-SEO review.
---

# Local Profile Audit

## Read-only, always
This skill never writes to a live profile. Everything it does is
observation. A tool that can edit a client's public listing is one bad
tool call away from a very bad day.

## The six pillars
| Pillar      | What it measures                                        |
|-------------|---------------------------------------------------------|
| Foundations | Name, address, phone, hours, categories, service area   |
| Reviews     | Volume, velocity, rating, response rate and quality     |
| Risk        | Guideline violations that could suspend the listing     |
| Website     | Landing-page relevance and speed for the mapped query   |
| Conversion  | Photos, products, booking path, messaging enabled       |
| Offsite     | Citation consistency, obvious NAP conflicts             |

## Steps
1. Capture the profile as it renders publicly. Snapshot it — you need
   the before, and you will not be able to reconstruct it later.
2. Score each pillar 0-100 in code from the captured fields, then a
   weighted composite.
3. Tag every finding with an evidence tier:
   - Confirmed  — visible in the capture
   - Inferred   — consistent with the data, not directly visible
   - Hypothesis — worth testing, no evidence yet
4. Tag every recommendation with policy risk: Safe / Grey / Violates.
5. Capture the top 3 map-pack competitors for the primary query. Flag
   visible violations (keyword-stuffed names, virtual offices, duplicate
   listings) as redressal candidates.

## Output
Composite score, six pillar scores, a findings table
(finding / pillar / evidence tier / policy risk / fix), competitor flags.

## Rules
- Evidence tier on every single finding. An untiered finding is an
  opinion wearing a lab coat.
- Never emit a recommendation in the Violates band, even when it works.
  Short-term win, long-term suspension, and it is your name on the invoice.
- Snapshot before and after. Local work is slow, and proof is the only
  thing that survives the wait.
03

vet-backlinks

Turns a raw list of domains into PASS / REVIEW / REJECT with a reason on each.

Not because it earns — because it stops losses. One bad link buy costs more than a month of the work that paid for it.

~/.claude/skills/vet-backlinks/SKILL.md
---
name: vet-backlinks
description: Turn a raw list of candidate domains into PASS / REVIEW / REJECT verdicts for guest-post and link outreach. Use for "vet these sites", "are these backlinks safe", "check this prospect list", or before committing any outreach spend.
---

# Vet Backlink Prospects

One question per domain: will a link from here help, or get the client burned?

## Input
A list of domains or URLs. Nothing else required.

## Signals to pull per domain
| Signal                    | Why it matters                                    |
|---------------------------|---------------------------------------------------|
| Authority + spam score    | Baseline only — never a verdict on its own        |
| Organic traffic estimate  | Authority with no traffic is usually a rented metric |
| Outbound link ratio       | Link farms leak links on every page               |
| Guest-post footprints     | "Write for us", "sponsored post", keyword-anchor bios |
| Archive history           | A sudden topic change means an expired domain was rebuilt |
| Domain age + registrar churn | Recent flips cluster hard with PBNs            |
| Topical fit               | An unrelated site passes little and looks bought  |

## Verdicts
- PASS   — real site, real traffic, topical fit, no spam footprint
- REVIEW — one or two soft flags, a human decides
- REJECT — link farm, PBN signal, reputation abuse, or plainly off-topic

## Output
CSV: domain, authority, spam score, traffic, outbound ratio, footprints
found, first archived, verdict, one-line reason.

## Rules
- Every verdict carries its reason. A REJECT with no reason is
  unarguable, and therefore useless to the person who has to act on it.
- Never let one metric decide. High authority with no traffic is the most
  common trap in this entire category.
- When genuinely torn, REVIEW. A slow yes costs a day. A fast yes can
  cost a domain.
04

client-report

Pulls one performance update across analytics, search, ads and CRM — no hunting for account IDs.

Reporting is unbilled hours in most agencies. This turns a recurring afternoon into a command, and clients who see numbers monthly churn less.

~/.claude/skills/client-report/SKILL.md
---
name: client-report
description: Pull a single performance update for one client across analytics, search, ads and CRM without hunting for account IDs. Use for "how is [client] doing", "pull last 30 days", "monthly update for [client]".
---

# Client Performance Report

## The problem this solves
Every report used to open with fifteen minutes of "which analytics
property is this client again". Build the registry once, never
rediscover it.

## Step 1 — The registry
One table mapping client to data sources. This is the entire trick.

| client | analytics_id | search_console_url | ads_id | crm_id |
|--------|--------------|--------------------|--------|--------|

Read it first, every time. If the client is not in it, add them before
you report anything.

## Step 2 — Pull, same windows every time
Last 30 days against the previous 30. Same comparison every month or the
trend is fiction.
- Analytics: sessions, users, conversions, by channel
- Search:    clicks, impressions, average position, top queries and pages
- Ads:       spend, conversions, cost per conversion, ROAS
- CRM:       leads received, contacted, booked

## Step 3 — Write it
1. The number that matters — one metric, this month vs last
2. What moved and why — the cause, not the observation
3. What we did — the work, plainly
4. What is next — one or two specifics, with dates

## Rules
- Never report a metric you cannot explain. "Traffic is down 12%" with no
  cause is worse than saying nothing at all.
- Same windows, same metrics, every month. Changing the frame to flatter
  a bad month is the fastest way to lose trust permanently.
- Lead with the bad number when there is one. They already know.
05

client-email

Writes the email that lands an uncomfortable number or opens a scope conversation.

The most direct one on this list. The email that names a problem well is the email that becomes more scope.

~/.claude/skills/client-email/SKILL.md
---
name: client-email
description: Write client-facing emails that land an uncomfortable number, deliver audit findings, or open a scope conversation. Use for "write this email to [client]", "how do I tell them about this", "turn these findings into something sendable".
---

# Client Email

## Structure
1. The point, in the first sentence. No "hope you're well" — they scan.
2. The evidence. One or two specifics with numbers. Not five.
3. What it means for them, in their language rather than yours.
4. The ask. Exactly one, with a date on it.

## Rules
- Name the bad number in the subject line or the first sentence. Burying
  it reads as hiding it, and they always find it eventually.
- Never blame a previous agency by name. Describe what was done and what
  it cost. The reader draws the conclusion, and you keep your reputation.
- One ask per email. Two asks reliably produces zero.
- No hedging stacks. "I think we might possibly want to consider" is four
  hedges saying nothing. Say the thing.
- If you cannot show it, do not claim it. Every number in a client email
  should be one you can produce on request inside a minute.

## Before sending
- Read it as the client having a bad day. Does any sentence read as
  blame-shifting?
- Cut every sentence that exists to make you feel better rather than to
  inform them.
- Check the ask is actually answerable in a single reply.

What is not on this page

Two of these — the on-page audit and the local audit — run against scoring engines and a database I built for my own agency. Those engines are not here, and the skill files alone will not reproduce my exact numbers.

What is here is the part that actually matters: the structure, the scoring logic, the evidence rules, and the constraints that keep the output defensible. Build the engine behind it in an afternoon and you will have something better than mine, because it will fit your work rather than someone else's.

The five files are the easy part

A skill is a single job done well. The leverage is in the system around them — what runs on a schedule, what hands off to what, and what you stop doing entirely. That is what I teach in The Solo Operator's AI System.

Get the system, not just the files.

The founding cohort opens at $97. The waitlist costs nothing and commits you to nothing — you'll hear when it's ready and not before.

Unsubscribe anytime · Never shared