deal-contact-gap-analysis — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited deal-contact-gap-analysis (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Analyze open HubSpot deals to map existing contacts against the typical buying committee, identify missing roles, and find recommended contacts to fill the gaps via Amplemarket.
When a user wants to analyze the buying committee coverage on their deals, pull deal and contact data from HubSpot, map roles to a buying committee framework, identify gaps, and find candidates to fill them.
(a) "Which deals should I analyze?" Accept:
(b) "What does your typical buying committee look like?" Offer a default framework and let the user customize:
If the user has a different framework (e.g., MEDDPICC roles, custom roles), adapt to their model.
(c) "Which deal stages should I focus on?" Default to mid-to-late stages where multi-threading matters most (Qualification, Demo, Proposal, Negotiation). Allow the user to adjust.
mcp__claude_ai_HubSpot__get_user_details to get the authenticated user's name, email, and HubSpot user ID for owner-based filtering.mcp__claude_ai_HubSpot__search_crm_objects with:object_type: "deals"filter_groups: Based on user input - deal name, stage, owner, or open statusproperties: ["dealname", "amount", "dealstage", "pipeline", "hubspot_owner_id", "closedate", "createdate", "hs_lastmodifieddate"]associations: ["contacts", "companies"]sorts: [{"propertyName": "amount", "direction": "DESCENDING"}]limit: 20mcp__claude_ai_HubSpot__get_crm_objects with:object_type: "contacts"object_ids: contact IDs associated with each dealproperties: ["firstname", "lastname", "email", "jobtitle", "company", "phone", "linkedin_url", "hs_lead_status"]Also retrieve company data:
object_type: "companies"object_ids: company IDs from the dealsproperties: ["name", "domain", "industry", "numberofemployees"]Mapping logic by title keywords:
Flag contacts that cannot be clearly mapped to a role as "Unclassified" and note their title for user review.
mcp__claude_ai_Amplemarket__search_people for each deal company with gaps:company_domains: [deal company domain]person_titles: titles matching the missing roles (e.g., if missing Technical Evaluator, search for "CTO", "VP Engineering", "VP Technology", "Director Engineering")person_seniorities: appropriate seniority levels for the missing rolefull_output: truepage_size: 5Limit people searches to the top 10 deals by amount to manage credit usage.
mcp__claude_ai_Amplemarket__enrich_person for the #1 candidate for each missing role (limit to 10-15 enrichments):linkedin_url from the search resultsreveal_email: truesearch_people and enrich_person calls to the top 10 deals by value to manage Amplemarket credits. Offer to expand: "Shall I also search for missing contacts on the remaining X deals?"The following dynamic fields are populated for each identified gap and can be used in multi-threading outreach templates:
| Field | Description | Example Value |
|---|---|---|
{{gap_deal_name}} | Name of the deal being analyzed | "Acme Corp - Enterprise License" |
{{gap_deal_stage}} | Current deal stage | "Proposal Sent" |
{{gap_deal_amount}} | Deal value | "$185,000" |
{{gap_missing_role}} | The buying committee role that is unfilled | "Technical Evaluator" |
{{gap_recommended_contact}} | Name of the recommended person to fill the gap | "Jordan Lee" |
{{gap_recommended_title}} | Title of the recommended contact | "VP of Engineering" |
{{gap_recommended_email}} | Verified email of the recommended contact | "[email protected]" |
{{gap_existing_champion}} | Name of the existing champion who could make an introduction | "Sarah Martinez" |
{{gap_coverage_score}} | Percentage of buying committee roles filled | "33% (2 of 6 roles)" |
{{gap_suggested_approach}} | Recommended approach strategy | "Ask Sarah Martinez for a warm intro to Jordan" |
{{gap_suggested_opener}} | Personalized opener for the missing contact | "Hi Jordan, your team at Acme is evaluating our platform and I'd love your technical perspective..." |
{{gap_company_name}} | Company name for the deal | "Acme Corp" |
{{gap_risk_level}} | Risk level based on gap severity | "High - single-threaded, missing economic buyer" |
User prompt: "Map the buying committee on my open deals. My email is [email protected]"
What the skill does:
mcp__claude_ai_HubSpot__get_user_details to confirm user identity.mcp__claude_ai_HubSpot__search_crm_objects with object_type: "deals", filtering for open deals owned by the user, sorted by amount descending.mcp__claude_ai_HubSpot__get_crm_objects for contacts and companies associated with each deal.mcp__claude_ai_Amplemarket__search_people at each deal company to find candidates for missing roles.mcp__claude_ai_Amplemarket__enrich_person for the top candidate per missing role.Example output:
BUYING COMMITTEE GAP ANALYSIS - Sarah Martinez
Executive Summary
Deal-by-Deal Analysis
1. Acme Corp - Enterprise License ($185,000 | Proposal Sent)
| Role | Status | Contact | Title |
|---|---|---|---|
| Champion | Filled | David Kim | Director of Operations |
| Economic Buyer | Filled | Catherine Zhao | CFO |
| Technical Evaluator | MISSING | - | - |
| End User | Filled | Miguel Santos | Operations Manager |
| Legal/Procurement | MISSING | - | - |
| Executive Sponsor | MISSING | - | - |
Coverage: 50% (3 of 6) | Risk: Medium
Recommended contacts to fill gaps:
| Missing Role | Recommended Contact | Title | Approach | |
|---|---|---|---|---|
| Technical Evaluator | Jordan Lee | VP of Engineering | [email protected] | Ask David Kim for intro, as they work cross-functionally |
| Legal/Procurement | Priya Mehta | Director of Procurement | [email protected] | Direct outreach, reference the active evaluation |
| Executive Sponsor | Robert Chen | COO | [email protected] | Ask Catherine Zhao to loop in for final sign-off |
2. TechFlow - Platform Deal ($210,000 | Negotiation)
| Role | Status | Contact | Title |
|---|---|---|---|
| Champion | Filled | Kevin Park | CTO |
| Economic Buyer | MISSING | - | - |
| Technical Evaluator | Filled | Kevin Park | CTO (dual role) |
| End User | MISSING | - | - |
| Legal/Procurement | MISSING | - | - |
| Executive Sponsor | MISSING | - | - |
Coverage: 17% (1 of 6) | Risk: CRITICAL - single-threaded at $210K in Negotiation
Recommended contacts:
| Missing Role | Recommended Contact | Title | Approach |
|---|---|---|---|
| Economic Buyer | Amanda Foster | VP of Finance | Critical - need budget holder before contract stage |
| End User | Raj Patel | Senior Platform Engineer | Kevin can introduce, direct report |
| Executive Sponsor | James Wright | CEO | Ask Kevin for executive alignment meeting |
3. DataSync - Annual License ($125,000 | Qualification) ...
PRIORITY ACTION PLAN
User prompt: "Who's missing from the Acme Corp deal? We typically need a champion, economic buyer, technical evaluator, and legal."
What the skill does:
mcp__claude_ai_HubSpot__search_crm_objects searching for deals with name containing "Acme Corp".mcp__claude_ai_HubSpot__get_crm_objects.mcp__claude_ai_Amplemarket__search_people.mcp__claude_ai_Amplemarket__enrich_person.User prompt: "Check multi-threading on all deals in Negotiation stage. Flag any that are single-threaded"
What the skill does:
mcp__claude_ai_HubSpot__get_user_details.mcp__claude_ai_HubSpot__search_properties to find the correct stage ID for "Negotiation".mcp__claude_ai_HubSpot__search_crm_objects filtering for deals in the Negotiation stage.Example output (abbreviated):
MULTI-THREADING ANALYSIS - Negotiation Stage
Summary: 5 deals in Negotiation | 2 single-threaded (CRITICAL) | Average contacts per deal: 2.4
| Deal | Amount | Contacts | Single-Threaded? | Missing Roles | Risk |
|---|---|---|---|---|---|
| TechFlow | $210,000 | 1 | YES | Economic Buyer, End User, Legal, Exec Sponsor | Critical |
| GlobalTech | $165,000 | 1 | YES | Technical Evaluator, Legal, Exec Sponsor | Critical |
| Acme Corp | $185,000 | 3 | No | Technical Evaluator, Legal | Medium |
| CloudBase | $92,000 | 4 | No | Legal | Low |
| DataPipe | $78,000 | 2 | No | Economic Buyer, Exec Sponsor | Medium |
Immediate action needed: TechFlow and GlobalTech are both single-threaded in Negotiation with $375K combined value. These deals are at high risk of stalling or being lost.
| Problem | Solution |
|---|---|
| Deal has no associated contacts | Flag immediately: "This deal has zero contacts in HubSpot. It cannot be analyzed for gaps. Add at least one contact to the deal before running gap analysis." Offer to search for contacts at the deal company via mcp__claude_ai_Amplemarket__search_people. |
| Contact titles are missing or vague | If HubSpot contact records lack job titles, try enriching them via mcp__claude_ai_Amplemarket__enrich_person to get current titles. If titles are vague (e.g., "Manager"), classify as "Unclassified" and ask the user to manually assign the role. |
| Deal company domain is not available | If the associated company record lacks a domain, search for the company by name via mcp__claude_ai_Amplemarket__enrich_company to find the domain. Without a domain, search_people cannot find candidates for missing roles. |
| No candidates found for a missing role | Fallback chain: 1) Broaden the title search (e.g., add "Senior" level in addition to VP/Director). 2) Try searching by company name instead of domain. 3) For smaller companies (<50 employees), the role may not exist. Note: "Company may be too small to have a dedicated [role]. Suggest the user identify who covers this function." |
| User's buying committee framework differs from default | Adapt the mapping logic to the user's framework. If they use MEDDPICC, map to: Metrics owner, Economic Buyer, Decision criteria owner, Decision process owner, Paper process owner, Identified pain owner, Champion, Competition tracker. Update role-to-title mappings accordingly. |
| Too many deals to analyze | Offer to prioritize: "I found X open deals. Shall I focus on the top 10 by deal value, or would you prefer a specific stage?" Limit search_people calls to the top 10 deals to manage credits. |
| Contact appears on multiple deals | This is common. One person may be the champion on several deals at the same company. Map them to the appropriate role on each deal independently. Note the overlap: "David Kim is the champion on 3 Acme Corp deals." |
| Role mapping is ambiguous | Present ambiguous mappings with a note: "David Kim (Director of Business Operations), mapped as End User/Operator. Could also be Champion. Please confirm." Let the user override the mapping. |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.