[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-merge-duplicate-companies-zh-CN":3,"guides-for-TomGranot-merge-duplicate-companies":696,"similar-k172whyaj075h70q7ch2g6ansn86mj4j-zh-CN":697},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":239,"isFallback":244,"parentExtension":245,"providers":299,"relations":303,"repo":304,"tags":694,"workflow":695},1778698144006.2244,"k172whyaj075h70q7ch2g6ansn86mj4j",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Identify duplicate company records by domain and name, export audit CSVs for review, and guide merging. API for discovery, third-party tools or manual UI for merging (HubSpot has no bulk merge API).\n",{"claudeCode":12},"TomGranot/hubspot-admin-skills","merge-duplicate-companies","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":221,"workflow":237},1778698541244.4714,"kn75h0krdczse27ddgp9z9t4xs86mff0","en",{"checks":20,"evaluatedAt":192,"extensionSummary":193,"features":194,"nonGoals":199,"promptVersionExtension":203,"promptVersionScoring":204,"purpose":205,"rationale":206,"score":207,"summary":208,"tags":209,"targetMarket":215,"tier":216,"useCases":217},[21,26,29,32,36,39,44,48,51,54,58,62,65,69,72,75,78,81,84,87,91,95,99,103,107,110,113,116,120,123,126,129,132,135,138,142,146,150,153,157,160,163,166,169,173,176,179,182,185,189],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly identifies the problem of duplicate company records fragmenting data and impacting reporting, providing a specific user pain point.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers value beyond basic API calls by providing a structured process for identifying and guiding the manual merging of duplicate HubSpot companies, addressing a known API limitation.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill covers the complete lifecycle from discovery and auditing to providing guidance for manual merging, with clear prerequisites and safety mechanisms.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses solely on identifying and managing duplicate company records within HubSpot, a single, coherent domain.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the skill's capabilities, including its use of API for discovery and the manual nature of merging due to HubSpot's limitations.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This skill operates as a single script-driven process rather than exposing multiple distinct tools.",{"category":45,"check":46,"severity":24,"summary":47},"Documentation","Configuration & parameter reference","All necessary parameters, including environment variables and access tokens, are clearly documented in the SKILL.md and package setup instructions.",{"category":33,"check":49,"severity":42,"summary":50},"Tool naming","This skill is a single script and does not expose multiple tools with names to evaluate.",{"category":33,"check":52,"severity":24,"summary":53},"Minimal I/O surface","The Python script clearly defines its inputs (environment variables) and outputs (CSV files, console logs) with no extraneous data.",{"category":55,"check":56,"severity":24,"summary":57},"License","License usability","The skill is distributed under the MIT license, as indicated in the SKILL.md frontmatter and LICENSE file, which is a permissive open-source license.",{"category":59,"check":60,"severity":24,"summary":61},"Maintenance","Commit recency","The last commit was on March 26, 2026, which is within the last 3 months.",{"category":59,"check":63,"severity":24,"summary":64},"Dependency Management","The `uv` package manager is used with explicit dependencies listed, and the `load_dotenv` function handles environment variables, providing a stable setup.",{"category":66,"check":67,"severity":24,"summary":68},"Security","Secret Management","The HubSpot access token is loaded from a `.env` file, adhering to best practices and avoiding hardcoding.",{"category":66,"check":70,"severity":24,"summary":71},"Injection","The script uses standard Python libraries and makes direct API calls; it does not load or execute external, untrusted code.",{"category":66,"check":73,"severity":24,"summary":74},"Transitive Supply-Chain Grenades","The script only uses vendored dependencies and does not fetch remote code or data at runtime.",{"category":66,"check":76,"severity":24,"summary":77},"Sandbox Isolation","The script operates by reading data from the HubSpot API and writing local CSV files; it does not attempt to modify files outside its intended scope.",{"category":66,"check":79,"severity":24,"summary":80},"Sandbox escape primitives","The script is a standard Python execution and does not employ detached processes or retry loops around denied calls.",{"category":66,"check":82,"severity":24,"summary":83},"Data Exfiltration","The script only interacts with the HubSpot API using a provided token and writes local audit files; it does not exfiltrate data to third parties.",{"category":66,"check":85,"severity":24,"summary":86},"Hidden Text Tricks","The bundled content consists of plain Python code and markdown, free of hidden-steering tricks or malicious formatting.",{"category":88,"check":89,"severity":24,"summary":90},"Hooks","Opaque code execution","The Python script is plain, readable source code and does not use obfuscation techniques like base64 encoding or eval.",{"category":92,"check":93,"severity":24,"summary":94},"Portability","Structural Assumption","The script assumes a standard Python 3.10+ environment and the presence of a `.env` file, which is clearly documented.",{"category":96,"check":97,"severity":24,"summary":98},"Trust","Issues Attention","In the last 90 days, 0 issues were opened and 1 was closed, indicating good maintainer responsiveness.",{"category":100,"check":101,"severity":24,"summary":102},"Versioning","Release Management","A meaningful version ('1.0') is declared in the SKILL.md frontmatter.",{"category":104,"check":105,"severity":24,"summary":106},"Code Execution","Validation","Input validation is handled by checking the existence and format of the HubSpot token from the environment variable.",{"category":66,"check":108,"severity":24,"summary":109},"Unguarded Destructive Operations","The skill only performs read operations and generates reports; no destructive operations are performed.",{"category":104,"check":111,"severity":24,"summary":112},"Error Handling","The script includes basic error handling for API requests and provides informative print statements for progress and potential issues.",{"category":104,"check":114,"severity":24,"summary":115},"Logging","The script provides clear console output indicating its progress, the data fetched, and the generated audit logs.",{"category":117,"check":118,"severity":42,"summary":119},"Compliance","GDPR","The skill operates on company data and does not inherently process personal data requiring GDPR-specific sanitization beyond what HubSpot's API might already handle.",{"category":117,"check":121,"severity":24,"summary":122},"Target market","The skill's functionality is tied to the HubSpot API and is globally applicable, with no specific regional limitations.",{"category":92,"check":124,"severity":24,"summary":125},"Runtime stability","The script is written in standard Python 3.10+ and relies on common libraries, making it broadly compatible across POSIX systems.",{"category":45,"check":127,"severity":24,"summary":128},"README","The README provides a comprehensive overview of the skills, installation instructions, and usage examples, clearly stating the purpose.",{"category":33,"check":130,"severity":42,"summary":131},"Tool surface size","This is a single-script extension, not a multi-tool command.",{"category":40,"check":133,"severity":42,"summary":134},"Overlapping near-synonym tools","This extension consists of a single script and does not expose multiple tools.",{"category":45,"check":136,"severity":24,"summary":137},"Phantom features","All documented features, including CSV export and duplicate identification logic, are implemented in the provided Python script.",{"category":139,"check":140,"severity":24,"summary":141},"Install","Installation instruction","The README and SKILL.md provide clear installation instructions, including package setup and token configuration.",{"category":143,"check":144,"severity":24,"summary":145},"Errors","Actionable error messages","API errors and script execution issues are reported with status codes and descriptive messages, and the script provides guidance on manual merging.",{"category":147,"check":148,"severity":24,"summary":149},"Execution","Pinned dependencies","Dependencies are managed by `uv` and explicitly listed, ensuring reproducible builds.",{"category":33,"check":151,"severity":24,"summary":152},"Dry-run preview","The 'Before State' script acts as a dry run by providing audit CSVs and analysis without performing any destructive merge operations.",{"category":154,"check":155,"severity":42,"summary":156},"Protocol","Idempotent retry & timeouts","The script makes API calls with basic retry logic and operates within typical API timeouts; it doesn't involve state-changing mutations that require idempotency.",{"category":117,"check":158,"severity":24,"summary":159},"Telemetry opt-in","The script does not emit any telemetry data.",{"category":40,"check":161,"severity":24,"summary":162},"Precise Purpose","The SKILL.md clearly defines the purpose as identifying duplicate company records by domain and name, exporting audits, and guiding manual merging, with explicit mention of the lack of a bulk merge API and when to use it.",{"category":40,"check":164,"severity":24,"summary":165},"Concise Frontmatter","The SKILL.md frontmatter is concise and effectively summarizes the core capability and licensing.",{"category":45,"check":167,"severity":24,"summary":168},"Concise Body","The SKILL.md is well-structured and concise, delegating detailed code to separate files.",{"category":170,"check":171,"severity":24,"summary":172},"Context","Progressive Disclosure","The SKILL.md outlines the stages and links to separate Python scripts for detailed implementation, demonstrating progressive disclosure.",{"category":170,"check":174,"severity":42,"summary":175},"Forked exploration","This skill is not an exploration-heavy skill; it performs a defined audit and provides guidance, so `context: fork` is not applicable.",{"category":22,"check":177,"severity":24,"summary":178},"Usage examples","The SKILL.md provides clear examples for running the 'Before State' script and detailed manual instructions for the 'Execute' stage, covering different merging scenarios.",{"category":22,"check":180,"severity":24,"summary":181},"Edge cases","The 'Technical Gotchas' section in SKILL.md thoroughly documents potential issues like the lack of a bulk merge API, irreversible merges, property conflicts, and domain normalization, along with recovery advice.",{"category":104,"check":183,"severity":42,"summary":184},"Tool Fallback","This skill does not rely on external MCP tools and is self-contained.",{"category":186,"check":187,"severity":24,"summary":188},"Safety","Halt on unexpected state","The 'Plan' stage explicitly asks for user confirmation regarding intentional duplicates and irreversibility before proceeding, acting as a halt on unexpected states.",{"category":92,"check":190,"severity":24,"summary":191},"Cross-skill coupling","The skill is self-contained and does not rely on other skills being loaded in the same session.",1778698541119,"This skill identifies duplicate company records in HubSpot by domain and name, exports audit CSVs, and guides users through the manual merging process due to HubSpot's lack of a bulk merge API. It includes Python scripts for data fetching and analysis.",[195,196,197,198],"Identifies duplicate companies by domain and name.","Exports audit CSVs for manual review.","Provides guidance for manual company merging.","Handles HubSpot's API limitations regarding bulk merging.",[200,201,202],"Automatically merging company records (due to HubSpot API limitations).","Performing actions on contacts, deals, or other HubSpot objects.","Replacing third-party HubSpot deduplication tools for large-scale automated merges.","3.0.0","4.4.0","To clean and consolidate duplicate company records in HubSpot, improving data accuracy for reporting and sales activities.","The extension is highly polished, with excellent documentation, clear purpose, robust error handling, and strong safety mechanisms. Minor improvements could include more granular examples for specific edge cases in the manual merge process.",95,"A highly effective skill for managing duplicate company records in HubSpot, providing detailed auditing and clear guidance for manual merging.",[210,211,212,213,214],"hubspot","crm","data-quality","deduplication","automation","global","verified",[218,219,220],"When duplicate company records are causing fragmented reporting or sales confusion.","To prepare for a CRM data audit and cleanup initiative.","To improve the accuracy of contact and deal associations by consolidating company data.",{"codeQuality":222,"collectedAt":224,"documentation":225,"maintenance":228,"security":234,"testCoverage":236},{"hasLockfile":223},false,1778698526736,{"descriptionLength":226,"readmeSize":227},199,10597,{"closedIssues90d":229,"forks":230,"hasChangelog":223,"manifestVersion":231,"openIssues90d":8,"pushedAt":232,"stars":233},1,4,"1.0",1774540543000,21,{"hasNpmPackage":223,"license":235,"smitheryVerified":223},"MIT",{"hasCi":223,"hasTests":223},{"updatedAt":238},1778698541244,{"basePath":240,"githubOwner":241,"githubRepo":242,"locale":18,"slug":13,"type":243},"skills/merge-duplicate-companies","TomGranot","hubspot-admin-skills","skill",true,{"_creationTime":246,"_id":247,"community":248,"display":249,"identity":254,"parentExtension":257,"providers":286,"relations":295,"tags":296,"workflow":297},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":250,"installMethods":251,"name":253,"sourceUrl":14},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":252},"hubspot-admin","HubSpot Admin Skills",{"basePath":255,"githubOwner":241,"githubRepo":242,"locale":18,"slug":242,"type":256},"","plugin",{"_creationTime":258,"_id":259,"community":260,"display":261,"identity":264,"providers":266,"relations":280,"tags":282,"workflow":283},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":262,"installMethods":263,"name":242,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":255,"githubOwner":241,"githubRepo":242,"locale":18,"slug":242,"type":265},"marketplace",{"evaluate":267,"extract":275},{"promptVersionExtension":268,"promptVersionScoring":204,"score":269,"tags":270,"targetMarket":215,"tier":274},"3.1.0",79,[210,211,214,271,272,273],"data-cleaning","auditing","administration","community",{"commitSha":276,"marketplace":277,"plugin":278},"HEAD",{"name":242,"pluginCount":229},{"mcpCount":8,"provider":279,"skillCount":8},"classify",{"repoId":281},"kd75kpec7arn6z2wz641vfaj8n86nab6",[273,272,214,211,271,210],{"evaluatedAt":284,"extractAt":285,"updatedAt":284},1778698158552,1778698144006,{"evaluate":287,"extract":292},{"promptVersionExtension":203,"promptVersionScoring":204,"score":288,"tags":289,"targetMarket":215,"tier":216},99,[210,211,273,212,214,290,272,291],"cleanup","marketing-automation",{"commitSha":276,"license":235,"plugin":293},{"mcpCount":8,"provider":279,"skillCount":294},32,{"parentExtensionId":259,"repoId":281},[273,272,214,290,211,212,210,291],{"evaluatedAt":298,"extractAt":285,"updatedAt":298},1778698168554,{"evaluate":300,"extract":302},{"promptVersionExtension":203,"promptVersionScoring":204,"score":207,"tags":301,"targetMarket":215,"tier":216},[210,211,212,213,214],{"commitSha":276},{"parentExtensionId":247,"repoId":281},{"_creationTime":305,"_id":281,"identity":306,"providers":307,"workflow":690},1778698139523.511,{"githubOwner":241,"githubRepo":242,"sourceUrl":14},{"classify":308,"discover":684,"github":687},{"commitSha":276,"extensions":309},[310,323,396,412,420,428,436,445,453,461,469,477,485,493,501,512,520,531,539,549,559,570,578,586,594,600,608,616,627,635,646,656,666,676],{"basePath":255,"description":262,"displayName":242,"installMethods":311,"rationale":312,"selectedPaths":313,"source":322,"sourceLanguage":18,"type":265},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[314,317,319],{"path":315,"priority":316},".claude-plugin/marketplace.json","mandatory",{"path":318,"priority":316},"README.md",{"path":320,"priority":321},"LICENSE","high","rule",{"basePath":255,"description":250,"displayName":252,"installMethods":324,"rationale":325,"selectedPaths":326,"source":322,"sourceLanguage":18,"type":256},{"claudeCode":252},"plugin manifest at .claude-plugin/plugin.json",[327,329,330,331,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394],{"path":328,"priority":316},".claude-plugin/plugin.json",{"path":318,"priority":316},{"path":320,"priority":321},{"path":332,"priority":333},"skills/assign-unowned-contacts/SKILL.md","medium",{"path":335,"priority":333},"skills/backfill-geo-data/SKILL.md",{"path":337,"priority":333},"skills/bounce-monitoring-workflow/SKILL.md",{"path":339,"priority":333},"skills/build-lead-scoring/SKILL.md",{"path":341,"priority":333},"skills/build-smart-lists/SKILL.md",{"path":343,"priority":333},"skills/cleanup-dashboards/SKILL.md",{"path":345,"priority":333},"skills/cleanup-deals/SKILL.md",{"path":347,"priority":333},"skills/cleanup-forms/SKILL.md",{"path":349,"priority":333},"skills/cleanup-lead-owners/SKILL.md",{"path":351,"priority":333},"skills/cleanup-lists/SKILL.md",{"path":353,"priority":333},"skills/cleanup-properties/SKILL.md",{"path":355,"priority":333},"skills/cleanup-workflows/SKILL.md",{"path":357,"priority":333},"skills/create-icp-tiers/SKILL.md",{"path":359,"priority":333},"skills/create-segment-lists/SKILL.md",{"path":361,"priority":333},"skills/delete-no-email-contacts/SKILL.md",{"path":363,"priority":333},"skills/engagement-suppression-workflow/SKILL.md",{"path":365,"priority":333},"skills/enrich-company-name/SKILL.md",{"path":367,"priority":333},"skills/enrich-industry/SKILL.md",{"path":369,"priority":333},"skills/fix-lifecycle-stages/SKILL.md",{"path":371,"priority":333},"skills/hubspot-audit/SKILL.md",{"path":373,"priority":333},"skills/hubspot-implementation-plan/SKILL.md",{"path":375,"priority":333},"skills/lifecycle-progression-workflow/SKILL.md",{"path":377,"priority":333},"skills/merge-duplicate-companies/SKILL.md",{"path":379,"priority":333},"skills/new-contact-hygiene-workflow/SKILL.md",{"path":381,"priority":333},"skills/quarterly-database-cleanup/SKILL.md",{"path":383,"priority":333},"skills/reassign-deactivated-owners/SKILL.md",{"path":385,"priority":333},"skills/review-bounced-contacts/SKILL.md",{"path":387,"priority":333},"skills/standardize-geo-values/SKILL.md",{"path":389,"priority":333},"skills/suppress-ghost-contacts/SKILL.md",{"path":391,"priority":333},"skills/suppress-global-unsubscribes/SKILL.md",{"path":393,"priority":333},"skills/suppress-hard-bounced/SKILL.md",{"path":395,"priority":333},"skills/weekly-cleanup-routine/SKILL.md",{"basePath":397,"description":398,"displayName":399,"installMethods":400,"rationale":401,"selectedPaths":402,"source":322,"sourceLanguage":18,"type":243},"skills/assign-unowned-contacts","Assign an owner to marketing contacts that have no owner. Ensures every marketable contact has accountability for follow-up, proper lead routing, and accurate owner-based reporting.","assign-unowned-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/assign-unowned-contacts/SKILL.md",[403,405,408,410],{"path":404,"priority":316},"SKILL.md",{"path":406,"priority":407},"scripts/after.py","low",{"path":409,"priority":407},"scripts/before.py",{"path":411,"priority":407},"scripts/execute.py",{"basePath":413,"description":414,"displayName":415,"installMethods":416,"rationale":417,"selectedPaths":418,"source":322,"sourceLanguage":18,"type":243},"skills/backfill-geo-data","Enrich missing geographic data (country, state, city) on contacts and companies using HubSpot workflows, external data providers, or IP-based geolocation.","backfill-geo-data",{"claudeCode":12},"SKILL.md frontmatter at skills/backfill-geo-data/SKILL.md",[419],{"path":404,"priority":316},{"basePath":421,"description":422,"displayName":423,"installMethods":424,"rationale":425,"selectedPaths":426,"source":322,"sourceLanguage":18,"type":243},"skills/bounce-monitoring-workflow","Build a workflow to protect sender reputation through automated bounce monitoring. Auto-suppresses contacts above a configurable bounce threshold, alerts on hard bounces, and flags high-bounce contacts for weekly manual review.","bounce-monitoring-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/bounce-monitoring-workflow/SKILL.md",[427],{"path":404,"priority":316},{"basePath":429,"description":430,"displayName":431,"installMethods":432,"rationale":433,"selectedPaths":434,"source":322,"sourceLanguage":18,"type":243},"skills/build-lead-scoring","Create a comprehensive lead scoring model with separate Fit and Engagement scores using HubSpot's new Lead Scoring tool. Replaces the deprecated HubSpot Score property.","build-lead-scoring",{"claudeCode":12},"SKILL.md frontmatter at skills/build-lead-scoring/SKILL.md",[435],{"path":404,"priority":316},{"basePath":437,"description":438,"displayName":439,"installMethods":440,"rationale":441,"selectedPaths":442,"source":322,"sourceLanguage":18,"type":243},"skills/build-smart-lists","Create foundational segmented lists for marketing and sales operations. Includes a master sendable list, ICP-based lists, persona lists, engagement lists, and behavioral lists. All active (dynamic) lists.","build-smart-lists",{"claudeCode":12},"SKILL.md frontmatter at skills/build-smart-lists/SKILL.md",[443,444],{"path":404,"priority":316},{"path":411,"priority":407},{"basePath":446,"description":447,"displayName":448,"installMethods":449,"rationale":450,"selectedPaths":451,"source":322,"sourceLanguage":18,"type":243},"skills/cleanup-dashboards","Audit and consolidate HubSpot reporting dashboards. Identifies unused, duplicate, or outdated dashboards. Must be performed manually — no dashboard API is available.","cleanup-dashboards",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-dashboards/SKILL.md",[452],{"path":404,"priority":316},{"basePath":454,"description":455,"displayName":456,"installMethods":457,"rationale":458,"selectedPaths":459,"source":322,"sourceLanguage":18,"type":243},"skills/cleanup-deals","Standardize deal pipelines, remove test deals, and address deals with missing amounts or close dates. Coordinates with Salesforce sync if applicable.","cleanup-deals",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-deals/SKILL.md",[460],{"path":404,"priority":316},{"basePath":462,"description":463,"displayName":464,"installMethods":465,"rationale":466,"selectedPaths":467,"source":322,"sourceLanguage":18,"type":243},"skills/cleanup-forms","Audit and remove unused, test, or deprecated forms from HubSpot. Identifies forms with zero submissions, forms not embedded on any page, and test forms left over from development.","cleanup-forms",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-forms/SKILL.md",[468],{"path":404,"priority":316},{"basePath":470,"description":471,"displayName":472,"installMethods":473,"rationale":474,"selectedPaths":475,"source":322,"sourceLanguage":18,"type":243},"skills/cleanup-lead-owners","Remove non-employee users from HubSpot and reassign their orphaned contacts, companies, and deals. Pairs with the assign-unowned-contacts skill for comprehensive ownership cleanup.","cleanup-lead-owners",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-lead-owners/SKILL.md",[476],{"path":404,"priority":316},{"basePath":478,"description":479,"displayName":480,"installMethods":481,"rationale":482,"selectedPaths":483,"source":322,"sourceLanguage":18,"type":243},"skills/cleanup-lists","Audit and remove unused, empty, or duplicate list definitions from HubSpot. Identifies lists with zero members, lists not used by any workflow or email, and overlapping list criteria.","cleanup-lists",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-lists/SKILL.md",[484],{"path":404,"priority":316},{"basePath":486,"description":487,"displayName":488,"installMethods":489,"rationale":490,"selectedPaths":491,"source":322,"sourceLanguage":18,"type":243},"skills/cleanup-properties","Archive or delete unused custom properties across all HubSpot object types (contacts, companies, deals). Identifies Salesforce sync properties, test/temp properties, and obsolete form fields.","cleanup-properties",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-properties/SKILL.md",[492],{"path":404,"priority":316},{"basePath":494,"description":495,"displayName":496,"installMethods":497,"rationale":498,"selectedPaths":499,"source":322,"sourceLanguage":18,"type":243},"skills/cleanup-workflows","Audit and remove inactive, test, or deprecated workflows from HubSpot. Identifies workflows that have never enrolled contacts, workflows turned off for 90+ days, and test workflows.","cleanup-workflows",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-workflows/SKILL.md",[500],{"path":404,"priority":316},{"basePath":502,"description":503,"displayName":504,"installMethods":505,"rationale":506,"selectedPaths":507,"source":322,"sourceLanguage":18,"type":243},"skills/create-icp-tiers","Classify companies into Ideal Customer Profile (ICP) tiers based on firmographic data (industry + employee count). Creates a custom property via API and 4 classification workflows in HubSpot UI.","create-icp-tiers",{"claudeCode":12},"SKILL.md frontmatter at skills/create-icp-tiers/SKILL.md",[508,509,510,511],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"path":411,"priority":407},{"basePath":513,"description":514,"displayName":515,"installMethods":516,"rationale":517,"selectedPaths":518,"source":322,"sourceLanguage":18,"type":243},"skills/create-segment-lists","Create business segment lists in HubSpot for customers, partners, competitors, employees, ICP tiers, and industries. Enables segment-based targeting, suppression, and analytics.","create-segment-lists",{"claudeCode":12},"SKILL.md frontmatter at skills/create-segment-lists/SKILL.md",[519],{"path":404,"priority":316},{"basePath":521,"description":522,"displayName":523,"installMethods":524,"rationale":525,"selectedPaths":526,"source":322,"sourceLanguage":18,"type":243},"skills/delete-no-email-contacts","Delete contacts with no email address from a HubSpot CRM instance. These contacts cannot receive any communication and inflate billing. Fully automated via the HubSpot CRM Search and Batch Archive APIs.\n","delete-no-email-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/delete-no-email-contacts/SKILL.md",[527,528,529,530],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"path":411,"priority":407},{"basePath":532,"description":533,"displayName":534,"installMethods":535,"rationale":536,"selectedPaths":537,"source":322,"sourceLanguage":18,"type":243},"skills/engagement-suppression-workflow","Build a two-tier sunset workflow that re-engages dormant contacts before suppressing them. Tier 1 triggers a re-engagement campaign after a configurable inactivity window. Tier 2 suppresses contacts that fail to re-engage within a configurable re-engagement window.","engagement-suppression-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/engagement-suppression-workflow/SKILL.md",[538],{"path":404,"priority":316},{"basePath":540,"description":541,"displayName":542,"installMethods":543,"rationale":544,"selectedPaths":545,"source":322,"sourceLanguage":18,"type":243},"skills/enrich-company-name","Populate missing contact company name fields from associated company records using a HubSpot workflow with optional API backfill. Ensures contacts inherit their company name for segmentation, personalization, and ICP classification.","enrich-company-name",{"claudeCode":12},"SKILL.md frontmatter at skills/enrich-company-name/SKILL.md",[546,547,548],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"basePath":550,"description":551,"displayName":552,"installMethods":553,"rationale":554,"selectedPaths":555,"source":322,"sourceLanguage":18,"type":243},"skills/enrich-industry","Backfill contact-level industry from associated company records using a HubSpot workflow. Enables industry-based segmentation for targeted campaigns aligned with ICP verticals.","enrich-industry",{"claudeCode":12},"SKILL.md frontmatter at skills/enrich-industry/SKILL.md",[556,557,558],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"basePath":560,"description":561,"displayName":562,"installMethods":563,"rationale":564,"selectedPaths":565,"source":322,"sourceLanguage":18,"type":243},"skills/fix-lifecycle-stages","Ensure all contacts and companies have appropriate lifecycle stages. Backfills missing stages via API, fixes records stuck at disallowed stages, and creates prevention workflows to stop future gaps.","fix-lifecycle-stages",{"claudeCode":12},"SKILL.md frontmatter at skills/fix-lifecycle-stages/SKILL.md",[566,567,568,569],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"path":411,"priority":407},{"basePath":571,"description":572,"displayName":573,"installMethods":574,"rationale":575,"selectedPaths":576,"source":322,"sourceLanguage":18,"type":243},"skills/hubspot-audit","Run a comprehensive HubSpot CRM database audit. Analyzes contacts, companies, deals, engagement, data quality, and deliverability. Use when starting a CRM cleanup, onboarding a new client, or performing quarterly health checks.","hubspot-audit",{"claudeCode":12},"SKILL.md frontmatter at skills/hubspot-audit/SKILL.md",[577],{"path":404,"priority":316},{"basePath":579,"description":580,"displayName":581,"installMethods":582,"rationale":583,"selectedPaths":584,"source":322,"sourceLanguage":18,"type":243},"skills/hubspot-implementation-plan","Generate a phased implementation plan from a HubSpot audit report. Creates prioritized, sequenced cleanup processes with effort estimates, dependencies, and automation feasibility. Use after running /hubspot-audit.","hubspot-implementation-plan",{"claudeCode":12},"SKILL.md frontmatter at skills/hubspot-implementation-plan/SKILL.md",[585],{"path":404,"priority":316},{"basePath":587,"description":588,"displayName":589,"installMethods":590,"rationale":591,"selectedPaths":592,"source":322,"sourceLanguage":18,"type":243},"skills/lifecycle-progression-workflow","Build workflows to automate contact progression through the sales funnel: Lead to MQL to SQL to Opportunity to Customer. Each transition is triggered by a specific event (score threshold, meeting booked, deal created, deal won).","lifecycle-progression-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/lifecycle-progression-workflow/SKILL.md",[593],{"path":404,"priority":316},{"basePath":240,"description":10,"displayName":13,"installMethods":595,"rationale":596,"selectedPaths":597,"source":322,"sourceLanguage":18,"type":243},{"claudeCode":12},"SKILL.md frontmatter at skills/merge-duplicate-companies/SKILL.md",[598,599],{"path":404,"priority":316},{"path":409,"priority":407},{"basePath":601,"description":602,"displayName":603,"installMethods":604,"rationale":605,"selectedPaths":606,"source":322,"sourceLanguage":18,"type":243},"skills/new-contact-hygiene-workflow","Build a HubSpot workflow that auto-enriches and stages new contacts upon creation. Sets lifecycle stage, copies company name and industry from associated company, and branches on completeness. Must be built manually in the HubSpot UI due to API limitations.","new-contact-hygiene-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/new-contact-hygiene-workflow/SKILL.md",[607],{"path":404,"priority":316},{"basePath":609,"description":610,"displayName":611,"installMethods":612,"rationale":613,"selectedPaths":614,"source":322,"sourceLanguage":18,"type":243},"skills/quarterly-database-cleanup","Run a comprehensive quarterly CRM audit covering list health, bounce monitoring, data quality, scoring calibration, engagement metrics, and property cleanup. Produces a health report with quarter-over-quarter trend comparison.","quarterly-database-cleanup",{"claudeCode":12},"SKILL.md frontmatter at skills/quarterly-database-cleanup/SKILL.md",[615],{"path":404,"priority":316},{"basePath":617,"description":618,"displayName":619,"installMethods":620,"rationale":621,"selectedPaths":622,"source":322,"sourceLanguage":18,"type":243},"skills/reassign-deactivated-owners","Reassign contacts and companies from deactivated team members to active owners. Fully automated via the HubSpot Owners API and Batch Update API. Includes territory analysis for informed reassignment decisions.\n","reassign-deactivated-owners",{"claudeCode":12},"SKILL.md frontmatter at skills/reassign-deactivated-owners/SKILL.md",[623,624,625,626],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"path":411,"priority":407},{"basePath":628,"description":629,"displayName":630,"installMethods":631,"rationale":632,"selectedPaths":633,"source":322,"sourceLanguage":18,"type":243},"skills/review-bounced-contacts","Weekly manual review of contacts with 3+ bounce events. Decide whether to delete or attempt recovery for each flagged contact. Prevents over-suppression while removing truly bad data.","review-bounced-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/review-bounced-contacts/SKILL.md",[634],{"path":404,"priority":316},{"basePath":636,"description":637,"displayName":638,"installMethods":639,"rationale":640,"selectedPaths":641,"source":322,"sourceLanguage":18,"type":243},"skills/standardize-geo-values","Convert inconsistent country and state/region formats to standardized values across contacts and companies. Ensures geographic segmentation works reliably.","standardize-geo-values",{"claudeCode":12},"SKILL.md frontmatter at skills/standardize-geo-values/SKILL.md",[642,643,644,645],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"path":411,"priority":407},{"basePath":647,"description":648,"displayName":649,"installMethods":650,"rationale":651,"selectedPaths":652,"source":322,"sourceLanguage":18,"type":243},"skills/suppress-ghost-contacts","Identify and suppress ghost contacts who received marketing emails but never opened any. These contacts destroy sender reputation and deliverability. Hybrid approach: API for discovery, manual UI for suppression.\n","suppress-ghost-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/suppress-ghost-contacts/SKILL.md",[653,654,655],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"basePath":657,"description":658,"displayName":659,"installMethods":660,"rationale":661,"selectedPaths":662,"source":322,"sourceLanguage":18,"type":243},"skills/suppress-global-unsubscribes","Identify and suppress globally unsubscribed contacts to ensure legal compliance and reduce billing. Hybrid approach: API for discovery and audit, manual UI for suppression (hs_marketable_status is read-only).\n","suppress-global-unsubscribes",{"claudeCode":12},"SKILL.md frontmatter at skills/suppress-global-unsubscribes/SKILL.md",[663,664,665],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"basePath":667,"description":668,"displayName":669,"installMethods":670,"rationale":671,"selectedPaths":672,"source":322,"sourceLanguage":18,"type":243},"skills/suppress-hard-bounced","Identify and suppress hard-bounced contacts to protect email sender reputation. Hybrid approach: API for discovery and audit, manual UI for suppression (hs_marketable_status is read-only via API).\n","suppress-hard-bounced",{"claudeCode":12},"SKILL.md frontmatter at skills/suppress-hard-bounced/SKILL.md",[673,674,675],{"path":404,"priority":316},{"path":406,"priority":407},{"path":409,"priority":407},{"basePath":677,"description":678,"displayName":679,"installMethods":680,"rationale":681,"selectedPaths":682,"source":322,"sourceLanguage":18,"type":243},"skills/weekly-cleanup-routine","A lightweight 5-minute weekly health check covering bounce monitoring, new contact quality, workflow health, list growth trends, and data quality sampling. Quick early warning system, not a comprehensive audit.","weekly-cleanup-routine",{"claudeCode":12},"SKILL.md frontmatter at skills/weekly-cleanup-routine/SKILL.md",[683],{"path":404,"priority":316},{"sources":685},[686],"manual",{"closedIssues90d":229,"description":688,"forks":230,"license":235,"openIssues90d":8,"pushedAt":232,"readmeSize":227,"stars":233,"topics":689},"32 Claude Code skills for auditing, cleaning, enriching, and automating your HubSpot CRM",[],{"classifiedAt":691,"discoverAt":692,"extractAt":693,"githubAt":693,"updatedAt":691},1778698143787,1778698139523,1778698141911,[214,211,212,213,210],{"evaluatedAt":238,"extractAt":285,"updatedAt":238},[],[698,716,733,749,768,795],{"_creationTime":699,"_id":700,"community":701,"display":702,"identity":704,"providers":705,"relations":712,"tags":713,"workflow":714},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":588,"installMethods":703,"name":589,"sourceUrl":14},{"claudeCode":12},{"basePath":587,"githubOwner":241,"githubRepo":242,"locale":18,"slug":589,"type":243},{"evaluate":706,"extract":711},{"promptVersionExtension":203,"promptVersionScoring":204,"score":707,"tags":708,"targetMarket":215,"tier":216},100,[214,709,211,710,210],"sales","workflows",{"commitSha":276},{"parentExtensionId":247,"repoId":281},[214,211,210,709,710],{"evaluatedAt":715,"extractAt":285,"updatedAt":715},1778698526315,{"_creationTime":717,"_id":718,"community":719,"display":720,"identity":722,"providers":723,"relations":729,"tags":730,"workflow":731},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":447,"installMethods":721,"name":448,"sourceUrl":14},{"claudeCode":12},{"basePath":446,"githubOwner":241,"githubRepo":242,"locale":18,"slug":448,"type":243},{"evaluate":724,"extract":728},{"promptVersionExtension":203,"promptVersionScoring":204,"score":707,"tags":725,"targetMarket":215,"tier":216},[210,211,726,727,290],"maintenance","reporting",{"commitSha":276},{"parentExtensionId":247,"repoId":281},[290,211,210,726,727],{"evaluatedAt":732,"extractAt":285,"updatedAt":732},1778698268281,{"_creationTime":734,"_id":735,"community":736,"display":737,"identity":739,"providers":740,"relations":745,"tags":746,"workflow":747},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":618,"installMethods":738,"name":619,"sourceUrl":14},{"claudeCode":12},{"basePath":617,"githubOwner":241,"githubRepo":242,"locale":18,"slug":619,"type":243},{"evaluate":741,"extract":744},{"promptVersionExtension":203,"promptVersionScoring":204,"score":288,"tags":742,"targetMarket":215,"tier":216},[210,211,214,743,273],"data-management",{"commitSha":276},{"parentExtensionId":247,"repoId":281},[273,214,211,743,210],{"evaluatedAt":748,"extractAt":285,"updatedAt":748},1778698590503,{"_creationTime":750,"_id":751,"community":752,"display":753,"identity":756,"providers":757,"relations":764,"tags":765,"workflow":766},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",{"reviewCount":8},{"description":551,"installMethods":754,"name":755,"sourceUrl":14},{"claudeCode":12},"Enrich Contact Industry",{"basePath":550,"githubOwner":241,"githubRepo":242,"locale":18,"slug":552,"type":243},{"evaluate":758,"extract":763},{"promptVersionExtension":203,"promptVersionScoring":204,"score":288,"tags":759,"targetMarket":215,"tier":216},[210,211,760,214,761,762],"data-enrichment","contact-management","segmentation",{"commitSha":276,"license":235},{"parentExtensionId":247,"repoId":281},[214,761,211,760,210,762],{"evaluatedAt":767,"extractAt":285,"updatedAt":767},1778698467653,{"_creationTime":769,"_id":770,"community":771,"display":772,"identity":778,"providers":783,"relations":789,"tags":791,"workflow":792},1778688112811.7522,"k1717h1j71rgg4sw1hehtvdjm586nvrb",{"reviewCount":8},{"description":773,"installMethods":774,"name":776,"sourceUrl":777},"Audit and improve CRM data quality by identifying missing fields, inconsistent values, duplicate records, and stale data",{"claudeCode":775},"guia-matthieu/clawfu-skills","CRM Hygiene","https://github.com/guia-matthieu/clawfu-skills",{"basePath":779,"githubOwner":780,"githubRepo":781,"locale":18,"slug":782,"type":243},"skills/revops/crm-hygiene","guia-matthieu","clawfu-skills","crm-hygiene",{"evaluate":784,"extract":788},{"promptVersionExtension":203,"promptVersionScoring":204,"score":288,"tags":785,"targetMarket":215,"tier":216},[211,212,786,272,787],"revops","data-governance",{"commitSha":276,"license":235},{"repoId":790},"kd72qvzyvm658ya7pbyh5ey47h86md53",[272,211,787,212,786],{"evaluatedAt":793,"extractAt":794,"updatedAt":793},1778690432601,1778688112811,{"_creationTime":796,"_id":797,"community":798,"display":799,"identity":801,"providers":802,"relations":807,"tags":808,"workflow":809},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":678,"installMethods":800,"name":679,"sourceUrl":14},{"claudeCode":12},{"basePath":677,"githubOwner":241,"githubRepo":242,"locale":18,"slug":679,"type":243},{"evaluate":803,"extract":806},{"promptVersionExtension":203,"promptVersionScoring":204,"score":804,"tags":805,"targetMarket":215,"tier":216},98,[210,211,726,214,727],{"commitSha":276},{"parentExtensionId":247,"repoId":281},[214,211,210,726,727],{"evaluatedAt":810,"extractAt":285,"updatedAt":810},1778698703534]