Discover buying intents with Claude Code + TheirStack MCP
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.
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 and the TheirStack MCP, check which are already in our Buying Intents 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 and 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 with API access.
- Claude Code installed (or any other MCP-compatible client — Claude.ai, Cursor, etc.).
- The TheirStack 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 catalogStep-by-step
Install the TheirStack MCP in Claude Code.
Follow the MCP setup guide. One command:
claude mcp add theirstack --url https://api.theirstack.com/mcp \
--header "Authorization: Bearer $THEIRSTACK_API_KEY"Verify it's connected:
claude mcp listYou should see theirstack in the list.
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.comRun 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=<keyword>`). 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.
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.
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 in the app.
- Attach a webhook to that search to fire whenever a new company shows the intent — see Monitor buying intent on a target account list.
- Query the Buying Intent dataset 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": ["<intent_slug>"] },
"page": 0,
"limit": 25
}'Request the missing ones.
Email 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.
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, webhooks, and the API.
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. - 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 — the manual version of this exercise.
- Monitor buying intent on a target account list — how to consume the intents once you have them.
- How to set up a webhook
- TheirStack MCP documentation
Case study
- Qonto uses TheirStack to detect companies with high intents — same playbook, applied at scale.
How is this guide?
Last updated on
How to create a niche job newsletter with TheirStack MCP
Learn how to create a weekly curated job newsletter using Claude.ai and TheirStack MCP. Automate job newsletter creation with a reusable template — no code needed.
How to Discover Any Company's Tech Stack
Step-by-step guide to finding what technologies any company uses — from backend infrastructure to internal tools — using TheirStack's job-posting-based technographic data.
