--- title: Discover buying intents with Claude Code + TheirStack MCP description: Use Claude Code and the TheirStack MCP to mine job descriptions from your best customers, surface the pain-point keywords that predict fit, check which already exist as buying intents, and request the missing ones. url: https://theirstack.com/en/docs/guides/how-to-discover-buying-intents-with-mcp --- Most teams pick their intent keywords by guessing — they sit in a meeting, brainstorm a list of words their software helps with, and ship it. The result is noisy: too generic on one side ("project management"), too narrow on the other, and miles away from the language buyers actually use in their job posts. The keywords that _predict_ a sale already exist — in the job descriptions of your best customers. This guide shows how to mine them with [Claude Code](https://www.anthropic.com/claude-code) and the [TheirStack MCP](/en/docs/mcp), check which are already in our [Buying Intents](/en/docs/data/buying-intent) catalog, and request the ones that aren't so you can consume them as a clean signal in production. ## What you'll get A short list of high-signal keywords, each one labeled as either: - **Already in the catalog** — usable today via the [Buying Intent filter](/en/docs/datasets/options/buying-intent) and [webhooks](/en/docs/webhooks). - **Missing** — send them to us and we add them to the catalog within a few days, after which you consume them through the same API. ## Prerequisites - A [TheirStack account](https://app.theirstack.com) with API access. - [Claude Code](https://www.anthropic.com/claude-code) installed (or any other MCP-compatible client — Claude.ai, Cursor, etc.). - The [TheirStack MCP](/en/docs/mcp) connected to your client. - 5–10 **ideal-fit accounts** (closed-won, late-stage pipeline, or clear lookalikes — _not_ mediocre customers, they pollute the signal). - Your product / value-prop page URL. ## How it works ``` ideal accounts ─► Claude Code (TheirStack MCP) │ ├─ reads recent job posts of each account ├─ reads your product page + each account's site ├─ extracts pain-point keywords that overlap └─ checks each keyword against /v1/buying_intents │ ▼ keyword report ├─ existing → use today via Buying Intent filter └─ missing → email us to add to the catalog ``` ## Step-by-step 1. **Install the TheirStack MCP in Claude Code.** Follow the [MCP setup guide](/en/docs/mcp). One command: ``` claude mcp add theirstack --url https://api.theirstack.com/mcp \ --header "Authorization: Bearer $THEIRSTACK_API_KEY" ``` Verify it's connected: ``` claude mcp list ``` You should see `theirstack` in the list. 2. **Prepare your input.** A plain text block with two things: - The URL of your product / value-prop page. - 5–10 ideal-customer domains, one per line. ``` PRODUCT_URL: https://pivotapp.ai ACCOUNTS: acme.com globex.com initech.com umbrella.com hooli.com ``` 3. **Run the discovery prompt in Claude Code.** Open Claude Code in any directory and paste the prompt below (replace the two placeholders). Claude will use the MCP to pull jobs, scrape pages, and produce a report. ``` You are helping me discover buying-intent keywords for my product. PRODUCT_URL: {PRODUCT_URL} ACCOUNTS: {ACCOUNTS} Do this in order: 1. Read PRODUCT_URL and summarize, in 5 bullet points, the concrete pains my product solves and the manual tasks it automates. 2. For each account, use the TheirStack MCP to fetch up to 20 recent job postings (last 12 months). Use the `company_search` tool to resolve the domain to a company, then `job_search` filtered by that company_id. Read the descriptions. 3. From those descriptions, extract candidate keywords / phrases that describe pains, manual processes, or tooling that overlap with the pains from step 1. Keep them specific (e.g. "three-way invoice match", not "finance"). Discard generic terms. 4. For each candidate, check whether it already exists in the TheirStack Buying Intents catalog by calling the MCP tool `buying_intent_search` (or the REST endpoint `GET /v0/buying_intents?q=`). Mark it `existing` (with the intent slug) or `missing`. 5. Output a markdown table with columns: keyword | status | matched_intent_slug | accounts_seen_in | example_sentence | mapped_to_product_feature | confidence (low/med/high) Sort by confidence desc, then by accounts_seen_in desc. Skip any keyword that appeared in only one account with low confidence. ``` Expect Claude to make ~5–10 MCP calls per account. Credit usage stays modest because you're filtering by company up front — you only pay for jobs that actually belong to your seed accounts. 4. **Review the table and trim.** Two passes: - **Drop the obvious** — anything that's too generic, off-topic, or a single-account anecdote. - **Group near-duplicates** — `"AP automation"` and `"accounts payable automation"` are the same signal; keep the version that matches the buyer's language. You should end up with **5–15 keywords**. More than that and you're including noise. 5. **Use the `existing` ones today.** For each row marked `existing`, the keyword is already in TheirStack's Buying Intents catalog. You can: - Add it as a filter on a [company search](/en/docs/app/company-search) in the app. - Attach a [webhook](/en/docs/webhooks/how-to-set-up-a-webhook) to that search to fire whenever a new company shows the intent — see [Monitor buying intent on a target account list](/en/docs/guides/how-to-monitor-buying-intent-on-target-accounts). - Query the [Buying Intent dataset](/en/docs/datasets/options/buying-intent) directly via the API. Quick API check from your terminal: ``` curl -X POST https://api.theirstack.com/v1/companies/search \ -H "Authorization: Bearer $THEIRSTACK_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "buying_intent_filters": { "keyword_or": [""] }, "page": 0, "limit": 25 }' ``` 6. **Request the `missing` ones.** Email **[support@theirstack.com](mailto:support@theirstack.com)** with the subset of the table marked `missing`. Include for each row: - The keyword. - One or two example sentences pulled from real job posts (Claude already produced these). - The product feature / pain it maps to on your side. We review and add new buying intents to the catalog within a few days. Once added, you consume them through the **same API as technographics** — the only difference is `keyword_category` instead of `technology_category` on the filter. No new endpoint to learn. 7. **Re-run quarterly.** Buyer language drifts: new tools, new pains, new role titles. Re-run the prompt every 3 months with a refreshed seed list (new closed-won accounts) and you'll keep the catalog of intents you monitor aligned with how the market actually talks today. ## Why this beats classifying jobs yourself with an LLM A common alternative is: pull every job that matches a broad filter, then run each description through GPT/Claude to classify it. That works, but: - You pay LLM tokens on **every** job — including the 90% that don't match. - You own the prompt, the eval, and the drift over time. - The classification is invisible upstream, so you can't use it in saved searches or webhooks. With the approach above, the classification work happens **once**, during discovery. After that, TheirStack does the matching on our side — you only pay credits when a job actually surfaces an intent you care about, and you get to use the signal natively in [searches](/en/docs/app/company-search), [webhooks](/en/docs/webhooks), and the [API](/en/docs/api-reference). ## Tips and pitfalls - **Seed quality is everything.** 5 perfect accounts beat 20 average ones. If you don't have 5 closed-won, use 5 accounts you'd bet your quota on. - **Stay specific, not categorical.** `"procure-to-pay automation"` is a signal; `"procurement"` is a noun. Specific keywords also work better with our [per-topic webhook pattern](/en/docs/guides/how-to-monitor-buying-intent-on-target-accounts#tips-and-caveats). - **Run it per language / market.** Pain-point phrasing doesn't translate 1:1. Do one pass with FR seed accounts, one with EN, one with ES — you'll discover different keywords each time. - **Don't merge categories with topics.** A category groups many topics. For webhook monitoring you want one search + one webhook per _topic_, not per category — see the linked caveat above. ## Related guides - [Identifying companies with problems your software solves](/en/docs/guides/how-to-identify-companies-with-problems-your-software-solves) — the manual version of this exercise. - [Monitor buying intent on a target account list](/en/docs/guides/how-to-monitor-buying-intent-on-target-accounts) — how to consume the intents once you have them. - [How to set up a webhook](/en/docs/webhooks/how-to-set-up-a-webhook) - [TheirStack MCP documentation](/en/docs/mcp) ## Case study - [Qonto uses TheirStack to detect companies with high intents](/en/blog/qonto-uses-theirstack-to-detect-companies-with-high-intents) — same playbook, applied at scale.