Plans, runs, and optimizes paid acquisition across search, social, and display — account structure, targeting, creative, bidding, budget, and the analysis that says whether to scale or stop. Use this to set up or restructure campaigns, write and iterate ad creative, diagnose rising costs or falling performance, decide budget allocation, or judge whether a channel is working.
npx skills add https://github.com/cbrock84/headcount --skill paid-advertising
Paid is the fastest way to buy a result and the fastest way to buy nothing. The difference is
mostly discipline before launch.
not from what feels affordable.
Optimizing against broken tracking teaches the algorithm the wrong thing, and that damage
persists.
page first — it is cheaper.
Structure follows intent, since intent determines what a click is worth.
research. Never one budget across all four; the broad terms will consume it.
variables and you need to see them separately.
the data it needs.
Decide the convention before the first campaign, because renaming later breaks historical reporting
on every platform.
A workable pattern encodes, in fixed order: channel, objective, audience or intent tier, geography,
and creative theme — separated consistently, with no spaces. It should be possible to filter a
report by any one of those segments without opening a campaign.
Apply it to every level: campaign, ad set, and ad. Inconsistent naming is why cross-channel
reporting takes a week to assemble and why nobody trusts it when it arrives.
Creative is the biggest lever on paid social and the most neglected.
test.
misdiagnose as a targeting problem.
fatigue, not competition.
Diagnose in sequence: impressions (is it serving), click-through (is the creative landing),
conversion rate (is the page delivering), cost per acquisition (is it economic), and downstream
quality (did those customers stay). Stopping at cost per acquisition is how channels get scaled that
are buying bad customers cheaply.
Take cbrock84/paid-advertising from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.