[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-cleanup-deals-de":3,"guides-for-TomGranot-cleanup-deals":700,"similar-k17dw0rfjasnwkg01804yfh2yh86mbkf-de":701},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":243,"isFallback":248,"parentExtension":249,"providers":303,"relations":307,"repo":308,"tags":698,"workflow":699},1778698144006.2205,"k17dw0rfjasnwkg01804yfh2yh86mbkf",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Standardize deal pipelines, remove test deals, and address deals with missing amounts or close dates. Coordinates with Salesforce sync if applicable.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","cleanup-deals","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":225,"workflow":241},1778698280743.9058,"kn7dt1132dt80q1f62njpj4kh186n96s","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":218,"tier":219,"useCases":220},[21,26,29,32,36,39,44,49,52,55,59,63,66,70,73,76,79,82,85,88,92,96,100,104,108,111,114,117,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 names the problem of standardizing deal pipelines and addressing missing deal data, providing a concrete user problem.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers specific logic for cleaning deal data beyond basic API calls, addressing issues like test deals and missing properties, which provides value over a simple prompt.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill provides a complete lifecycle for cleaning deals, including audit, execution scripts, verification, and rollback instructions, making it ready for production use.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses solely on cleaning and standardizing deal data within HubSpot, adhering to a single responsibility.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The provided description accurately reflects the skill's functionality, which is to standardize deal pipelines and clean up missing data.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This skill does not expose tools directly; it operates as a set of instructions for an AI agent to execute.",{"category":45,"check":46,"severity":47,"summary":48},"Documentation","Configuration & parameter reference","warning","The prerequisites mention an API token in `.env` and Python dependencies, but these are not explicitly documented with installation or configuration details.",{"category":33,"check":50,"severity":42,"summary":51},"Tool naming","This is a skill, not a toolset with distinct named commands.",{"category":33,"check":53,"severity":42,"summary":54},"Minimal I/O surface","This skill operates through natural language instructions and script execution, not via explicitly defined tool input/output schemas.",{"category":56,"check":57,"severity":24,"summary":58},"License","License usability","The license is MIT and clearly stated in the frontmatter and LICENSE file.",{"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":47,"summary":65},"Dependency Management","The skill requires `hubspot-api-client` but does not specify version pinning or a lockfile mechanism.",{"category":67,"check":68,"severity":47,"summary":69},"Security","Secret Management","The skill requires a HubSpot API token in `.env` but does not explicitly detail how this secret should be handled or secured.",{"category":67,"check":71,"severity":24,"summary":72},"Injection","The skill's process involves executing Python scripts, but they appear to be self-contained and do not load external, untrusted data as instructions.",{"category":67,"check":74,"severity":24,"summary":75},"Transitive Supply-Chain Grenades","The skill's Python scripts are bundled and do not fetch external code or data at runtime.",{"category":67,"check":77,"severity":24,"summary":78},"Sandbox Isolation","The skill's scripts operate on data within HubSpot and local files (for audits/exports) without attempting to write outside of intended scopes.",{"category":67,"check":80,"severity":24,"summary":81},"Sandbox escape primitives","No detached processes or retry loops around denied calls were detected in the provided scripts.",{"category":67,"check":83,"severity":24,"summary":84},"Data Exfiltration","The skill's purpose is to clean CRM data, not to exfiltrate confidential information to third parties.",{"category":67,"check":86,"severity":24,"summary":87},"Hidden Text Tricks","The SKILL.md and Python scripts are free of hidden text tricks, invisible characters, or other obfuscation methods.",{"category":89,"check":90,"severity":24,"summary":91},"Hooks","Opaque code execution","The Python scripts are readable source code and not obfuscated or dynamically executed.",{"category":93,"check":94,"severity":24,"summary":95},"Portability","Structural Assumption","The script assumes a standard Python environment and HubSpot API interaction, without making unusual structural assumptions about the user's project.",{"category":97,"check":98,"severity":24,"summary":99},"Trust","Issues Attention","In the last 90 days, 0 issues were opened and 1 was closed, indicating good attention from maintainers.",{"category":101,"check":102,"severity":24,"summary":103},"Versioning","Release Management","A meaningful version ('1.0') is declared in the SKILL.md frontmatter.",{"category":105,"check":106,"severity":47,"summary":107},"Code Execution","Validation","The Python scripts interact with the HubSpot API, but there's no explicit mention or evidence of input/output validation or sanitization using a schema library.",{"category":67,"check":109,"severity":47,"summary":110},"Unguarded Destructive Operations","The skill can delete test deals and change deal statuses. While it prompts for action, explicit confirmation gates for each specific destructive operation are not clearly detailed.",{"category":105,"check":112,"severity":47,"summary":113},"Error Handling","The provided Python snippets do not show explicit try-catch blocks or structured error reporting for API calls or script execution, which could lead to opaque errors.",{"category":105,"check":115,"severity":42,"summary":116},"Logging","The skill is primarily analytical and does not involve destructive operations that would necessitate a separate audit log.",{"category":118,"check":119,"severity":120,"summary":121},"Compliance","GDPR","info","The skill operates on CRM deal data, which may contain personal information. While not directly submitting to a third party, the data is processed by the LLM, and additional sanitization is not explicitly detailed.",{"category":118,"check":123,"severity":24,"summary":124},"Target market","The skill's functionality is focused on HubSpot CRM data and does not appear to have any geographical or legal jurisdictional limitations.",{"category":93,"check":126,"severity":47,"summary":127},"Runtime stability","The skill explicitly requires Python 3.10+ and `hubspot-api-client` installed via `uv`, which could lead to runtime issues if these are not met and there's no graceful fallback.",{"category":45,"check":129,"severity":24,"summary":130},"README","The README file exists and clearly states the purpose of the HubSpot Admin Skills, including the cleanup-deals skill.",{"category":33,"check":132,"severity":42,"summary":133},"Tool surface size","This is a single skill, not a collection of tools.",{"category":40,"check":135,"severity":42,"summary":136},"Overlapping near-synonym tools","This skill operates as a single unit and does not expose multiple tools with overlapping functionality.",{"category":45,"check":138,"severity":24,"summary":139},"Phantom features","All advertised features within the README and SKILL.md appear to have corresponding implementation details or scripts.",{"category":141,"check":142,"severity":24,"summary":143},"Install","Installation instruction","The README provides clear installation instructions for the marketplace and direct cloning, along with examples of how to invoke the audit and planning skills.",{"category":145,"check":146,"severity":47,"summary":147},"Errors","Actionable error messages","While the skill provides a rollback procedure, the error messages emitted during script execution are not detailed, and may not include specific remediation steps or root cause analysis.",{"category":149,"check":150,"severity":47,"summary":151},"Execution","Pinned dependencies","The requirement for `hubspot-api-client` is stated, but no specific version pinning or lockfile is provided, leaving dependency versions unconstrained.",{"category":33,"check":153,"severity":47,"summary":154},"Dry-run preview","While the skill includes a 'Before' audit stage, a specific `--dry-run` flag or equivalent for previewing destructive changes like deletion or status updates is not explicitly mentioned.",{"category":156,"check":157,"severity":42,"summary":158},"Protocol","Idempotent retry & timeouts","The skill's operations are primarily within HubSpot's API and local script execution; it doesn't appear to involve complex remote calls that would require explicit idempotency or timeout handling beyond standard API client behavior.",{"category":118,"check":160,"severity":24,"summary":161},"Telemetry opt-in","There is no indication of telemetry being collected or emitted by this skill.",{"category":40,"check":163,"severity":24,"summary":164},"Precise Purpose","The skill clearly states its purpose is to standardize deal pipelines and clean missing data, with explicit steps and considerations for Salesforce sync.",{"category":40,"check":166,"severity":24,"summary":167},"Concise Frontmatter","The frontmatter in SKILL.md is concise and effectively summarizes the skill's purpose and scope.",{"category":45,"check":169,"severity":24,"summary":170},"Concise Body","The SKILL.md is well-structured with clear sections and does not excessively bloat the context window.",{"category":172,"check":173,"severity":24,"summary":174},"Context","Progressive Disclosure","The SKILL.md outlines the process clearly and provides Python code snippets directly, without needing separate reference files for this scope.",{"category":172,"check":176,"severity":42,"summary":177},"Forked exploration","This skill is action-oriented and does not involve deep exploration or code review that would require `context: fork`.",{"category":22,"check":179,"severity":24,"summary":180},"Usage examples","The SKILL.md provides Python code snippets for the 'Before' audit stage, which serve as practical examples of how to interact with the API.",{"category":22,"check":182,"severity":24,"summary":183},"Edge cases","The skill documents Salesforce sync considerations, potential data loss during modification, and provides rollback instructions, addressing key failure modes.",{"category":105,"check":185,"severity":42,"summary":186},"Tool Fallback","This skill does not appear to rely on external MCP tools with fallbacks; it uses Python scripts and the HubSpot API directly.",{"category":188,"check":189,"severity":47,"summary":190},"Safety","Halt on unexpected state","The SKILL.md does not explicitly state that the workflow will halt on unexpected pre-state conditions (e.g., API errors during audit) with clear reporting.",{"category":93,"check":192,"severity":24,"summary":193},"Cross-skill coupling","The skill is self-contained and does not implicitly rely on other skills being loaded in the same session.",1778698280633,"This skill standardizes deal pipelines, removes test deals, and addresses deals with missing amounts or close dates within HubSpot CRM. It provides step-by-step instructions and Python scripts for auditing, cleaning, and verifying deal data, with considerations for Salesforce sync.",[197,198,199,200,201],"Standardizes deal pipelines","Removes test/demo deals","Addresses missing deal amounts","Addresses missing close dates","Provides audit and verification steps",[203,204,205],"Directly modifying deals synced from Salesforce without coordination.","Bulk importing or exporting data beyond audit purposes.","Managing or configuring Salesforce sync itself.","3.0.0","4.4.0","To ensure accurate sales pipeline reporting and forecasting by maintaining clean, standardized deal data within HubSpot CRM.","The skill is production-ready with clear documentation and practical utility, but warnings related to dependency management, secret handling, and error reporting prevent a higher score.",75,"A production-ready skill for cleaning and standardizing HubSpot CRM deal data, with clear instructions and Python scripts.",[213,214,215,216,217],"hubspot","crm","data-cleaning","automation","sales-pipeline","global","community",[221,222,223,224],"Use when pipeline reports are distorted by inaccurate deal data.","Use to prepare CRM data for accurate forecasting.","Use to ensure consistency across all deal records.","Use when integrating with Salesforce sync and needing to maintain data integrity.",{"codeQuality":226,"collectedAt":228,"documentation":229,"maintenance":232,"security":238,"testCoverage":240},{"hasLockfile":227},false,1778698268679,{"descriptionLength":230,"readmeSize":231},149,10597,{"closedIssues90d":233,"forks":234,"hasChangelog":227,"manifestVersion":235,"openIssues90d":8,"pushedAt":236,"stars":237},1,4,"1.0",1774540543000,21,{"hasNpmPackage":227,"license":239,"smitheryVerified":227},"MIT",{"hasCi":227,"hasTests":227},{"updatedAt":242},1778698280743,{"basePath":244,"githubOwner":245,"githubRepo":246,"locale":18,"slug":13,"type":247},"skills/cleanup-deals","TomGranot","hubspot-admin-skills","skill",true,{"_creationTime":250,"_id":251,"community":252,"display":253,"identity":258,"parentExtension":261,"providers":288,"relations":299,"tags":300,"workflow":301},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":245,"githubRepo":246,"locale":18,"slug":246,"type":260},"","plugin",{"_creationTime":262,"_id":263,"community":264,"display":265,"identity":268,"providers":270,"relations":282,"tags":284,"workflow":285},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":266,"installMethods":267,"name":246,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":259,"githubOwner":245,"githubRepo":246,"locale":18,"slug":246,"type":269},"marketplace",{"evaluate":271,"extract":277},{"promptVersionExtension":272,"promptVersionScoring":207,"score":273,"tags":274,"targetMarket":218,"tier":219},"3.1.0",79,[213,214,216,215,275,276],"auditing","administration",{"commitSha":278,"marketplace":279,"plugin":280},"HEAD",{"name":246,"pluginCount":233},{"mcpCount":8,"provider":281,"skillCount":8},"classify",{"repoId":283},"kd75kpec7arn6z2wz641vfaj8n86nab6",[276,275,216,214,215,213],{"evaluatedAt":286,"extractAt":287,"updatedAt":286},1778698158552,1778698144006,{"evaluate":289,"extract":296},{"promptVersionExtension":206,"promptVersionScoring":207,"score":290,"tags":291,"targetMarket":218,"tier":295},99,[213,214,276,292,216,293,275,294],"data-quality","cleanup","marketing-automation","verified",{"commitSha":278,"license":239,"plugin":297},{"mcpCount":8,"provider":281,"skillCount":298},32,{"parentExtensionId":263,"repoId":283},[276,275,216,293,214,292,213,294],{"evaluatedAt":302,"extractAt":287,"updatedAt":302},1778698168554,{"evaluate":304,"extract":306},{"promptVersionExtension":206,"promptVersionScoring":207,"score":210,"tags":305,"targetMarket":218,"tier":219},[213,214,215,216,217],{"commitSha":278},{"parentExtensionId":251,"repoId":283},{"_creationTime":309,"_id":283,"identity":310,"providers":311,"workflow":694},1778698139523.511,{"githubOwner":245,"githubRepo":246,"sourceUrl":14},{"classify":312,"discover":688,"github":691},{"commitSha":278,"extensions":313},[314,327,400,416,424,432,440,449,457,462,470,478,486,494,502,513,521,532,540,550,560,571,579,587,595,604,612,620,631,639,650,660,670,680],{"basePath":259,"description":266,"displayName":246,"installMethods":315,"rationale":316,"selectedPaths":317,"source":326,"sourceLanguage":18,"type":269},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[318,321,323],{"path":319,"priority":320},".claude-plugin/marketplace.json","mandatory",{"path":322,"priority":320},"README.md",{"path":324,"priority":325},"LICENSE","high","rule",{"basePath":259,"description":254,"displayName":256,"installMethods":328,"rationale":329,"selectedPaths":330,"source":326,"sourceLanguage":18,"type":260},{"claudeCode":256},"plugin manifest at .claude-plugin/plugin.json",[331,333,334,335,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,396,398],{"path":332,"priority":320},".claude-plugin/plugin.json",{"path":322,"priority":320},{"path":324,"priority":325},{"path":336,"priority":337},"skills/assign-unowned-contacts/SKILL.md","medium",{"path":339,"priority":337},"skills/backfill-geo-data/SKILL.md",{"path":341,"priority":337},"skills/bounce-monitoring-workflow/SKILL.md",{"path":343,"priority":337},"skills/build-lead-scoring/SKILL.md",{"path":345,"priority":337},"skills/build-smart-lists/SKILL.md",{"path":347,"priority":337},"skills/cleanup-dashboards/SKILL.md",{"path":349,"priority":337},"skills/cleanup-deals/SKILL.md",{"path":351,"priority":337},"skills/cleanup-forms/SKILL.md",{"path":353,"priority":337},"skills/cleanup-lead-owners/SKILL.md",{"path":355,"priority":337},"skills/cleanup-lists/SKILL.md",{"path":357,"priority":337},"skills/cleanup-properties/SKILL.md",{"path":359,"priority":337},"skills/cleanup-workflows/SKILL.md",{"path":361,"priority":337},"skills/create-icp-tiers/SKILL.md",{"path":363,"priority":337},"skills/create-segment-lists/SKILL.md",{"path":365,"priority":337},"skills/delete-no-email-contacts/SKILL.md",{"path":367,"priority":337},"skills/engagement-suppression-workflow/SKILL.md",{"path":369,"priority":337},"skills/enrich-company-name/SKILL.md",{"path":371,"priority":337},"skills/enrich-industry/SKILL.md",{"path":373,"priority":337},"skills/fix-lifecycle-stages/SKILL.md",{"path":375,"priority":337},"skills/hubspot-audit/SKILL.md",{"path":377,"priority":337},"skills/hubspot-implementation-plan/SKILL.md",{"path":379,"priority":337},"skills/lifecycle-progression-workflow/SKILL.md",{"path":381,"priority":337},"skills/merge-duplicate-companies/SKILL.md",{"path":383,"priority":337},"skills/new-contact-hygiene-workflow/SKILL.md",{"path":385,"priority":337},"skills/quarterly-database-cleanup/SKILL.md",{"path":387,"priority":337},"skills/reassign-deactivated-owners/SKILL.md",{"path":389,"priority":337},"skills/review-bounced-contacts/SKILL.md",{"path":391,"priority":337},"skills/standardize-geo-values/SKILL.md",{"path":393,"priority":337},"skills/suppress-ghost-contacts/SKILL.md",{"path":395,"priority":337},"skills/suppress-global-unsubscribes/SKILL.md",{"path":397,"priority":337},"skills/suppress-hard-bounced/SKILL.md",{"path":399,"priority":337},"skills/weekly-cleanup-routine/SKILL.md",{"basePath":401,"description":402,"displayName":403,"installMethods":404,"rationale":405,"selectedPaths":406,"source":326,"sourceLanguage":18,"type":247},"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",[407,409,412,414],{"path":408,"priority":320},"SKILL.md",{"path":410,"priority":411},"scripts/after.py","low",{"path":413,"priority":411},"scripts/before.py",{"path":415,"priority":411},"scripts/execute.py",{"basePath":417,"description":418,"displayName":419,"installMethods":420,"rationale":421,"selectedPaths":422,"source":326,"sourceLanguage":18,"type":247},"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",[423],{"path":408,"priority":320},{"basePath":425,"description":426,"displayName":427,"installMethods":428,"rationale":429,"selectedPaths":430,"source":326,"sourceLanguage":18,"type":247},"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",[431],{"path":408,"priority":320},{"basePath":433,"description":434,"displayName":435,"installMethods":436,"rationale":437,"selectedPaths":438,"source":326,"sourceLanguage":18,"type":247},"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",[439],{"path":408,"priority":320},{"basePath":441,"description":442,"displayName":443,"installMethods":444,"rationale":445,"selectedPaths":446,"source":326,"sourceLanguage":18,"type":247},"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",[447,448],{"path":408,"priority":320},{"path":415,"priority":411},{"basePath":450,"description":451,"displayName":452,"installMethods":453,"rationale":454,"selectedPaths":455,"source":326,"sourceLanguage":18,"type":247},"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",[456],{"path":408,"priority":320},{"basePath":244,"description":10,"displayName":13,"installMethods":458,"rationale":459,"selectedPaths":460,"source":326,"sourceLanguage":18,"type":247},{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-deals/SKILL.md",[461],{"path":408,"priority":320},{"basePath":463,"description":464,"displayName":465,"installMethods":466,"rationale":467,"selectedPaths":468,"source":326,"sourceLanguage":18,"type":247},"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",[469],{"path":408,"priority":320},{"basePath":471,"description":472,"displayName":473,"installMethods":474,"rationale":475,"selectedPaths":476,"source":326,"sourceLanguage":18,"type":247},"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",[477],{"path":408,"priority":320},{"basePath":479,"description":480,"displayName":481,"installMethods":482,"rationale":483,"selectedPaths":484,"source":326,"sourceLanguage":18,"type":247},"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",[485],{"path":408,"priority":320},{"basePath":487,"description":488,"displayName":489,"installMethods":490,"rationale":491,"selectedPaths":492,"source":326,"sourceLanguage":18,"type":247},"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",[493],{"path":408,"priority":320},{"basePath":495,"description":496,"displayName":497,"installMethods":498,"rationale":499,"selectedPaths":500,"source":326,"sourceLanguage":18,"type":247},"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",[501],{"path":408,"priority":320},{"basePath":503,"description":504,"displayName":505,"installMethods":506,"rationale":507,"selectedPaths":508,"source":326,"sourceLanguage":18,"type":247},"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",[509,510,511,512],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":514,"description":515,"displayName":516,"installMethods":517,"rationale":518,"selectedPaths":519,"source":326,"sourceLanguage":18,"type":247},"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",[520],{"path":408,"priority":320},{"basePath":522,"description":523,"displayName":524,"installMethods":525,"rationale":526,"selectedPaths":527,"source":326,"sourceLanguage":18,"type":247},"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",[528,529,530,531],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":533,"description":534,"displayName":535,"installMethods":536,"rationale":537,"selectedPaths":538,"source":326,"sourceLanguage":18,"type":247},"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",[539],{"path":408,"priority":320},{"basePath":541,"description":542,"displayName":543,"installMethods":544,"rationale":545,"selectedPaths":546,"source":326,"sourceLanguage":18,"type":247},"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",[547,548,549],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":551,"description":552,"displayName":553,"installMethods":554,"rationale":555,"selectedPaths":556,"source":326,"sourceLanguage":18,"type":247},"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",[557,558,559],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":561,"description":562,"displayName":563,"installMethods":564,"rationale":565,"selectedPaths":566,"source":326,"sourceLanguage":18,"type":247},"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",[567,568,569,570],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":572,"description":573,"displayName":574,"installMethods":575,"rationale":576,"selectedPaths":577,"source":326,"sourceLanguage":18,"type":247},"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",[578],{"path":408,"priority":320},{"basePath":580,"description":581,"displayName":582,"installMethods":583,"rationale":584,"selectedPaths":585,"source":326,"sourceLanguage":18,"type":247},"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",[586],{"path":408,"priority":320},{"basePath":588,"description":589,"displayName":590,"installMethods":591,"rationale":592,"selectedPaths":593,"source":326,"sourceLanguage":18,"type":247},"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",[594],{"path":408,"priority":320},{"basePath":596,"description":597,"displayName":598,"installMethods":599,"rationale":600,"selectedPaths":601,"source":326,"sourceLanguage":18,"type":247},"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",[602,603],{"path":408,"priority":320},{"path":413,"priority":411},{"basePath":605,"description":606,"displayName":607,"installMethods":608,"rationale":609,"selectedPaths":610,"source":326,"sourceLanguage":18,"type":247},"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",[611],{"path":408,"priority":320},{"basePath":613,"description":614,"displayName":615,"installMethods":616,"rationale":617,"selectedPaths":618,"source":326,"sourceLanguage":18,"type":247},"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",[619],{"path":408,"priority":320},{"basePath":621,"description":622,"displayName":623,"installMethods":624,"rationale":625,"selectedPaths":626,"source":326,"sourceLanguage":18,"type":247},"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",[627,628,629,630],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":632,"description":633,"displayName":634,"installMethods":635,"rationale":636,"selectedPaths":637,"source":326,"sourceLanguage":18,"type":247},"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",[638],{"path":408,"priority":320},{"basePath":640,"description":641,"displayName":642,"installMethods":643,"rationale":644,"selectedPaths":645,"source":326,"sourceLanguage":18,"type":247},"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",[646,647,648,649],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":651,"description":652,"displayName":653,"installMethods":654,"rationale":655,"selectedPaths":656,"source":326,"sourceLanguage":18,"type":247},"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",[657,658,659],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":661,"description":662,"displayName":663,"installMethods":664,"rationale":665,"selectedPaths":666,"source":326,"sourceLanguage":18,"type":247},"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",[667,668,669],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":671,"description":672,"displayName":673,"installMethods":674,"rationale":675,"selectedPaths":676,"source":326,"sourceLanguage":18,"type":247},"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",[677,678,679],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":681,"description":682,"displayName":683,"installMethods":684,"rationale":685,"selectedPaths":686,"source":326,"sourceLanguage":18,"type":247},"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",[687],{"path":408,"priority":320},{"sources":689},[690],"manual",{"closedIssues90d":233,"description":692,"forks":234,"license":239,"openIssues90d":8,"pushedAt":236,"readmeSize":231,"stars":237,"topics":693},"32 Claude Code skills for auditing, cleaning, enriching, and automating your HubSpot CRM",[],{"classifiedAt":695,"discoverAt":696,"extractAt":697,"githubAt":697,"updatedAt":695},1778698143787,1778698139523,1778698141911,[216,214,215,213,217],{"evaluatedAt":242,"extractAt":287,"updatedAt":242},[],[702,720,737,753,772,788],{"_creationTime":703,"_id":704,"community":705,"display":706,"identity":708,"providers":709,"relations":716,"tags":717,"workflow":718},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":589,"installMethods":707,"name":590,"sourceUrl":14},{"claudeCode":12},{"basePath":588,"githubOwner":245,"githubRepo":246,"locale":18,"slug":590,"type":247},{"evaluate":710,"extract":715},{"promptVersionExtension":206,"promptVersionScoring":207,"score":711,"tags":712,"targetMarket":218,"tier":295},100,[216,713,214,714,213],"sales","workflows",{"commitSha":278},{"parentExtensionId":251,"repoId":283},[216,214,213,713,714],{"evaluatedAt":719,"extractAt":287,"updatedAt":719},1778698526315,{"_creationTime":721,"_id":722,"community":723,"display":724,"identity":726,"providers":727,"relations":733,"tags":734,"workflow":735},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":451,"installMethods":725,"name":452,"sourceUrl":14},{"claudeCode":12},{"basePath":450,"githubOwner":245,"githubRepo":246,"locale":18,"slug":452,"type":247},{"evaluate":728,"extract":732},{"promptVersionExtension":206,"promptVersionScoring":207,"score":711,"tags":729,"targetMarket":218,"tier":295},[213,214,730,731,293],"maintenance","reporting",{"commitSha":278},{"parentExtensionId":251,"repoId":283},[293,214,213,730,731],{"evaluatedAt":736,"extractAt":287,"updatedAt":736},1778698268281,{"_creationTime":738,"_id":739,"community":740,"display":741,"identity":743,"providers":744,"relations":749,"tags":750,"workflow":751},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":622,"installMethods":742,"name":623,"sourceUrl":14},{"claudeCode":12},{"basePath":621,"githubOwner":245,"githubRepo":246,"locale":18,"slug":623,"type":247},{"evaluate":745,"extract":748},{"promptVersionExtension":206,"promptVersionScoring":207,"score":290,"tags":746,"targetMarket":218,"tier":295},[213,214,216,747,276],"data-management",{"commitSha":278},{"parentExtensionId":251,"repoId":283},[276,216,214,747,213],{"evaluatedAt":752,"extractAt":287,"updatedAt":752},1778698590503,{"_creationTime":754,"_id":755,"community":756,"display":757,"identity":760,"providers":761,"relations":768,"tags":769,"workflow":770},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",{"reviewCount":8},{"description":552,"installMethods":758,"name":759,"sourceUrl":14},{"claudeCode":12},"Enrich Contact Industry",{"basePath":551,"githubOwner":245,"githubRepo":246,"locale":18,"slug":553,"type":247},{"evaluate":762,"extract":767},{"promptVersionExtension":206,"promptVersionScoring":207,"score":290,"tags":763,"targetMarket":218,"tier":295},[213,214,764,216,765,766],"data-enrichment","contact-management","segmentation",{"commitSha":278,"license":239},{"parentExtensionId":251,"repoId":283},[216,765,214,764,213,766],{"evaluatedAt":771,"extractAt":287,"updatedAt":771},1778698467653,{"_creationTime":773,"_id":774,"community":775,"display":776,"identity":778,"providers":779,"relations":784,"tags":785,"workflow":786},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":682,"installMethods":777,"name":683,"sourceUrl":14},{"claudeCode":12},{"basePath":681,"githubOwner":245,"githubRepo":246,"locale":18,"slug":683,"type":247},{"evaluate":780,"extract":783},{"promptVersionExtension":206,"promptVersionScoring":207,"score":781,"tags":782,"targetMarket":218,"tier":295},98,[213,214,730,216,731],{"commitSha":278},{"parentExtensionId":251,"repoId":283},[216,214,213,730,731],{"evaluatedAt":787,"extractAt":287,"updatedAt":787},1778698703534,{"_creationTime":789,"_id":790,"community":791,"display":792,"identity":794,"providers":795,"relations":800,"tags":801,"workflow":802},1778698144006.2253,"k175q9vhdtjhmdnj5sfg0js0y186m41d",{"reviewCount":8},{"description":633,"installMethods":793,"name":634,"sourceUrl":14},{"claudeCode":12},{"basePath":632,"githubOwner":245,"githubRepo":246,"locale":18,"slug":634,"type":247},{"evaluate":796,"extract":799},{"promptVersionExtension":206,"promptVersionScoring":207,"score":781,"tags":797,"targetMarket":218,"tier":295},[213,214,798,765,216],"data-hygiene",{"commitSha":278},{"parentExtensionId":251,"repoId":283},[216,765,214,798,213],{"evaluatedAt":803,"extractAt":287,"updatedAt":803},1778698625452]