Home>Build your own ads agent>Negative keyword candidates

Find Negative Keyword Candidates in Your Google Ads Search Terms

By Ahmed Ashraf|Updated 29 September 2026

Written by PaidSync's founder. This page describes one of PaidSync's ready-made workflows, from its code. We checked the other options on their own pages on 29 September 2026.

Google Ads Claude

The negative-keyword-candidates workflow ships with PaidSync and finds the search terms in your Google Ads account that spend money and never convert. By default it reads the last 30 days of the search terms report, keeps every term with at least 50 impressions, at least 5 in spend in the account's currency and no conversions, ranks them by spend, and suggests a match type for each: exact when the term spent more than 50, phrase otherwise. To run it, connect PaidSync to Claude or ChatGPT and ask it to run the PaidSync negative-keyword-candidates workflow. It only reads, a run counts as one task, and it works on every plan.

It proposes and never adds. To act on the list, ask Claude to preview adding the terms you choose with add_negative_keywords, which previews unless you tell it to apply. The report behind it returns the 500 search terms with the highest cost in the window. Disclosure: PaidSync publishes this page.

What the negative keyword workflow checks

The workflow is a few lines of code. This is all of it, in plain words.

  1. If you name an account, it runs on that account. Otherwise it uses your active Google Ads account.
  2. It reads the search terms report for the window.
  3. It keeps each search term with at least the minimum impressions and spend, and no more than the maximum conversions.
  4. It suggests exact match for a term that spent more than 50, and phrase match for the rest.
  5. It sorts the terms by spend, highest first, and adds up their spend.

Settings you can change

Every setting is optional. Leave one out and the workflow uses the default below. Amounts are in the account's own currency.

SettingDefaultWhat it does
account_idYour active accountThe Google Ads account to check.
lookback_days30How many days back to read, up to 90.
min_impressions50A search term needs at least this many impressions to count.
min_spend5A search term needs at least this much spend to count.
max_conversions0A search term with more conversions than this is left out.

What it returns

The candidates, ranked by spend, and a next step:

  • candidate_count and total_spend_on_candidates, rounded to the cent.
  • candidates: up to 100 search terms, each with impressions, clicks, spend, conversions, campaign, ad group and the suggested match type.
  • next_step: a note naming add_negative_keywords and create_negative_keyword_list as the tools to apply them.

How to run it

In a chat. Connect PaidSync to Claude from Claude's connector directory, or to ChatGPT from its Plugins, connect Google Ads, then ask:

"Run the PaidSync negative-keyword-candidates workflow on my Google Ads account for the last 30 days."

Claude calls paidsync_workflows_run with the workflow's name and your settings. Setup is in how to connect Google Ads to Claude.

From your own agent or code. Call the same tool on https://mcp.paidsync.ai/mcp:

paidsync_workflows_run({ name: "negative-keyword-candidates", params: { account_id: "123-456-7890", lookback_days: 30, min_spend: 5 } })

On a schedule. Because it only reads, it is safe to run unattended, for example weekly. A Claude Code routine can run it as often as hourly on a paid Claude plan, or your own cron job can call it. PaidSync does not run it on a timer by itself.

Cost. A run counts as one PaidSync task, whatever it calls inside. The Free plan has 15 tasks a month with no credit card, and runs this workflow. Pro starts at $99 a month for 600 tasks.

Free for 15 tasks a month with no credit card, then priced by usage, from $99 a month for 600 tasks.

Start Free See a Demo

Limits to know

  • It reads the 500 search terms with the highest cost in the window, so low-cost terms beyond those 500 are not considered.
  • The match type is a spend rule, not a reading of what the term means. A costly term close to what you sell may deserve a negative in one ad group, or none.
  • It does not check whether a term is already a negative keyword or a keyword in the account.
  • Google Ads alone.

Other ways to do this job

Checked on 29 September 2026, on each option's own pages.

  • The search terms report in Google Ads. Google's steps: select terms, click "Add as negative keyword" and choose an ad group, a campaign or a negative keyword list. Google says "by default, negative keywords added to a Search campaign from the search terms report are added as negative exact match."
  • Google's own Google Ads MCP server. It can read the same search terms in GAQL but cannot add negatives. Google says it is strictly read-only.
  • Word patterns in a chat. PaidSync's analyze_search_term_ngrams groups search terms by the words they share, so a wasteful word shows up once with its total cost.

What to do with the results

Read the list, drop anything close to what you sell, then ask Claude to preview adding the rest with add_negative_keywords at campaign or ad group level, or to build a shared list with create_negative_keyword_list. Nothing is added until you apply. For the keywords behind the same waste, run find-waste.

Frequently asked questions

Does the workflow add negative keywords for me?

No. It only reads and returns candidates. To add them, ask Claude to preview adding the ones you choose with PaidSync's add_negative_keywords tool, which previews unless you tell it to apply, then apply them.

Why does it suggest exact match for some terms and phrase for others?

It is a spend rule: exact match when a term spent more than 50 in the account's currency, phrase match otherwise. It does not judge what the term means, so check each one.

How many search terms does it look at?

The search terms report returns the 500 terms with the highest cost in the window, and the workflow returns up to 100 candidates from them.

Can I run it across several client accounts?

Yes, one run per account. Pass each client account ID in the run, and each run counts as one task.

How much does a run cost?

One PaidSync task per run, on every plan. The Free plan has 15 tasks a month with no credit card.

610+ tools. 14 platforms. One connection. Start free.