Tune Audience
You are diagnosing and fixing an underperforming Audience. Each product has exactly one Audience (sell / fit / reach) — there are no separate agents to pick from. Always cite specific numbers — never vibes.
What To Do
Pick the product —
product_list. Ask which one if not specified.Get full state —
product_get. Note the Audience:sell—description,keywords,competitors,offerfit— company firmographics (industries, size, country) — read-only here, dashboard-managedreach— the LinkedIn targeting: target roles, seniority levels, job functions
Find what's mis-targeted — pull the leads the user threw away vs kept:
- Archived:
lead_searchwithproductId,status: ['archived'], page size 50 - Kept:
lead_searchwithproductId,status: ['saved', 'pushed'], page size 50 - Compare. Read
reasonLine, title/company, anddiscovery.disqualifierson the archived set. What pattern explains the misses that the kept set doesn't share?
- Archived:
Diagnose with citations — Before suggesting changes, show the data:
- "12 of last 30 archived leads were VPs and C-level — you keep ICs and managers. Seniority is too senior."
- "9 of 11 saved leads were 'Founder' or 'Head of Sales'; archived skews to 'Recruiter' — wrong job function."
Map the fix to a settable field. Only these are tunable via MCP, all on
product_update:- Reach (
icp.targetRoles,icp.seniorityLevels,icp.jobFunctions) — the most common lever.targetRolesis free text;seniorityLevelsandjobFunctionsaccept only labels fromworkspace_icp_options(call it first). - Sell (
keywords,competitors,description) — when keyword-driven discovery is pulling off-topic people or the description is steering scoring wrong. - Offer — if the leads fit but feel low-intent, the offer may be the real problem → point at
/craft-offer.
Not settable here — say so explicitly when relevant: company firmographics (
fit: industries / company size / country) and which signal strategies are on/off are dashboard-only today. If the fix is firmographic or a signal toggle, tell the user to make it in the CatchIntent dashboard.- Reach (
Propose specific changes — Show the exact
product_updatepayload you'd send (e.g.{ productId, icp: { seniorityLevels: [...] } }). Wait for approval. Then call.Confirm + follow-up — After the update, suggest re-checking lead quality in 3-5 days with
/daily-triageor/pipeline-review.
Guidelines
- Numbers before opinions. Quote archived-count patterns, kept:archived deltas, job-function skews.
- One change at a time. Don't fix seniority + job function + keywords in one shot. Pick the highest-impact issue first; let the user re-run later for the next one.
- Strict ICP labels.
seniorityLevelsandjobFunctionsonly accept labels fromworkspace_icp_options. Always check before suggesting a label that wasn't already on file — unknown labels are rejected, not silently dropped. - Know the MCP boundary. Reach dims, keywords, competitors, description, and offer are settable here. Firmographics and signal-strategy toggles are dashboard-only — don't pretend you can change them.
- Don't tune the product instead. If targeting is fine but the user is unhappy with intent, the issue may be the offer — point at
/craft-offer.