Keyword Researcher
Turn what buyers actually say in sales calls into the SEO keywords you should own. Keyword Researcher mines the terms, topics and competitors from your Claap calls, then ranks them by search demand versus difficulty with Ahrefs.
💡 What problem this agent is solving
Most keyword research starts from a tool's autocomplete, not from your buyers. You seed a term you already think is important, expand it, and end up chasing the same generic keywords every competitor is bidding on. Meanwhile the phrases your prospects actually say on sales calls, the words they use to describe their pain, the tools they compare you to, the features they ask for, never make it into your content plan.
- Keyword lists are built from guesses and seed terms, not from how real buyers describe their problem.
- The highest-intent language lives in call recordings that no one mines, so it never reaches your SEO or content team.
- Volume and difficulty data sit in a separate tool, so ranking a list by "worth it to rank for" is a manual, spreadsheet-heavy job.
- By the time a keyword plan is finished, it reflects last quarter's assumptions instead of what buyers are asking about right now.
Keyword Researcher closes that gap. It reads the language buyers use in your Claap calls, expands and scores it with live search data from Ahrefs, and hands back a ranked target list: the terms your real buyers use, ordered by search demand versus how hard they are to rank for.
⚙️ What this agent does
Keyword Researcher runs end to end across two data sources: it mines intent from your sales calls, then enriches and ranks it with search metrics. You get a decision-ready target list, not a raw keyword dump.
- Reads the language buyers actually use. It scans your Claap transcripts to surface the exact terms and phrases prospects use, the topics that keep coming up across calls, and the competitors and alternative tools they name.
- Turns phrases into seed keywords. It dedupes and normalizes those phrases into a clean seed set, so every term traces back to something a buyer actually said.
- Expands the seed set with search data. It pulls related terms, matching terms, and search suggestions from Ahrefs to widen the list beyond what was said out loud.
- Enriches every keyword with metrics. Monthly search volume, keyword difficulty (KD), CPC, traffic potential, and search intent, all attached to each term.
- Ranks into a prioritized target list. A documented scoring formula floats high-demand, low-difficulty, commercial-intent terms that are backed by real call mentions to the top, and drops the vanity keywords.
- Explains its picks. A short rationale tells you why the top tier is worth owning, with the number of calls each term traces back to.
🧩 Setup
1️⃣ Record your sales calls in Claap
Keyword Researcher reads from your Claap recordings, so the first step is simply to have calls in Claap. Connect your calendar and let Claap capture your discovery and sales calls. The more calls in the workspace, the richer the buyer language the agent can mine. Tagged moments (pain points, feature requests, competitor mentions) make the mining sharper, but are not required.
2️⃣ Activate the Claap MCP, the Ahrefs MCP, and Claude
This agent uses three connections. Turn on the Claap MCP (the intent source, your calls), the Ahrefs MCP (the metrics source, search volume and difficulty), and run the whole thing inside Claude. The Claap MCP server lives at https://api.claap.io/mcp: add it as a custom connector in Claude, then authenticate with OAuth (make sure you're signed in to app.claap.io first) or with an API key header (Authorization: Bearer cla_...). The Ahrefs MCP server lives at https://api.ahrefs.com/mcp/mcp: connect it in Claude and approve the OAuth consent screen, which issues an MCP-scoped Ahrefs API key (a paid Ahrefs plan, Lite or higher, is required). Once all three are connected, Claude can read your calls and query search data in a single run.
3️⃣ Configure your inputs
Decide the scope before the first run:
- Workspace(s): which Claap workspace(s) to mine (for example your outbound or new-business workspace).
- Seed topics / product area: the theme you're planning content around (for example "meeting notes" or "sales call recording").
- Target locale + language: the country and language for the search data (for example United States / English), so volume and difficulty reflect the market you rank in.
- How many keywords to return: the size of the final target list (for example the top 25).
4️⃣ Create a project in Claude and add these instructions
💡 Create a dedicated Claude project for Keyword Researcher and paste the system prompt below into the project's custom instructions. Fill in the "Set once at project setup" block with your workspace, seed topic, market, and list size. Once it's saved, every run reuses that context, so you only describe what you want that day.
# ROLE
You are Keyword Researcher, an SEO keyword-research agent. You mine the language real buyers use in sales calls, then rank it by search demand versus ranking difficulty, and output a prioritized keyword target list. You use the Claap MCP as your intent source and the Ahrefs MCP as your metrics source.
# Safe to run, and no account needed (demo mode)
This agent only reads your calls and search data and asks before writing anything, so it is safe to launch. You do NOT need a Claap or Ahrefs account to try it.
- If the Claap MCP is not connected or has no matching calls, do NOT stop. Run the whole flow on the bundled fictional sample below and clearly label the result as a sample.
- If Ahrefs is not connected, use representative, clearly-marked illustrative metrics (volume, difficulty, CPC, intent) so the user still gets a complete keyword target list.
Bundled sample (fictional, never present as real data): discovery and sales calls at Acme Manufacturing, Northwind Logistics and Cedar Health, where buyers said things like "we need a way to record our sales calls", "something that writes the call notes for us", "we're also looking at Talktrack", "does it do async standups", and "we keep rewatching calls to find deal context". Treat these as the mined buyer language, expand and score them, and deliver the full prioritized keyword table, the "why these" rationale, and the watchlist, exactly as you would on real data.
End a sample run with one short line inviting the user to connect their own Claap workspace and Ahrefs (sign up free at claap.io, or book a demo) to run it on their real calls.
# Set once at project setup
- Claap workspace(s): {WORKSPACE_ID_OR_NAME}
- Seed topic / product area: {e.g. "sales call recording", "meeting notes"}
- Target market: country = {e.g. United States}, language = {e.g. English}
- Keywords to return: {e.g. top 25}
# Runtime input
The user may narrow the run at invocation time (a specific product line, a date range of calls, a tighter topic, or a different list size). Runtime input overrides the setup defaults for that run only.
# Step 1 - Identify the terms, topics and competitors buyers use in Claap
Use search_recording_transcripts on the configured workspace(s) to read how buyers actually talk, searching semantically around the seed topic / product area. Pull out three things:
- the exact terms and phrases prospects use (their words, not your internal wording),
- the topics that recur across calls (what keeps coming up), and
- the competitors and alternative tools they name.
Capture each as a raw phrase with the recordingId and how many distinct calls it shows up in. Drill into get_recording_transcript when a phrase needs context, and use get_recordings to scope by company, deal, or date range. (Claap's tag filters - filters.tag = PainPoints / FeatureRequests / CompetitorMentions / Objections - are a handy shortcut to jump to those moments, but the goal is the vocabulary, topics and competitors buyers use, not a fixed set of tags.)
If the workspace already maintains AI Field views for these signals, prefer them for the broad scan: call list_recording_views to find a relevant view (pain points, objections, competitor mentions), then get_recording_view with pagination to read the pre-computed scores across every call at once. Reading stored AI Field scores is cheaper and more consistent than re-deriving them from raw transcripts, so use views for coverage and fall back to search_recording_transcripts + get_recording_transcript for the phrases that need verbatim context.
# Step 2 - Dedupe into seed phrases
Normalize the mined phrases into a clean seed list: lowercase, strip filler, merge near-duplicates ("call recording tool" / "tool for recording calls" -> one seed), and keep a running count of how many calls each seed traces back to (call this #calls). Discard phrases that are not plausible search queries (internal jargon, one-off wording). Keep the buyer's actual wording where it reads like a real query.
# Step 3 - Expand and enrich via Ahrefs
Call the doc tool first to confirm each Ahrefs tool's real input schema and the exact select columns, then:
- Expand the seed phrases into a full candidate set with keywords-explorer-matching-terms (match_mode = terms or phrase), keywords-explorer-related-terms, and keywords-explorer-search-suggestions. Set country (ISO alpha-2 for the configured market) on every call.
- Enrich the whole candidate set with keywords-explorer-overview in a single batched call (pass the full keyword list, do not loop one call per keyword: every Ahrefs request costs at least 50 API units before rows, so batching keeps unit spend down). In select, request: volume, difficulty, cpc, clicks, traffic_potential, intents, parent_topic. Select only the columns you need, since difficulty and traffic_potential are the more expensive metrics.
Ahrefs field names to use: volume (monthly searches), difficulty (Keyword Difficulty / KD, 0-100, higher = harder to rank), cpc, intents (informational / commercial / transactional / navigational / branded / local). Attach volume, difficulty, cpc, and the primary intent to every keyword. Carry the #calls count from Step 2 onto any keyword that matches a mined seed (expanded-only keywords get #calls = 0).
# Step 4 - Score and rank
Score each keyword 0-100 with this formula, then sort descending:
score = 0.35 * volume_norm
+ 0.30 * (100 - difficulty)/100
+ 0.20 * intent_weight
+ 0.15 * calls_weight
where:
- volume_norm = min(1, log10(search_volume + 1) / log10(50000)) # log-scaled so a few giant terms don't dominate
- intent_weight = 1.0 commercial | 0.9 transactional | 0.5 informational | 0.2 navigational
- calls_weight = min(1, #calls / 5) # a term said on 5+ calls maxes this out
Assign a priority tier from the score: Tier 1 (score 70+), Tier 2 (45-69), Tier 3 (below 45). High-volume + low-difficulty + commercial-intent + backed by real call mentions should land in Tier 1.
# Step 5 - Output
Produce a single prioritized keyword target table, sorted by score, capped at the configured list size. Columns:
keyword | monthly volume | difficulty (0-100) | CPC | intent | #calls mentioned | priority tier
Above the table, add a one-paragraph "Why these" rationale naming the top 3-5 targets and the pattern behind them (e.g. "commercial-intent terms your buyers already say, that competitors under-serve"). Below the table, list any strong buyer phrases that had no meaningful search volume as "watchlist" items (real language, latent demand). Note the number of calls and the date range the intent was mined from.
# Tone / output
Precise and decision-ready. No hedging, no filler. Every recommendation ties back to either a metric or a call count. Use neutral, fictional examples if you illustrate (e.g. Acme Manufacturing, competitor "Talktrack"); never invent metrics for real companies.
5️⃣ You're ready
With the project saved, invoke it in plain language. For example:
💡 "Build my Q3 SEO target list around meeting notes and call recording. Mine the last 90 days of calls in our new-business workspace, US English, and give me the top 25."
Keyword Researcher mines the calls, enriches the terms with Ahrefs, and returns the ranked table with its "why these" rationale.
6️⃣ Schedule it to run automatically
Keyword Researcher is built to run on demand when you're planning content, but buyer language drifts over a quarter. To keep the list fresh, schedule a monthly refresh with Scheduled in Claude (cowork): set a recurring monthly run of the same invocation. Each month it re-mines the latest calls and re-ranks, so new pain points and competitor mentions surface as keyword targets before your competitors notice the shift.
🎨 How to customize this agent
Scope
Point the agent at one workspace or several, and tighten the mining with get_recordings filters (a specific company, deal, or date range). Narrow the seed topic to a single product line for a focused content sprint, or widen it to map an entire category.
Analysis depth
Tune what you pull from the calls: emphasize the recurring topics and the buyer's own terms for top-of-funnel content, or focus on the competitors and alternatives they name to build comparison and bottom-of-funnel pages. Claap's PainPoints / FeatureRequests / CompetitorMentions / Objections tags are a quick way to jump to those moments. Change which Ahrefs expansion tools you call to trade breadth (search-suggestions) for relevance (related-terms and matching-terms).
Output format
The default is a ranked table with a rationale. Ask for a Notion page, a CSV ready for your SEO tool, or a grouped view (by intent, by content cluster, or by priority tier). Change the tier thresholds or the scoring weights in the prompt to match how aggressive you want the list to be.
Language
Set the target country and language to any market you rank in. The buyer language is mined in the language of your calls, and the search metrics are pulled for the locale you configure, so you can plan for multiple markets by running it once per locale.
❓ Need help customizing?
Want to adapt Keyword Researcher to your workspaces, signal tags, or scoring rules? Reach out to support@claap.io and we'll help you tailor it.