[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-backfill-geo-data-en":3,"guides-for-TomGranot-backfill-geo-data":702,"similar-k1764vnwwyqsjv67cdswqferx986nbj9-en":703},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":244,"isFallback":228,"parentExtension":249,"providers":305,"relations":309,"repo":310,"tags":700,"workflow":701},1778698144006.2192,"k1764vnwwyqsjv67cdswqferx986nbj9",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Enrich missing geographic data (country, state, city) on contacts and companies using HubSpot workflows, external data providers, or IP-based geolocation.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","backfill-geo-data","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":226,"workflow":242},1778698203672.1274,"kn7c1vtht8k0v7hv9yywwq4e6586my7z","en",{"checks":20,"evaluatedAt":194,"extensionSummary":195,"features":196,"nonGoals":202,"promptVersionExtension":206,"promptVersionScoring":207,"purpose":208,"rationale":209,"score":210,"summary":211,"tags":212,"targetMarket":219,"tier":220,"useCases":221},[21,26,29,32,36,39,44,49,52,55,59,63,67,71,74,77,80,83,86,89,93,97,101,105,109,112,115,118,122,125,128,131,134,137,140,144,148,152,155,159,162,165,168,171,175,178,181,184,187,191],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of enriching missing geographic data on contacts and companies and names the target entities.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers specific methods like HubSpot workflows, API lookups, and external providers, going beyond generic LLM capabilities for data enrichment.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill describes multiple methods for enrichment, including scripted API interactions and manual steps, covering the complete lifecycle of data enrichment and verification.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses solely on enriching geographic data for contacts and companies within HubSpot, with no unrelated capabilities included.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The provided 'Displayed Description' accurately reflects the skill's purpose as detailed in the SKILL.md.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This skill does not expose explicit tools; its functionality is described within SKILL.md for execution by an agent.",{"category":45,"check":46,"severity":47,"summary":48},"Documentation","Configuration & parameter reference","info","The SKILL.md mentions prerequisites like an API token and Python installation but does not detail specific configuration parameters or their defaults for the enrichment methods.",{"category":33,"check":50,"severity":42,"summary":51},"Tool naming","This skill does not expose explicit tools with names.",{"category":33,"check":53,"severity":42,"summary":54},"Minimal I/O surface","This skill does not expose explicit tools with defined input/output schemas.",{"category":56,"check":57,"severity":24,"summary":58},"License","License usability","The license is clearly stated as MIT in both the SKILL.md frontmatter and the LICENSE file, and is a recognized SPDX identifier.",{"category":60,"check":61,"severity":24,"summary":62},"Maintenance","Commit recency","The last commit was on March 26, 2026, which is within the last 90 days.",{"category":60,"check":64,"severity":65,"summary":66},"Dependency Management","warning","The skill requires Python with 'hubspot-api-client' installed via 'uv', but there is no explicit mention of vulnerability checks or an automated update mechanism for dependencies.",{"category":68,"check":69,"severity":65,"summary":70},"Security","Secret Management","The SKILL.md requires a HubSpot API token in '.env', but does not detail measures to prevent its echo or secure handling beyond a generic mention.",{"category":68,"check":72,"severity":24,"summary":73},"Injection","The skill's instructions focus on data manipulation and API calls within a defined scope, and do not appear to load or execute untrusted third-party content as instructions.",{"category":68,"check":75,"severity":24,"summary":76},"Transitive Supply-Chain Grenades","The skill's execution relies on bundled Python scripts and HubSpot API interactions, with no runtime fetching of code or data from external URLs described.",{"category":68,"check":78,"severity":24,"summary":79},"Sandbox Isolation","The skill's described operations involve HubSpot API calls and local Python script execution, with no indications of attempts to modify files outside the project folder or specified scopes.",{"category":68,"check":81,"severity":24,"summary":82},"Sandbox escape primitives","No detached processes or retry loops around denied tool calls are evident in the skill's description or provided scripts.",{"category":68,"check":84,"severity":24,"summary":85},"Data Exfiltration","The skill's purpose is data enrichment within HubSpot; there are no imperative instructions to read and submit confidential data to a third party.",{"category":68,"check":87,"severity":24,"summary":88},"Hidden Text Tricks","The bundled content and descriptions do not contain hidden text tricks, invisible Unicode characters, or control characters that could steer the model.",{"category":90,"check":91,"severity":24,"summary":92},"Hooks","Opaque code execution","The skill relies on plain Python scripts and HubSpot API interactions, with no obfuscation like base64 payloads or runtime fetched code.",{"category":94,"check":95,"severity":24,"summary":96},"Portability","Structural Assumption","The skill assumes a HubSpot API token is available and Python with specific libraries is installed, which are declared as prerequisites.",{"category":98,"check":99,"severity":24,"summary":100},"Trust","Issues Attention","In the last 90 days, 0 issues were opened and 1 was closed, indicating good engagement and responsiveness.",{"category":102,"check":103,"severity":24,"summary":104},"Versioning","Release Management","The `version` is declared as '1.0' in the SKILL.md frontmatter.",{"category":106,"check":107,"severity":47,"summary":108},"Code Execution","Validation","The skill mentions validating against standardized geo formats but does not specify the use of a schema library for input or output validation within the provided description.",{"category":68,"check":110,"severity":24,"summary":111},"Unguarded Destructive Operations","The skill focuses on data enrichment and does not involve destructive operations like deletion or modification without clear intent and user control (via API calls and manual steps).",{"category":106,"check":113,"severity":47,"summary":114},"Error Handling","The SKILL.md outlines a rollback procedure but does not detail specific error handling for API calls or script execution, nor does it specify structured error fields.",{"category":106,"check":116,"severity":42,"summary":117},"Logging","The skill does not involve destructive actions or outbound calls that would necessitate local audit logging beyond what HubSpot's API might provide.",{"category":119,"check":120,"severity":47,"summary":121},"Compliance","GDPR","The skill operates on contact and company data which may include personal data, but it does not explicitly describe sanitization steps before sending data to HubSpot or other providers beyond the implied data quality focus.",{"category":119,"check":123,"severity":24,"summary":124},"Target market","The skill's functionality is globally applicable to HubSpot users managing contacts and companies, with no specific regional limitations identified.",{"category":94,"check":126,"severity":24,"summary":127},"Runtime stability","The skill assumes Python and the 'hubspot-api-client', which are standard dependencies, and the use of HubSpot API limits cross-platform issues.",{"category":45,"check":129,"severity":24,"summary":130},"README","The README file exists and provides a comprehensive overview of the skill set, including installation and usage instructions.",{"category":33,"check":132,"severity":42,"summary":133},"Tool surface size","This is a single skill and does not expose multiple distinct tools.",{"category":40,"check":135,"severity":42,"summary":136},"Overlapping near-synonym tools","This skill does not expose multiple tools, so there are no overlapping near-synonym tools.",{"category":45,"check":138,"severity":24,"summary":139},"Phantom features","All advertised features, such as the different enrichment methods, are described in detail within the SKILL.md and have corresponding implementation steps or references.",{"category":141,"check":142,"severity":65,"summary":143},"Install","Installation instruction","The README provides installation instructions for the plugin marketplace but does not include a direct copy-paste invocation example for this specific skill, nor does it detail HubSpot API authentication setup beyond mentioning a token in .env.",{"category":145,"check":146,"severity":47,"summary":147},"Errors","Actionable error messages","The SKILL.md mentions a rollback procedure and the need to validate against standardized geo formats but does not explicitly detail actionable error messages for user-facing failure paths.",{"category":149,"check":150,"severity":65,"summary":151},"Execution","Pinned dependencies","The skill requires 'hubspot-api-client' installed via 'uv' but does not specify pinned versions or a lockfile, potentially leading to compatibility issues.",{"category":33,"check":153,"severity":42,"summary":154},"Dry-run preview","The skill's primary function is data enrichment within HubSpot, and it does not involve state-changing operations that would typically require a dry-run preview. Any data modification would be through HubSpot's API actions.",{"category":156,"check":157,"severity":47,"summary":158},"Protocol","Idempotent retry & timeouts","While HubSpot API interactions might have inherent idempotency and timeouts, the skill description does not explicitly detail how these are managed or exposed to the user for retry guidance.",{"category":119,"check":160,"severity":42,"summary":161},"Telemetry opt-in","There is no indication that this skill emits telemetry.",{"category":40,"check":163,"severity":24,"summary":164},"Precise Purpose","The description clearly names the artifact (geographic data on contacts/companies) and the user intent (enriching missing data) with specific methods and prerequisites.",{"category":40,"check":166,"severity":24,"summary":167},"Concise Frontmatter","The SKILL.md frontmatter is concise and effectively summarizes the core capability and prerequisites.",{"category":45,"check":169,"severity":24,"summary":170},"Concise Body","The SKILL.md is reasonably concise, outlining the core process and delegating deeper technical details implicitly to API documentation and standard Python practices.",{"category":172,"check":173,"severity":24,"summary":174},"Context","Progressive Disclosure","The SKILL.md outlines the main steps and methods, with API interaction details assumed to be handled by the client library, and prerequisites listed separately.",{"category":172,"check":176,"severity":42,"summary":177},"Forked exploration","This skill performs direct data enrichment and does not involve deep exploration or code review that would necessitate a forked context.",{"category":22,"check":179,"severity":65,"summary":180},"Usage examples","The SKILL.md describes methods and provides a Python code snippet but lacks end-to-end, ready-to-use examples demonstrating input, invocation, and observable outcome for each enrichment method.",{"category":22,"check":182,"severity":47,"summary":183},"Edge cases","The SKILL.md mentions a rollback procedure and the need to validate against standardized geo formats, but doesn't explicitly detail failure modes with symptoms and recovery steps for each enrichment method.",{"category":106,"check":185,"severity":42,"summary":186},"Tool Fallback","This skill does not rely on external MCP servers or tools that would require fallbacks or version declarations.",{"category":188,"check":189,"severity":47,"summary":190},"Safety","Halt on unexpected state","While a rollback procedure is mentioned, the SKILL.md does not explicitly state that the workflow will halt and report on unexpected pre-states like a dirty working tree or drifted schema.",{"category":94,"check":192,"severity":24,"summary":193},"Cross-skill coupling","The skill is self-contained, focusing solely on geographic data enrichment within HubSpot, and does not implicitly rely on or cross-link to other skills.",1778698203287,"This skill enriches missing geographic data (country, state, city) for contacts and companies within HubSpot CRM. It offers multiple enrichment methods, including HubSpot's built-in tools, company domain lookups via API, and integration with external data providers. It also details prerequisites, a step-by-step execution plan, and rollback procedures.",[197,198,199,200,201],"Enriches missing country, state, and city data","Supports HubSpot workflows for automated enrichment","Provides API-based enrichment using company domain lookups","Integrates with third-party data providers","Includes detailed step-by-step instructions and rollback procedures",[203,204,205],"Overwriting manually entered geographic data","Performing operations outside of HubSpot CRM data enrichment","Replacing HubSpot's core CRM functionality","3.0.0","4.4.0","To automatically populate missing geographic information on contacts and companies in HubSpot, enabling better segmentation, regional reporting, and compliance.","The skill is well-documented and addresses a clear problem, but lacks concrete usage examples and detailed error handling/validation specifics, leading to a warning tier. Dependency management and secret handling also present minor warnings.",75,"A well-scoped skill for enriching geographic data in HubSpot, with clear documentation but room for improvement in examples and error handling.",[213,214,215,216,217,218],"hubspot","crm","data-enrichment","geolocation","contacts","companies","global","community",[222,223,224,225],"Use when contacts or companies lack essential geographic data for reporting or targeting.","Use to comply with regional privacy laws (e.g., GDPR) by accurately assigning location data.","Use to improve lead routing and territory assignment based on location.","Use to standardize geographic data across your HubSpot database.",{"codeQuality":227,"collectedAt":229,"documentation":230,"maintenance":233,"security":239,"testCoverage":241},{"hasLockfile":228},false,1778698185760,{"descriptionLength":231,"readmeSize":232},154,10597,{"closedIssues90d":234,"forks":235,"hasChangelog":228,"manifestVersion":236,"openIssues90d":8,"pushedAt":237,"stars":238},1,4,"1.0",1774540543000,21,{"hasNpmPackage":228,"license":240,"smitheryVerified":228},"MIT",{"hasCi":228,"hasTests":228},{"updatedAt":243},1778698203672,{"basePath":245,"githubOwner":246,"githubRepo":247,"locale":18,"slug":13,"type":248},"skills/backfill-geo-data","TomGranot","hubspot-admin-skills","skill",{"_creationTime":250,"_id":251,"community":252,"display":253,"identity":258,"parentExtension":261,"providers":290,"relations":301,"tags":302,"workflow":303},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":254,"installMethods":255,"name":257,"sourceUrl":14},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":256},"hubspot-admin","HubSpot Admin Skills",{"basePath":259,"githubOwner":246,"githubRepo":247,"locale":18,"slug":247,"type":260},"","plugin",{"_creationTime":262,"_id":263,"community":264,"display":265,"identity":268,"providers":270,"relations":284,"tags":286,"workflow":287},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":266,"installMethods":267,"name":247,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":259,"githubOwner":246,"githubRepo":247,"locale":18,"slug":247,"type":269},"marketplace",{"evaluate":271,"extract":279},{"promptVersionExtension":272,"promptVersionScoring":207,"score":273,"tags":274,"targetMarket":219,"tier":220},"3.1.0",79,[213,214,275,276,277,278],"automation","data-cleaning","auditing","administration",{"commitSha":280,"marketplace":281,"plugin":282},"HEAD",{"name":247,"pluginCount":234},{"mcpCount":8,"provider":283,"skillCount":8},"classify",{"repoId":285},"kd75kpec7arn6z2wz641vfaj8n86nab6",[278,277,275,214,276,213],{"evaluatedAt":288,"extractAt":289,"updatedAt":288},1778698158552,1778698144006,{"evaluate":291,"extract":298},{"promptVersionExtension":206,"promptVersionScoring":207,"score":292,"tags":293,"targetMarket":219,"tier":297},99,[213,214,278,294,275,295,277,296],"data-quality","cleanup","marketing-automation","verified",{"commitSha":280,"license":240,"plugin":299},{"mcpCount":8,"provider":283,"skillCount":300},32,{"parentExtensionId":263,"repoId":285},[278,277,275,295,214,294,213,296],{"evaluatedAt":304,"extractAt":289,"updatedAt":304},1778698168554,{"evaluate":306,"extract":308},{"promptVersionExtension":206,"promptVersionScoring":207,"score":210,"tags":307,"targetMarket":219,"tier":220},[213,214,215,216,217,218],{"commitSha":280},{"parentExtensionId":251,"repoId":285},{"_creationTime":311,"_id":285,"identity":312,"providers":313,"workflow":696},1778698139523.511,{"githubOwner":246,"githubRepo":247,"sourceUrl":14},{"classify":314,"discover":690,"github":693},{"commitSha":280,"extensions":315},[316,329,402,418,423,431,439,448,456,464,472,480,488,496,504,515,523,534,542,552,562,573,581,589,597,606,614,622,633,641,652,662,672,682],{"basePath":259,"description":266,"displayName":247,"installMethods":317,"rationale":318,"selectedPaths":319,"source":328,"sourceLanguage":18,"type":269},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[320,323,325],{"path":321,"priority":322},".claude-plugin/marketplace.json","mandatory",{"path":324,"priority":322},"README.md",{"path":326,"priority":327},"LICENSE","high","rule",{"basePath":259,"description":254,"displayName":256,"installMethods":330,"rationale":331,"selectedPaths":332,"source":328,"sourceLanguage":18,"type":260},{"claudeCode":256},"plugin manifest at .claude-plugin/plugin.json",[333,335,336,337,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,396,398,400],{"path":334,"priority":322},".claude-plugin/plugin.json",{"path":324,"priority":322},{"path":326,"priority":327},{"path":338,"priority":339},"skills/assign-unowned-contacts/SKILL.md","medium",{"path":341,"priority":339},"skills/backfill-geo-data/SKILL.md",{"path":343,"priority":339},"skills/bounce-monitoring-workflow/SKILL.md",{"path":345,"priority":339},"skills/build-lead-scoring/SKILL.md",{"path":347,"priority":339},"skills/build-smart-lists/SKILL.md",{"path":349,"priority":339},"skills/cleanup-dashboards/SKILL.md",{"path":351,"priority":339},"skills/cleanup-deals/SKILL.md",{"path":353,"priority":339},"skills/cleanup-forms/SKILL.md",{"path":355,"priority":339},"skills/cleanup-lead-owners/SKILL.md",{"path":357,"priority":339},"skills/cleanup-lists/SKILL.md",{"path":359,"priority":339},"skills/cleanup-properties/SKILL.md",{"path":361,"priority":339},"skills/cleanup-workflows/SKILL.md",{"path":363,"priority":339},"skills/create-icp-tiers/SKILL.md",{"path":365,"priority":339},"skills/create-segment-lists/SKILL.md",{"path":367,"priority":339},"skills/delete-no-email-contacts/SKILL.md",{"path":369,"priority":339},"skills/engagement-suppression-workflow/SKILL.md",{"path":371,"priority":339},"skills/enrich-company-name/SKILL.md",{"path":373,"priority":339},"skills/enrich-industry/SKILL.md",{"path":375,"priority":339},"skills/fix-lifecycle-stages/SKILL.md",{"path":377,"priority":339},"skills/hubspot-audit/SKILL.md",{"path":379,"priority":339},"skills/hubspot-implementation-plan/SKILL.md",{"path":381,"priority":339},"skills/lifecycle-progression-workflow/SKILL.md",{"path":383,"priority":339},"skills/merge-duplicate-companies/SKILL.md",{"path":385,"priority":339},"skills/new-contact-hygiene-workflow/SKILL.md",{"path":387,"priority":339},"skills/quarterly-database-cleanup/SKILL.md",{"path":389,"priority":339},"skills/reassign-deactivated-owners/SKILL.md",{"path":391,"priority":339},"skills/review-bounced-contacts/SKILL.md",{"path":393,"priority":339},"skills/standardize-geo-values/SKILL.md",{"path":395,"priority":339},"skills/suppress-ghost-contacts/SKILL.md",{"path":397,"priority":339},"skills/suppress-global-unsubscribes/SKILL.md",{"path":399,"priority":339},"skills/suppress-hard-bounced/SKILL.md",{"path":401,"priority":339},"skills/weekly-cleanup-routine/SKILL.md",{"basePath":403,"description":404,"displayName":405,"installMethods":406,"rationale":407,"selectedPaths":408,"source":328,"sourceLanguage":18,"type":248},"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",[409,411,414,416],{"path":410,"priority":322},"SKILL.md",{"path":412,"priority":413},"scripts/after.py","low",{"path":415,"priority":413},"scripts/before.py",{"path":417,"priority":413},"scripts/execute.py",{"basePath":245,"description":10,"displayName":13,"installMethods":419,"rationale":420,"selectedPaths":421,"source":328,"sourceLanguage":18,"type":248},{"claudeCode":12},"SKILL.md frontmatter at skills/backfill-geo-data/SKILL.md",[422],{"path":410,"priority":322},{"basePath":424,"description":425,"displayName":426,"installMethods":427,"rationale":428,"selectedPaths":429,"source":328,"sourceLanguage":18,"type":248},"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",[430],{"path":410,"priority":322},{"basePath":432,"description":433,"displayName":434,"installMethods":435,"rationale":436,"selectedPaths":437,"source":328,"sourceLanguage":18,"type":248},"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",[438],{"path":410,"priority":322},{"basePath":440,"description":441,"displayName":442,"installMethods":443,"rationale":444,"selectedPaths":445,"source":328,"sourceLanguage":18,"type":248},"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",[446,447],{"path":410,"priority":322},{"path":417,"priority":413},{"basePath":449,"description":450,"displayName":451,"installMethods":452,"rationale":453,"selectedPaths":454,"source":328,"sourceLanguage":18,"type":248},"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",[455],{"path":410,"priority":322},{"basePath":457,"description":458,"displayName":459,"installMethods":460,"rationale":461,"selectedPaths":462,"source":328,"sourceLanguage":18,"type":248},"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",[463],{"path":410,"priority":322},{"basePath":465,"description":466,"displayName":467,"installMethods":468,"rationale":469,"selectedPaths":470,"source":328,"sourceLanguage":18,"type":248},"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",[471],{"path":410,"priority":322},{"basePath":473,"description":474,"displayName":475,"installMethods":476,"rationale":477,"selectedPaths":478,"source":328,"sourceLanguage":18,"type":248},"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",[479],{"path":410,"priority":322},{"basePath":481,"description":482,"displayName":483,"installMethods":484,"rationale":485,"selectedPaths":486,"source":328,"sourceLanguage":18,"type":248},"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",[487],{"path":410,"priority":322},{"basePath":489,"description":490,"displayName":491,"installMethods":492,"rationale":493,"selectedPaths":494,"source":328,"sourceLanguage":18,"type":248},"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",[495],{"path":410,"priority":322},{"basePath":497,"description":498,"displayName":499,"installMethods":500,"rationale":501,"selectedPaths":502,"source":328,"sourceLanguage":18,"type":248},"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",[503],{"path":410,"priority":322},{"basePath":505,"description":506,"displayName":507,"installMethods":508,"rationale":509,"selectedPaths":510,"source":328,"sourceLanguage":18,"type":248},"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",[511,512,513,514],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"path":417,"priority":413},{"basePath":516,"description":517,"displayName":518,"installMethods":519,"rationale":520,"selectedPaths":521,"source":328,"sourceLanguage":18,"type":248},"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",[522],{"path":410,"priority":322},{"basePath":524,"description":525,"displayName":526,"installMethods":527,"rationale":528,"selectedPaths":529,"source":328,"sourceLanguage":18,"type":248},"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",[530,531,532,533],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"path":417,"priority":413},{"basePath":535,"description":536,"displayName":537,"installMethods":538,"rationale":539,"selectedPaths":540,"source":328,"sourceLanguage":18,"type":248},"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",[541],{"path":410,"priority":322},{"basePath":543,"description":544,"displayName":545,"installMethods":546,"rationale":547,"selectedPaths":548,"source":328,"sourceLanguage":18,"type":248},"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",[549,550,551],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"basePath":553,"description":554,"displayName":555,"installMethods":556,"rationale":557,"selectedPaths":558,"source":328,"sourceLanguage":18,"type":248},"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",[559,560,561],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"basePath":563,"description":564,"displayName":565,"installMethods":566,"rationale":567,"selectedPaths":568,"source":328,"sourceLanguage":18,"type":248},"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",[569,570,571,572],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"path":417,"priority":413},{"basePath":574,"description":575,"displayName":576,"installMethods":577,"rationale":578,"selectedPaths":579,"source":328,"sourceLanguage":18,"type":248},"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",[580],{"path":410,"priority":322},{"basePath":582,"description":583,"displayName":584,"installMethods":585,"rationale":586,"selectedPaths":587,"source":328,"sourceLanguage":18,"type":248},"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",[588],{"path":410,"priority":322},{"basePath":590,"description":591,"displayName":592,"installMethods":593,"rationale":594,"selectedPaths":595,"source":328,"sourceLanguage":18,"type":248},"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",[596],{"path":410,"priority":322},{"basePath":598,"description":599,"displayName":600,"installMethods":601,"rationale":602,"selectedPaths":603,"source":328,"sourceLanguage":18,"type":248},"skills/merge-duplicate-companies","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","merge-duplicate-companies",{"claudeCode":12},"SKILL.md frontmatter at skills/merge-duplicate-companies/SKILL.md",[604,605],{"path":410,"priority":322},{"path":415,"priority":413},{"basePath":607,"description":608,"displayName":609,"installMethods":610,"rationale":611,"selectedPaths":612,"source":328,"sourceLanguage":18,"type":248},"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",[613],{"path":410,"priority":322},{"basePath":615,"description":616,"displayName":617,"installMethods":618,"rationale":619,"selectedPaths":620,"source":328,"sourceLanguage":18,"type":248},"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",[621],{"path":410,"priority":322},{"basePath":623,"description":624,"displayName":625,"installMethods":626,"rationale":627,"selectedPaths":628,"source":328,"sourceLanguage":18,"type":248},"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",[629,630,631,632],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"path":417,"priority":413},{"basePath":634,"description":635,"displayName":636,"installMethods":637,"rationale":638,"selectedPaths":639,"source":328,"sourceLanguage":18,"type":248},"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",[640],{"path":410,"priority":322},{"basePath":642,"description":643,"displayName":644,"installMethods":645,"rationale":646,"selectedPaths":647,"source":328,"sourceLanguage":18,"type":248},"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",[648,649,650,651],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"path":417,"priority":413},{"basePath":653,"description":654,"displayName":655,"installMethods":656,"rationale":657,"selectedPaths":658,"source":328,"sourceLanguage":18,"type":248},"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",[659,660,661],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"basePath":663,"description":664,"displayName":665,"installMethods":666,"rationale":667,"selectedPaths":668,"source":328,"sourceLanguage":18,"type":248},"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",[669,670,671],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"basePath":673,"description":674,"displayName":675,"installMethods":676,"rationale":677,"selectedPaths":678,"source":328,"sourceLanguage":18,"type":248},"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",[679,680,681],{"path":410,"priority":322},{"path":412,"priority":413},{"path":415,"priority":413},{"basePath":683,"description":684,"displayName":685,"installMethods":686,"rationale":687,"selectedPaths":688,"source":328,"sourceLanguage":18,"type":248},"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",[689],{"path":410,"priority":322},{"sources":691},[692],"manual",{"closedIssues90d":234,"description":694,"forks":235,"license":240,"openIssues90d":8,"pushedAt":237,"readmeSize":232,"stars":238,"topics":695},"32 Claude Code skills for auditing, cleaning, enriching, and automating your HubSpot CRM",[],{"classifiedAt":697,"discoverAt":698,"extractAt":699,"githubAt":699,"updatedAt":697},1778698143787,1778698139523,1778698141911,[218,217,214,215,216,213],{"evaluatedAt":243,"extractAt":289,"updatedAt":243},[],[704,722,740,757,773,789],{"_creationTime":705,"_id":706,"community":707,"display":708,"identity":711,"providers":712,"relations":718,"tags":719,"workflow":720},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",{"reviewCount":8},{"description":554,"installMethods":709,"name":710,"sourceUrl":14},{"claudeCode":12},"Enrich Contact Industry",{"basePath":553,"githubOwner":246,"githubRepo":247,"locale":18,"slug":555,"type":248},{"evaluate":713,"extract":717},{"promptVersionExtension":206,"promptVersionScoring":207,"score":292,"tags":714,"targetMarket":219,"tier":297},[213,214,215,275,715,716],"contact-management","segmentation",{"commitSha":280,"license":240},{"parentExtensionId":251,"repoId":285},[275,715,214,215,213,716],{"evaluatedAt":721,"extractAt":289,"updatedAt":721},1778698467653,{"_creationTime":723,"_id":724,"community":725,"display":726,"identity":728,"providers":729,"relations":736,"tags":737,"workflow":738},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":591,"installMethods":727,"name":592,"sourceUrl":14},{"claudeCode":12},{"basePath":590,"githubOwner":246,"githubRepo":247,"locale":18,"slug":592,"type":248},{"evaluate":730,"extract":735},{"promptVersionExtension":206,"promptVersionScoring":207,"score":731,"tags":732,"targetMarket":219,"tier":297},100,[275,733,214,734,213],"sales","workflows",{"commitSha":280},{"parentExtensionId":251,"repoId":285},[275,214,213,733,734],{"evaluatedAt":739,"extractAt":289,"updatedAt":739},1778698526315,{"_creationTime":741,"_id":742,"community":743,"display":744,"identity":746,"providers":747,"relations":753,"tags":754,"workflow":755},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":450,"installMethods":745,"name":451,"sourceUrl":14},{"claudeCode":12},{"basePath":449,"githubOwner":246,"githubRepo":247,"locale":18,"slug":451,"type":248},{"evaluate":748,"extract":752},{"promptVersionExtension":206,"promptVersionScoring":207,"score":731,"tags":749,"targetMarket":219,"tier":297},[213,214,750,751,295],"maintenance","reporting",{"commitSha":280},{"parentExtensionId":251,"repoId":285},[295,214,213,750,751],{"evaluatedAt":756,"extractAt":289,"updatedAt":756},1778698268281,{"_creationTime":758,"_id":759,"community":760,"display":761,"identity":763,"providers":764,"relations":769,"tags":770,"workflow":771},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":624,"installMethods":762,"name":625,"sourceUrl":14},{"claudeCode":12},{"basePath":623,"githubOwner":246,"githubRepo":247,"locale":18,"slug":625,"type":248},{"evaluate":765,"extract":768},{"promptVersionExtension":206,"promptVersionScoring":207,"score":292,"tags":766,"targetMarket":219,"tier":297},[213,214,275,767,278],"data-management",{"commitSha":280},{"parentExtensionId":251,"repoId":285},[278,275,214,767,213],{"evaluatedAt":772,"extractAt":289,"updatedAt":772},1778698590503,{"_creationTime":774,"_id":775,"community":776,"display":777,"identity":779,"providers":780,"relations":785,"tags":786,"workflow":787},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":684,"installMethods":778,"name":685,"sourceUrl":14},{"claudeCode":12},{"basePath":683,"githubOwner":246,"githubRepo":247,"locale":18,"slug":685,"type":248},{"evaluate":781,"extract":784},{"promptVersionExtension":206,"promptVersionScoring":207,"score":782,"tags":783,"targetMarket":219,"tier":297},98,[213,214,750,275,751],{"commitSha":280},{"parentExtensionId":251,"repoId":285},[275,214,213,750,751],{"evaluatedAt":788,"extractAt":289,"updatedAt":788},1778698703534,{"_creationTime":790,"_id":791,"community":792,"display":793,"identity":795,"providers":796,"relations":801,"tags":802,"workflow":803},1778698144006.2253,"k175q9vhdtjhmdnj5sfg0js0y186m41d",{"reviewCount":8},{"description":635,"installMethods":794,"name":636,"sourceUrl":14},{"claudeCode":12},{"basePath":634,"githubOwner":246,"githubRepo":247,"locale":18,"slug":636,"type":248},{"evaluate":797,"extract":800},{"promptVersionExtension":206,"promptVersionScoring":207,"score":782,"tags":798,"targetMarket":219,"tier":297},[213,214,799,715,275],"data-hygiene",{"commitSha":280},{"parentExtensionId":251,"repoId":285},[275,715,214,799,213],{"evaluatedAt":804,"extractAt":289,"updatedAt":804},1778698625452]