@sellable/mcp 0.1.228 → 0.1.230
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.
package/dist/tools/leads.js
CHANGED
|
@@ -2422,11 +2422,12 @@ function normalizeProspeoCompanySearchInputForMcp(input) {
|
|
|
2422
2422
|
removeEmptyObjectFilter(filters, "company_lookalike");
|
|
2423
2423
|
}
|
|
2424
2424
|
}
|
|
2425
|
+
relaxMcpDomainSeedMatchAll(filters, seedDomains);
|
|
2425
2426
|
normalizeMcpCompanyKeywords(filters);
|
|
2426
2427
|
normalizeMcpCompanyWebsiteSearch(filters);
|
|
2427
2428
|
normalizeMcpCompanyIcp(filters);
|
|
2428
2429
|
stripMcpDuplicateCompanyIndustry(filters);
|
|
2429
|
-
stripMcpSeededLookalikeRiskyRefinements(filters, hasSeeds);
|
|
2430
|
+
stripMcpSeededLookalikeRiskyRefinements(filters, hasSeeds || hasMcpCompanyLookalikeOids(filters));
|
|
2430
2431
|
stripMcpKeyCustomerCompanionFilters(filters);
|
|
2431
2432
|
return {
|
|
2432
2433
|
...input,
|
|
@@ -2567,6 +2568,20 @@ function stripMcpDuplicateCompanyIndustry(filters) {
|
|
|
2567
2568
|
delete filters.company_industry;
|
|
2568
2569
|
}
|
|
2569
2570
|
}
|
|
2571
|
+
function relaxMcpDomainSeedMatchAll(filters, seedDomains) {
|
|
2572
|
+
if (seedDomains.length <= 1 || !isPlainObject(filters.company_lookalike)) {
|
|
2573
|
+
return;
|
|
2574
|
+
}
|
|
2575
|
+
if (filters.company_lookalike.match_all === true) {
|
|
2576
|
+
delete filters.company_lookalike.match_all;
|
|
2577
|
+
}
|
|
2578
|
+
}
|
|
2579
|
+
function hasMcpCompanyLookalikeOids(filters) {
|
|
2580
|
+
const lookalike = filters.company_lookalike;
|
|
2581
|
+
return (isPlainObject(lookalike) &&
|
|
2582
|
+
Array.isArray(lookalike.company_oids) &&
|
|
2583
|
+
lookalike.company_oids.some((oid) => typeof oid === "string" && oid.length > 0));
|
|
2584
|
+
}
|
|
2570
2585
|
function stripMcpSeededLookalikeRiskyRefinements(filters, hasSeeds) {
|
|
2571
2586
|
if (!hasSeeds || !isPlainObject(filters.company_lookalike)) {
|
|
2572
2587
|
return;
|
|
@@ -2581,6 +2596,16 @@ function stripMcpSeededLookalikeRiskyRefinements(filters, hasSeeds) {
|
|
|
2581
2596
|
delete filters.company_icp;
|
|
2582
2597
|
delete filters.company_keywords;
|
|
2583
2598
|
delete filters.company_website_search;
|
|
2599
|
+
simplifyMcpSeededLookalikeAttributes(filters);
|
|
2600
|
+
}
|
|
2601
|
+
function simplifyMcpSeededLookalikeAttributes(filters) {
|
|
2602
|
+
const attributes = filters.company_attributes;
|
|
2603
|
+
if (!isPlainObject(attributes)) {
|
|
2604
|
+
return;
|
|
2605
|
+
}
|
|
2606
|
+
if (attributes.has_api === true && attributes.has_sso === true) {
|
|
2607
|
+
delete attributes.has_sso;
|
|
2608
|
+
}
|
|
2584
2609
|
}
|
|
2585
2610
|
function stripMcpKeyCustomerCompanionFilters(filters) {
|
|
2586
2611
|
const keyCustomers = filters.company_key_customers;
|
package/package.json
CHANGED
|
@@ -258,7 +258,8 @@ attributes, headcount, or industry. Do not add `company_website_search`,
|
|
|
258
258
|
`company_keywords`, or `company_icp` until the account sample proves the seed
|
|
259
259
|
works. Do not send placeholder seed names like `another approved best-customer seed`,
|
|
260
260
|
and only use concrete companies or domains you actually resolved. Prefer `seedDomains`
|
|
261
|
-
|
|
261
|
+
for single-seed lookalikes. For multi-seed `match_all` lookalikes, use concrete company names unless you already know the exact canonical Prospeo domains; do not mix both in one seeded lookalike call. Do not combine `has_api` and `has_sso` in the first seeded lookalike call; start with `has_api`
|
|
262
|
+
and refine after a valid account sample if SSO still matters. Do not send `company_website_search.exclude_keywords` without a positive website include signal.
|
|
262
263
|
Do not use `AI`, `API`, `GTM`, or `SaaS` as company keyword terms.
|
|
263
264
|
Do not combine `company_key_customers` with ICP, website-search, keyword,
|
|
264
265
|
attribute, industry, or headcount filters until the standalone pass proves
|
|
@@ -433,7 +433,8 @@ Use first for broad persona expansion, ABM/domain targeting, hiring-led targetin
|
|
|
433
433
|
`company_keywords`, or `company_icp` until the account sample proves the seed
|
|
434
434
|
works. Do not send placeholder seed names like `another approved best-customer seed`,
|
|
435
435
|
and only use concrete companies or domains you actually resolved. Prefer `seedDomains`
|
|
436
|
-
|
|
436
|
+
for single-seed lookalikes. For multi-seed `match_all` lookalikes, use concrete company names unless you already know the exact canonical Prospeo domains; do not mix both in one seeded lookalike call. Do not combine `has_api` and `has_sso` in the first seeded lookalike call; start with
|
|
437
|
+
`has_api` and refine after a valid account sample if SSO still matters. Do not send `company_website_search.exclude_keywords` without a positive website include signal.
|
|
437
438
|
- Do not use `company_intent`. Do not invent unsupported support-channel filters
|
|
438
439
|
or AI Attribute guesses like phone/email/chat/ticket/social.
|
|
439
440
|
- Company/account search returns an account sample only; account rows are not people leads yet. Ask the user to approve the account sample.
|
|
@@ -107,8 +107,12 @@ Avoidable-400 guardrails:
|
|
|
107
107
|
- Do not send `company_keywords.exclude` unless at least one include keyword is present.
|
|
108
108
|
- Do not duplicate `company_industry` when `company_icp.industries` already carries the industry.
|
|
109
109
|
- For seeded company lookalikes, keep the first call simple: seed company/domain + `company_lookalike.minimum_tier` + confirmed attributes, headcount, or industry. Do not add `company_website_search`, `company_keywords`, or `company_icp` until the account sample proves the seed works.
|
|
110
|
+
- For seeded company lookalikes, do not combine `has_api` and `has_sso` in the first call; start with `has_api` and refine after a valid account sample if SSO still matters.
|
|
110
111
|
- Do not send placeholder seed names such as `another approved best-customer seed`; use only concrete company names or domains you have actually resolved.
|
|
111
|
-
- Prefer seed domains
|
|
112
|
+
- Prefer seed domains for single-seed lookalikes. For multi-seed `match_all`
|
|
113
|
+
lookalikes, use concrete company names unless you already know the exact
|
|
114
|
+
canonical Prospeo domains; guessed product or marketing domains can 400 with
|
|
115
|
+
`match_all`. Do not mix `seedDomains` and `seedCompanies` in the same call.
|
|
112
116
|
- Do not send `company_website_search.exclude_keywords` without a positive website include signal.
|
|
113
117
|
- For post-confirm people search, prefer `person_job_title.boolean_search` for long role synonym lists instead of many `person_job_title.include` values plus broad department/seniority filters.
|
|
114
118
|
|
|
@@ -254,7 +258,10 @@ Preference rules:
|
|
|
254
258
|
- Do not use `AI`, `API`, `GTM`, or `SaaS` as company keyword terms; use longer phrases such as `artificial intelligence`, `application programming interface`, `go to market`, or `software as a service`.
|
|
255
259
|
- Run `company_key_customers` as a standalone first-pass filter. Do not combine `company_key_customers` with ICP, website-search, keyword, attribute, industry, or headcount filters until the standalone pass proves useful.
|
|
256
260
|
- For seeded lookalikes, avoid first-call `company_website_search`, `company_keywords`, and `company_icp`; use resolved seeds plus lookalike tier and simple attributes/headcount/industry first.
|
|
257
|
-
-
|
|
261
|
+
- For seeded lookalikes, avoid first-call `has_api` + `has_sso`; use one confirmed attribute first, then refine.
|
|
262
|
+
- Prefer `seedDomains` for single-seed lookalikes. For multi-seed `match_all`
|
|
263
|
+
lookalikes, use concrete company names unless you know the exact canonical
|
|
264
|
+
Prospeo domains; do not mix both in one seeded lookalike call.
|
|
258
265
|
|
|
259
266
|
### Person Filters
|
|
260
267
|
|