Building your first Claude skill for PPC: a 20-minute walkthrough.

From a blank file to a working skill that audits a Google Ads campaign from a CSV — the exact prompt, the gotchas, and the patterns that scale to 39 client accounts.

L
Leonardo Rocha
Building actcenter while operating 39 client accounts at RMC PPC
Developer building a Claude skill file for PPC campaign auditing

What you'll have at the end

You will type something like "audit this campaign export" into Claude. It will detect the skill, read your CSV, apply the audit framework you wrote, and return a structured report with: wasted spend findings, CPA outliers, ad-group health flags, recommended next actions. Same shape, every time.

You will not be writing code. You will be writing one Markdown file with a clear job description.

Step 1 — Decide what the skill does (5 minutes)

Step 1 of 5

One job, written down

The most common reason a first skill fails is that it tries to do too many things. Write down, in one sentence, the one thing this skill does. Everything else is out of scope.

Bad first skill: "PPC assistant that does audits, RSAs, search-term analysis, pacing, and Q&A." Good first skill: "Audit one Google Ads campaign from a CSV and return wasted spend, CPA outliers, and three recommended next actions."

The good version fits on a Post-it. The skill is named after the Post-it.

Step 2 — Create the folder (1 minute)

Step 2 of 5

Two files, one folder

Your skill is a folder with a single file inside it called SKILL.md. That is it. Optionally, you can drop reference files alongside — a benchmarks table, a list of banned tokens, a CPA target by vertical. They are useful but not required for the first run.

~/.claude/skills/
└── campaign-audit/
    └── SKILL.md

On macOS, that folder lives in your home directory under .claude/skills. On Windows, same idea inside your user profile. Cowork mode reads it automatically.

Step 3 — Write the skill (10 minutes)

Step 3 of 5

The five-section template

Every skill we ship at actcenter has the same five sections. Copy this, fill in the blanks, save.

---
name: campaign-audit
description: Audit a Google Ads campaign from a CSV export.
  Returns wasted spend, CPA outliers, ad-group health flags,
  and three recommended next actions. Triggers when the user
  shares a CSV named like "*-campaign-*.csv" or asks for a
  "campaign audit" or "wasted spend check".
---

# Campaign Audit

## When to use
Trigger when the user shares a Google Ads campaign CSV
and asks for an audit, a wasted-spend check, or a
"what's broken" review. Do NOT trigger for:
- Account-wide audits across multiple campaigns
- Keyword research (different skill)
- Ad copy generation (different skill)

## Inputs
- A CSV with at least these columns: campaign, ad group,
  cost, conversions, conversion value, clicks, impressions
- Optionally: target CPA, currency
- If the CSV is missing a required column, ask once
  before proceeding; do not infer.

## Method
1. Compute portfolio metrics: total cost, total
   conversions, blended CPA.
2. Flag ad groups with cost > $50 and zero conversions
   in the period (wasted spend candidates).
3. Flag ad groups with CPA > 2x portfolio average
   (CPA outliers).
4. Flag ad groups with impression share < 30% and
   conversions > 0 (scale candidates).
5. Return a structured report.

## Output format
- Section 1: Portfolio snapshot (4 numbers)
- Section 2: Wasted spend candidates (table)
- Section 3: CPA outliers (table)
- Section 4: Scale candidates (table)
- Section 5: Three recommended next actions, in
  priority order, each one specific enough to act on
  this week.

## Constraints
- Never invent numbers not present in the CSV.
- If a section has zero rows, say "None found" instead
  of fabricating examples.
- Currency in the output must match the CSV.

That is the whole skill. About 40 lines of Markdown. The front matter at the top (name, description) is what Claude reads to decide whether to invoke the skill. The five body sections are how it actually does the work.

Step 4 — Test it (3 minutes)

Step 4 of 5

Run it on one real CSV

Open a new Claude chat in Cowork mode. Drop a Google Ads CSV in. Type: "audit this". That is it. If the skill is named and described well, Claude detects it and runs.

What to watch for on the first run:

Step 5 — Lock it down (5 minutes)

Step 5 of 5

Add the validator and the no-fly list

The first version of any skill is fragile. Two small additions move it from "works on my machine" to "works on Monday."

Add benchmarks as a reference file

Create benchmarks.md next to SKILL.md with the CPA target ranges you actually use. Reference it from the skill. This stops Claude from inventing thresholds.

# Benchmarks

Auto repair (US):       $35–$80 per lead
Auto repair (Canada):   $40–$95 per lead
Roofing:                $80–$220 per lead
Schools / education:    $25–$60 per lead
SaaS B2B:               $120–$400 per MQL

Add a no-fly list

Inside the skill, under "Constraints", add a section listing the things this skill must never do. The big ones for PPC: invent numbers, infer missing columns, make recommendations that touch live bidding without a 14-day cool-off note, use the words "best" or "guaranteed" or "#1".

The no-fly list is short but it kills 90% of the embarrassing failure modes.

The gotchas we ran into so you don't have to

Gotcha 1 — Skills do not see your screen

Claude can read files you drop in or attach. It cannot see your Google Ads UI. The skill is CSV-driven, not screenshot-driven. We tried both. CSV wins by a wide margin for repeatability.

Gotcha 2 — Description is the trigger

If your skill is not being invoked, the problem is almost always the description field. Make it explicit: which file shapes trigger, which phrases trigger, what does not trigger. Claude reads this every time you start a new chat.

Gotcha 3 — Skills do not memorize

Each Claude session starts fresh. If your skill needs context (client name, currency, target CPA), pass it in or have the skill ask once at the top of the conversation. Do not rely on the previous chat.

Gotcha 4 — The 200-line ceiling

Skills longer than about 200 lines start to lose coherence. If your skill is growing past that, split it. We run a dozen short skills before we run one long one.

What this scales to

The campaign-audit skill is the first one we built. We now ship around fifteen of them, one for each repeatable task in the agency workflow: search-term review, pacing report, RSA writer, tCPA Health Check, daily briefcase, weekly client email. Each one is 80 to 200 lines of Markdown, each one does one thing.

That is the entire system that runs the AI side of actcenter. Not a model — a folder of skills. The model just executes them.

The pattern, repeated

One job. One Markdown file. One validator. One no-fly list. The first skill takes 20 minutes. The fifteenth takes three.

Want this kind of operating cadence on your own portfolio?

Drop your real CSVs into the live demo, or download the Portfolio Overview dashboard and run it locally.