agentleFS
riz1k9riz1k9/claude-ad-skills/search-term-miner/SKILL.md

search-term-miner

Skill0 starsChanged 3 months agoMITView on GitHub

Mines paid search terms / search queries and sorts every one into KEEP, HARVEST, REVIEW, or EXCLUDE with the spend and conversion evidence behind each call. Use this whenever someone asks about search terms, search queries, query reports, wasted search spend, which keywords to add or negate, "what are people actually searching", irrelevant clicks, or shares a search terms export from Google Ads, Microsoft Ads, or Amazon Ads — even if they don't use the words "search term report".

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. kelpi-ai/google-ads-skills★ 2same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository6 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Match-type context changes everything: If everything runs on broad match, expect a lot of waste and recommend structural tightening rather …

    line 79

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Search Term Miner

A search terms report is the only place you see what people actually typed versus what you think you bid on. It is where wasted spend hides, and it is also where your next winning keyword already exists — someone is converting on it right now at a query you never explicitly added.

The job is to sort every term into one of four buckets with evidence, not to hand back a wall of data the person still has to read.

Getting the data

Work with whatever the person has, in this order:

  1. A connected ad account (Google Ads / Microsoft Ads connector, MCP tool, or API access). Pull the search terms report for a stated date range — default to the last 30 days if they don't say. Ask which account/campaign if there's more than one.
  2. A pasted or uploaded file — CSV, TSV, Excel, or even text pasted into chat. Google Ads exports carry two or three title rows before the header and one or more summary rows at the bottom (Total: Search terms, Total: Account). Start at the row containing Search term, and drop any row whose first cell begins with Total: — those carry the whole report's spend, and counting one as a term doubles every headline number.
  3. Nothing yet — tell them exactly where to click: Google Ads → Campaigns → Insights & Reports → Search terms → date range → download icon → .csv. Ask them to include the Conversions and Conv. value columns if they sell online.

Columns you need: search term, cost, clicks, conversions. Very useful if present: impressions, conv. value, match type, the keyword that triggered it, campaign/ad group. Work with what exists and say plainly which checks you're skipping for lack of a column, rather than silently guessing.

Note that Google and Microsoft withhold search terms below a privacy volume threshold, so the report's cost column does not sum to campaign cost. Report waste against what the report actually covers: "$X wasted (Y% of the $Z of spend that has search-term data)" — never as a percentage of total campaign spend.

Before analysis, ask for (or confirm) the one number everything hinges on: target cost per conversion, or target ROAS if they sell online. Without it there is no principled line between "expensive" and "fine". If they don't know it, build it from unit economics, not from account history: average order or deal value × gross margin × the share of gross profit they'll pay to acquire a customer (30–50% is a common starting point). Never take the account's current blended CPA as the target — that makes the account grade itself, and an account losing money on every sale comes back clean. If they can't supply unit economics either, say so plainly and restrict yourself to the verdicts that don't need a target: EXCLUDE on irrelevant intent and on high-spend/zero-conversion terms, everything else ranked by wasted spend.

The decision rules

Apply these in order. The first rule that matches wins.

Volume gate first. A term with 2 clicks and no conversion is not evidence of anything. Set the floor at spend ≥ target CPA (or ~15 clicks if you have no CPA). Below the floor, the verdict is REVIEW-LATER, not EXCLUDE — killing terms on noise is how accounts get slowly strangled.

VerdictConditionWhat it means
HARVESTConverting, at or below target CPA, and not already an exact-match keywordPromote to its own exact-match keyword so you control the bid and the ad copy
KEEPConverting at acceptable cost, already covered by a keywordWorking as intended, no action
REVIEWOver the floor, over target CPA but under the kill line (2× target), or intent is ambiguousHuman judgment needed — usually a bid or ad-copy problem, not an exclusion
EXCLUDESpend past the kill line (2× target CPA) with zero conversions, or clearly irrelevant intent with zero conversionsSend to the negative list
REVIEW-LATERUnder the volume floorNot enough data to judge

Intent can override cost, but never conversion data. A query like "jobs", "salary", "how to make", or another product category is usually wrong-fit and belongs in EXCLUDE. But test every such token against this business first: "free" is the lead magnet for most lead gen ("free consultation", "free quote"), "used" is core inventory for dealers and resellers, "diy" is the category for hardware and craft retail. If a term has any conversions or revenue, do not mark it EXCLUDE — mark it REVIEW and state the conversions and revenue at risk so the person decides. Competitor brand terms are deliberate conquesting in many accounts; ask before excluding them. Conversely, a high-intent commercial query that's merely expensive is a bidding problem — REVIEW, not EXCLUDE.

Read the whole report, not the top rows. Waste concentrates: typically a small fraction of terms eats most of the wasted spend. Always compute and lead with the total EXCLUDE spend — that single number is what makes someone act.

What to produce

Lead with the money, then the list. Keep it scannable:

SEARCH TERM AUDIT — [account/campaign], [date range]
[N] terms · [total spend] · [conversions] · blended CPA [x] vs target [y]

WASTED: [total EXCLUDE spend] ([%] of spend) across [n] terms
OPPORTUNITY: [n] terms converting below target that aren't keywords yet

Then the four buckets, worst first, each row showing the term, spend, clicks, conversions, CPA, and a short reason. Do not print every REVIEW-LATER term — summarize them as a count and total spend.

Close with the three specific actions worth doing today, in priority order. If they want the negatives turned into a paste-ready list with the right match types and a safety check against converting queries, that's the negative-keyword-builder skill — say so.

Example verdicts (target CPA $40):

Input: "emergency plumber near me" — $312 spend, 41 clicks, 9 conv Output: HARVEST — CPA $34.67, beats target by 13%, high commercial intent, currently triggered by broad match on "plumber". Add as exact match so it gets its own bid and ad copy.

Input: "plumber salary uk" — $86 spend, 22 clicks, 0 conv Output: EXCLUDE — job-seeker intent, will never convert. Spend is past the $80 kill line. Negative: phrase match salary.

Input: "bathroom leak repair cost" — $118 spend, 15 clicks, 1 conv Output: REVIEW — CPA $118 against a $40 target, but the intent is genuinely commercial and research-stage. Try a lower bid and a price-transparency ad before excluding it.

Judgment worth applying

Don't harvest everything that converts. A term converting once at a great CPA is luck. Require at least 2–3 conversions before recommending it as its own keyword, or say explicitly that it's a single-conversion hunch.

Watch for the close-variant trap. Google matches plurals, misspellings, and paraphrases. Ten near-identical queries are one theme, not ten decisions — group them and give one recommendation for the group.

Brand terms need separating. Their CPA is always flattering and always partly organic demand you'd get anyway. Report brand and non-brand separately or the blended number will mislead.

Match-type context changes everything. If everything runs on broad match, expect a lot of waste and recommend structural tightening rather than a thousand negatives. If it's all exact match and waste is still high, the problem is close variants and needs different handling.

Never apply changes to a live account. Even with write access, produce the list and let the person approve it. Exclusions are cheap to add and expensive to notice when wrong — a mistaken negative silently kills volume for months.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.