@sellable/mcp 0.1.122 → 0.1.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -26,26 +26,36 @@ Use the inherited Sellable MCP tools when available:
|
|
|
26
26
|
Process:
|
|
27
27
|
|
|
28
28
|
1. Read the campaign brief, kickoff doc, or lane prompt supplied by the parent.
|
|
29
|
-
2.
|
|
29
|
+
2. Generate 3-5 intersection keyword/topic lanes, favoring fresh posts from the
|
|
30
|
+
last 7-14 days. Each lane should combine the campaign anchor with the buyer
|
|
31
|
+
pain, use case, or ICP role so fit is high before sampling. For example, for
|
|
32
|
+
a Claude + GTM/outbound campaign, prefer `Claude outbound`, `Claude Code
|
|
33
|
+
LinkedIn outreach`, `AI SDR Claude`, `GTM automation Claude`, and `founder-led
|
|
34
|
+
sales Claude`; do not treat broad anchor-only lanes like `Claude Code`, `MCP`,
|
|
35
|
+
`AI agents`, or `agentic coding` as selectable unless they also include the
|
|
36
|
+
GTM/outbound wedge or the narrower lanes fail.
|
|
30
37
|
3. Inspect finalist posts by content type before final selection. Prefer posts
|
|
31
38
|
where the topic matches the campaign wedge, not generic high-engagement news.
|
|
32
|
-
4.
|
|
39
|
+
4. If Round 1 produced broad anchor-only inventory, retarget immediately around
|
|
40
|
+
the wedge before sampling. Do not promote or sample broad posts when there are
|
|
41
|
+
narrower posts about the actual campaign pain/use case.
|
|
42
|
+
5. Promote the first narrow sample set when campaign-attached. If a
|
|
33
43
|
`campaignOfferId` was supplied, call `select_promising_posts({
|
|
34
44
|
campaignOfferId, selectionMode: "replace", selections, headlineICPCriteria,
|
|
35
45
|
currentStep: "signal-discovery" })` before sampling so the watched Signal
|
|
36
46
|
Discovery table shows the exact posts being tested.
|
|
37
|
-
|
|
47
|
+
6. Fetch or sample engagers for promoted posts and score rough ICP fit from
|
|
38
48
|
visible headline/display-name cues only. Do not enrich people during
|
|
39
49
|
viability estimation.
|
|
40
|
-
|
|
50
|
+
7. Compute capacity before recommending the source: target good-fit leads
|
|
41
51
|
(default 500 unless the parent supplies a target), reachable engagers,
|
|
42
52
|
sampled ICP-fit rate as `n/N` plus an easy percentage/range, expected usable
|
|
43
53
|
leads per right-content post after dedupe/cleanup, and posts needed to hit
|
|
44
54
|
the target.
|
|
45
|
-
|
|
55
|
+
8. Select/promote enough right-content posts to plausibly hit the target. If the
|
|
46
56
|
warm Signals pool is useful but too small, return the expected warm range and
|
|
47
57
|
recommend Sales Nav/Prospeo for scale instead of padding with noisy posts.
|
|
48
|
-
|
|
58
|
+
9. Return false positives and dead ends explicitly.
|
|
49
59
|
|
|
50
60
|
Return a concise structured result with:
|
|
51
61
|
|
|
@@ -67,6 +77,10 @@ Evidence standards:
|
|
|
67
77
|
|
|
68
78
|
- Do not trust raw post volume without inspecting finalist post quality.
|
|
69
79
|
- Prefer sample-based pass rates over intuition.
|
|
80
|
+
- Prefer narrow intersection topics over broad audience topics. A post about
|
|
81
|
+
the anchor technology alone is not enough; the post should also express the
|
|
82
|
+
GTM/outbound/buyer pain, workflow, or role context that makes the campaign
|
|
83
|
+
relevant.
|
|
70
84
|
- Do not make the user infer capacity. Say, plainly, how many eligible posts
|
|
71
85
|
exist, what percent of sampled engagers looked in-ICP, how many posts are
|
|
72
86
|
needed for 500+ good-fit leads, and which posts you would use.
|
package/package.json
CHANGED
|
@@ -816,8 +816,9 @@ Required behavior:
|
|
|
816
816
|
then stop on the first viable source unless the user asked to compare.
|
|
817
817
|
1. Start with LinkedIn Engagement / active LinkedIn posts (internal provider:
|
|
818
818
|
Signals / `signal-discovery`) because recent engagement gives the strongest
|
|
819
|
-
message context and expected reply-rate upside. Search
|
|
820
|
-
lanes
|
|
819
|
+
message context and expected reply-rate upside. Search intersection keyword
|
|
820
|
+
lanes that combine the campaign anchor with the buyer pain/use case/ICP
|
|
821
|
+
role, review finalist posts, promote a narrow sample set with
|
|
821
822
|
`select_promising_posts` before fetching engagers when a campaign shell
|
|
822
823
|
exists, fetch top-post engagers, estimate ICP-fit rate, compute posts
|
|
823
824
|
needed for the target good-fit lead count, and only then recommend the
|
|
@@ -868,6 +869,13 @@ Required behavior:
|
|
|
868
869
|
keyword lanes; it does not mean 492 prospects. The source decision must name
|
|
869
870
|
the actual posts we would use, show why they won, and estimate usable engagers
|
|
870
871
|
from those posts after headline/sample filtering
|
|
872
|
+
- for Signals-first campaigns, keyword lanes must be intersection-first. If the
|
|
873
|
+
campaign anchor is `Claude`, `MCP`, `AI agents`, or another broad technology,
|
|
874
|
+
do not make broad anchor-only lanes the main test. Combine the anchor with the
|
|
875
|
+
specific wedge and buyer pain, such as outbound, GTM automation, LinkedIn
|
|
876
|
+
outreach, AI SDR skepticism, founder-led sales, RevOps, or the ICP role. Treat
|
|
877
|
+
broad anchor-only lanes as fallback inventory only, and retarget before
|
|
878
|
+
sampling if the first pass is broad.
|
|
871
879
|
- Signals viability is based on estimated ICP-fit reachable engagers, not raw
|
|
872
880
|
post count and not whether it beats Sales Nav scale. If 5-8 selected posts can
|
|
873
881
|
plausibly produce ~150+ ICP-fit warm prospects before final filtering, keep
|
|
@@ -568,7 +568,7 @@
|
|
|
568
568
|
},
|
|
569
569
|
"when": "after_source_selection_checkpoint_before_first_source_attempt",
|
|
570
570
|
"requiresPriorVisibleStep": "pick-provider",
|
|
571
|
-
"rule": "Choose the first visible source lane from explicit source direction when present, otherwise default to Signal Discovery. Only run this after the Pick Provider source-selection checkpoint has been made visible and explained in chat/watchNarration. Send watchNarration with stage find-leads that says why this lane is being tried now, what quick sample or filter gate will pass/fail it, and why that helps this campaign. For Signal Discovery sampling, make it clear this is a viability path before lead import:
|
|
571
|
+
"rule": "Choose the first visible source lane from explicit source direction when present, otherwise default to Signal Discovery. Only run this after the Pick Provider source-selection checkpoint has been made visible and explained in chat/watchNarration. Send watchNarration with stage find-leads that says why this lane is being tried now, what quick sample or filter gate will pass/fail it, and why that helps this campaign. For Signal Discovery sampling, make it clear this is a viability path before lead import: generate intersection-first keyword lanes that combine the campaign anchor with the buyer pain/use case/ICP role, not broad anchor-only lanes. For Claude/GTM campaigns, prefer lanes like Claude outbound, Claude Code LinkedIn outreach, AI SDR Claude, GTM automation Claude, and founder-led sales Claude over generic Claude Code, MCP, AI agents, or agentic coding. If the first pass is broad, retarget around the campaign wedge before selecting posts. Promote/select the first narrow sample posts with select_promising_posts before fetch_post_engagers so the watched table shows the exact posts being sampled; the guide copy should say Codex is pulling sample engagers from these posts to confirm the ICP is actually engaging and estimate whether enough right-content posts exist for the target lead count. Before final source approval, compute eligible posts, sampled ICP-fit rate, target good-fit lead count, posts needed, selected posts, expected good-fit range, and scale fallback. If the lane fails, update currentStep and watchNarration before moving to Sales Nav recent activity, normal Sales Nav, or Prospeo."
|
|
572
572
|
},
|
|
573
573
|
{
|
|
574
574
|
"action": "run_first_campaign_attached_source_search",
|
|
@@ -617,7 +617,7 @@
|
|
|
617
617
|
"action": "run_subskill",
|
|
618
618
|
"target": "find-leads",
|
|
619
619
|
"mode": "campaign-attached-required",
|
|
620
|
-
"sourceScoutRule": "Shell-first flow requires the CampaignOffer campaignId from durable state. Pass campaignId as campaignOfferId into every provider prompt/search that can persist source state (`get_provider_prompt({ provider, campaignOfferId, confirmed: true })`, `search_signals`, `search_sales_nav`, `search_prospeo`) and include currentStep for tools that accept it so the user can watch the selected source inside the campaign. Use the default sequential source viability funnel when the user did not specify a source: Signal Discovery first, then Sales Nav with recent activity, then general Sales Nav, then Prospeo only as fallback. For Signal Discovery,
|
|
620
|
+
"sourceScoutRule": "Shell-first flow requires the CampaignOffer campaignId from durable state. Pass campaignId as campaignOfferId into every provider prompt/search that can persist source state (`get_provider_prompt({ provider, campaignOfferId, confirmed: true })`, `search_signals`, `search_sales_nav`, `search_prospeo`) and include currentStep for tools that accept it so the user can watch the selected source inside the campaign. Use the default sequential source viability funnel when the user did not specify a source: Signal Discovery first, then Sales Nav with recent activity, then general Sales Nav, then Prospeo only as fallback. For Signal Discovery, use intersection-first keyword lanes that combine the campaign anchor with the buyer pain/use case/ICP role; broad anchor-only lanes are fallback inventory, not selectable source lanes while narrower wedge lanes exist. Do not recommend from raw post count; sample engagers, calculate ICP-fit rate, target good-fit lead count, posts needed, selected posts, expected good-fit range, and scale fallback. Stop on the first viable source unless the user explicitly asked to compare. If the user names hiring signals, domains/accounts, supplied lists, posts/comments, or title/persona filters, start with the matching source instead. Parallel source scouts only when the user requested comparison, an existing parallel run is being resumed, or the first viable source is borderline and one cheap fallback check is needed. The later import_leads call must use the same campaignOfferId. Do not import, confirm, enrich, queue, or start leads during source discovery."
|
|
621
621
|
},
|
|
622
622
|
{
|
|
623
623
|
"action": "optional_debug_artifacts",
|
|
@@ -43,6 +43,9 @@ When `find-leads` is using Signals during preview, treat this as a spot check:
|
|
|
43
43
|
### Round 1: Initial Discovery
|
|
44
44
|
|
|
45
45
|
- Generate 5 strategic keywords based on their ICP
|
|
46
|
+
- Prefer intersection keywords that combine the campaign's anchor topic with
|
|
47
|
+
the ICP pain/use case/role. Do not lead with broad anchor-only terms when the
|
|
48
|
+
campaign is narrower.
|
|
46
49
|
- Cast a slightly wider net to understand the landscape
|
|
47
50
|
- After results, analyze what's working
|
|
48
51
|
- Estimate whether the results are likely to produce a usable conversation lane
|
|
@@ -122,6 +125,27 @@ Use conservative logic:
|
|
|
122
125
|
|
|
123
126
|
You're NOT looking for generic buying intent keywords. You're looking for topics that attract YOUR SPECIFIC ICP:
|
|
124
127
|
|
|
128
|
+
### Intersection-First Rule
|
|
129
|
+
|
|
130
|
+
When the campaign has an anchor technology, category, community, or named tool,
|
|
131
|
+
do not search only the anchor. Combine it with the campaign's buyer pain, use
|
|
132
|
+
case, workflow, or role so the resulting posts are likely to attract the right
|
|
133
|
+
ICP before any engager filtering.
|
|
134
|
+
|
|
135
|
+
For a campaign about Claude/AI workflows for GTM, better first-round keywords
|
|
136
|
+
look like:
|
|
137
|
+
|
|
138
|
+
- "Claude outbound"
|
|
139
|
+
- "Claude Code LinkedIn outreach"
|
|
140
|
+
- "AI SDR Claude"
|
|
141
|
+
- "GTM automation Claude"
|
|
142
|
+
- "founder led sales Claude"
|
|
143
|
+
|
|
144
|
+
Broad anchor-only keywords such as "Claude Code", "MCP", "AI agents", or
|
|
145
|
+
"agentic coding" are inventory probes only. Use them after narrow lanes fail or
|
|
146
|
+
as diagnostic context; do not select/promote broad posts when narrower
|
|
147
|
+
campaign-wedge posts exist.
|
|
148
|
+
|
|
125
149
|
### For Founder/Executive ICPs:
|
|
126
150
|
|
|
127
151
|
- "founder mode", "founder led sales", "founder brand"
|
|
@@ -149,6 +173,10 @@ You're NOT looking for generic buying intent keywords. You're looking for topics
|
|
|
149
173
|
- Each round must have DIFFERENT keywords (no repeats across rounds)
|
|
150
174
|
- Use SINGLE keywords or short phrases only
|
|
151
175
|
- DO NOT use boolean operators (OR, AND, NOT)
|
|
176
|
+
- At least 3 first-round keywords must be intersection keywords that include
|
|
177
|
+
both the anchor topic and the campaign pain/use case/ICP context.
|
|
178
|
+
- If search results come back broad, immediately run a refined round around the
|
|
179
|
+
campaign wedge before selecting posts or sampling engagers.
|
|
152
180
|
|
|
153
181
|
Examples of GOOD keywords:
|
|
154
182
|
|