[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-cleanup-lists-de":3,"guides-for-TomGranot-cleanup-lists":703,"similar-k172y4fe72ea260qsjg6hy9fx586mnsh-de":704},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":245,"isFallback":250,"parentExtension":251,"providers":306,"relations":310,"repo":311,"tags":701,"workflow":702},1778698144006.2212,"k172y4fe72ea260qsjg6hy9fx586mnsh",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","cleanup-lists","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":227,"workflow":243},1778698329047.9795,"kn72fd3nsaq63gygffrdfx74gd86nzkp","en",{"checks":20,"evaluatedAt":197,"extensionSummary":198,"features":199,"nonGoals":204,"promptVersionExtension":208,"promptVersionScoring":209,"purpose":210,"rationale":211,"score":212,"summary":213,"tags":214,"targetMarket":220,"tier":221,"useCases":222},[21,26,29,32,36,39,44,49,52,55,59,63,66,70,73,76,79,82,85,88,92,96,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,190,194],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of auditing and removing unused, empty, or duplicate list definitions from HubSpot, identifying specific criteria for removal.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers significant value over default HubSpot behavior by automating the audit and identification of lists for deletion based on specific criteria, which would be a manual and time-consuming process otherwise.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill provides a complete lifecycle for managing HubSpot lists, including prerequisites, step-by-step instructions for auditing and deletion, and rollback procedures.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses solely on the management and cleanup of HubSpot list definitions, aligning with its described purpose.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the skill's functionality as described in the SKILL.md file.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This skill uses a single Python script executed via a Python interpreter, rather than exposing multiple distinct tools.",{"category":45,"check":46,"severity":47,"summary":48},"Documentation","Configuration & parameter reference","warning","The SKILL.md mentions a HubSpot API token in `.env` but does not explicitly document this requirement or its format, nor does it mention the Python dependencies requiring `uv` installation in detail.",{"category":33,"check":50,"severity":42,"summary":51},"Tool naming","The skill is a single executable unit and does not expose multiple tools with names.",{"category":33,"check":53,"severity":42,"summary":54},"Minimal I/O surface","As a script-based skill, it does not expose a distinct tool schema for input/output validation in the same way as a multi-tool skill.",{"category":56,"check":57,"severity":24,"summary":58},"License","License usability","The `LICENSE` file is present and contains the MIT license text, which is also declared in the SKILL.md frontmatter and README.",{"category":60,"check":61,"severity":24,"summary":62},"Maintenance","Commit recency","The last commit was on March 26, 2026, which is within the last 3 months.",{"category":60,"check":64,"severity":47,"summary":65},"Dependency Management","The skill relies on Python and the `hubspot-api-client` but does not specify version constraints or a lockfile for Python dependencies, only mentioning installation via `uv`.",{"category":67,"check":68,"severity":47,"summary":69},"Security","Secret Management","The skill requires a HubSpot API token from a `.env` file, which is a common practice, but the documentation could be more explicit about the token's scope and the security implications of storing it.",{"category":67,"check":71,"severity":24,"summary":72},"Injection","The skill executes Python scripts that interact with the HubSpot API. The scripts appear to handle API data directly and do not exhibit obvious patterns of executing arbitrary external code or instructions from loaded data.",{"category":67,"check":74,"severity":24,"summary":75},"Transitive Supply-Chain Grenades","The skill's Python script is bundled and does not fetch external code or data at runtime. Dependencies are managed via pip/uv, which is a standard Python ecosystem approach.",{"category":67,"check":77,"severity":24,"summary":78},"Sandbox Isolation","The Python script operates within the context of the HubSpot API and local file system access for CSV export, without attempting to modify files outside its intended scope or making absolute path assumptions.",{"category":67,"check":80,"severity":24,"summary":81},"Sandbox escape primitives","The provided Python script does not contain patterns like detached process spawns or retry loops around denied tool calls.",{"category":67,"check":83,"severity":24,"summary":84},"Data Exfiltration","The skill interacts with the HubSpot API to retrieve and potentially delete list data. It does not appear to exfiltrate confidential data or make undocumented outbound calls.",{"category":67,"check":86,"severity":24,"summary":87},"Hidden Text Tricks","The bundled markdown and Python scripts do not contain hidden text tricks, invisible Unicode characters, or other obfuscation methods.",{"category":89,"check":90,"severity":24,"summary":91},"Hooks","Opaque code execution","The Python script is provided as plain, readable source code and does not use obfuscation techniques like base64 encoding or runtime fetching.",{"category":93,"check":94,"severity":24,"summary":95},"Portability","Structural Assumption","The skill assumes the presence of a `.env` file for credentials and Python with specific libraries, which are documented prerequisites, and does not make assumptions about user project file layouts.",{"category":97,"check":98,"severity":99,"summary":100},"Trust","Issues Attention","info","In the last 90 days, 0 issues were opened and 1 was closed. This suggests low current activity or that issues are promptly addressed when they arise.",{"category":102,"check":103,"severity":24,"summary":104},"Versioning","Release Management","The skill has a version declared in the SKILL.md frontmatter (`1.0`) and a recent commit date, indicating basic version management.",{"category":106,"check":107,"severity":99,"summary":108},"Code Execution","Validation","The Python script interacts with the HubSpot API, which likely performs its own validation. However, the script itself does not explicitly detail input validation or sanitization beyond what the API client might enforce.",{"category":67,"check":110,"severity":47,"summary":111},"Unguarded Destructive Operations","The 'Delete and Document' stage of the workflow involves deleting HubSpot lists via API calls, which is a destructive operation. While the skill outlines reviewing and confirming before deletion, explicit confirmation prompts or dry-run modes are not detailed in the script execution part.",{"category":106,"check":113,"severity":99,"summary":114},"Error Handling","The Python script includes a `try...except` block for API calls, which is good practice. However, the specific error handling for API responses (e.g., rate limits, specific error codes) and script execution failures could be more detailed, with clearer remediation steps.",{"category":106,"check":116,"severity":99,"summary":117},"Logging","The script mentions exporting data to CSV in Stage 1, which serves as a form of audit logging for the initial state. However, there is no explicit mention of a persistent audit log file for actions taken by the skill.",{"category":119,"check":120,"severity":42,"summary":121},"Compliance","GDPR","The skill operates on HubSpot list definitions and does not appear to directly process personal data beyond what is necessary for list management via the API.",{"category":119,"check":123,"severity":24,"summary":124},"Target market","The skill's functionality is tied to HubSpot's API and is generally applicable globally, with no specific regional restrictions detected.",{"category":93,"check":126,"severity":99,"summary":127},"Runtime stability","The skill assumes a Python environment with specific libraries (`hubspot-api-client`) and relies on the HubSpot API, which is a standard setup. It doesn't explicitly detail cross-OS compatibility beyond standard Python execution.",{"category":45,"check":129,"severity":24,"summary":130},"README","The README.md provides a comprehensive overview of the HubSpot Admin Skills collection, including installation, usage, and a detailed reference of all skills.",{"category":33,"check":132,"severity":42,"summary":133},"Tool surface size","This extension consists of a single skill focused on a specific task, not a collection of multiple tools.",{"category":40,"check":135,"severity":42,"summary":136},"Overlapping near-synonym tools","This is a single skill, so there are no overlapping tools.",{"category":45,"check":138,"severity":24,"summary":139},"Phantom features","All features described in the README and SKILL.md, such as auditing and removing lists, are implemented in the provided Python script.",{"category":141,"check":142,"severity":47,"summary":143},"Install","Installation instruction","While installation instructions are provided in the README for the marketplace, the specific prerequisite of installing Python dependencies via `uv` and obtaining a HubSpot API token with appropriate scopes could be more detailed and actionable within the SKILL.md itself.",{"category":145,"check":146,"severity":99,"summary":147},"Errors","Actionable error messages","The skill mentions documenting what was deleted in a log, and the Python script includes basic error handling. However, specific user-facing error messages with remediation steps for API failures or script execution issues are not explicitly detailed.",{"category":149,"check":150,"severity":47,"summary":151},"Execution","Pinned dependencies","The skill mentions installing Python dependencies via `uv` but does not provide specific version pinning for the `hubspot-api-client` or other Python packages, which could lead to compatibility issues.",{"category":33,"check":153,"severity":47,"summary":154},"Dry-run preview","The skill outlines a deletion process but does not explicitly offer a `--dry-run` mode or equivalent parameter for the Python script to preview the deletions before execution.",{"category":156,"check":157,"severity":99,"summary":158},"Protocol","Idempotent retry & timeouts","The Python script uses the `hubspot-api-client`, which may handle retries and timeouts internally. However, this is not explicitly documented or guaranteed within the skill's instructions, and the deletion operation is not described as inherently idempotent.",{"category":119,"check":160,"severity":24,"summary":161},"Telemetry opt-in","There is no indication of telemetry being emitted by this skill; it focuses on local data processing and API interaction.",{"category":40,"check":163,"severity":24,"summary":164},"Precise Purpose","The skill clearly defines its purpose as auditing and removing HubSpot lists based on specific criteria (zero members, not used, duplicates, test names) and provides clear execution steps.",{"category":40,"check":166,"severity":24,"summary":167},"Concise Frontmatter","The SKILL.md frontmatter is concise and effectively summarizes the skill's core capability and purpose.",{"category":45,"check":169,"severity":24,"summary":170},"Concise Body","The SKILL.md is reasonably concise and outlines the process clearly without excessive verbosity.",{"category":172,"check":173,"severity":24,"summary":174},"Context","Progressive Disclosure","The SKILL.md outlines the procedure clearly and does not embed large amounts of bulk third-party material or overly lengthy code examples within the main markdown file.",{"category":172,"check":176,"severity":42,"summary":177},"Forked exploration","This skill performs a defined task of auditing and deleting lists; it does not involve deep code review or extensive exploration that would require forked context.",{"category":22,"check":179,"severity":24,"summary":180},"Usage examples","The SKILL.md provides a Python code snippet for inventorying lists, which serves as a concrete example of how to interact with the API for the 'Before' stage.",{"category":22,"check":182,"severity":99,"summary":183},"Edge cases","The skill mentions that the Lists API may return 403 on some plan tiers, suggesting a potential failure mode. It also notes that HubSpot has no list recycle bin, implying a critical failure mode if deletion is unintentional.",{"category":106,"check":185,"severity":42,"summary":186},"Tool Fallback","This skill relies directly on the HubSpot API and Python scripts, not on an external MCP server or other tools that would require fallbacks.",{"category":93,"check":188,"severity":99,"summary":189},"Stack assumptions","The skill assumes a Python 3.10+ environment with `uv` and the `hubspot-api-client` library. While mentioned in prerequisites, the specific interpreter and version assumptions are not explicitly declared with shebangs or headers as would be typical for standalone scripts.",{"category":191,"check":192,"severity":47,"summary":193},"Safety","Halt on unexpected state","While the skill stresses cross-referencing with workflows before deleting, it does not explicitly state a machine-readable checklist for pre-conditions or instruct to abort on unexpected states like a dirty working tree or drifted schema.",{"category":93,"check":195,"severity":42,"summary":196},"Cross-skill coupling","This skill operates independently on HubSpot lists and does not appear to rely on or implicitly couple with other skills in the repository.",1778698328937,"This skill provides a Python-based approach to audit and remove unused, empty, or duplicate list definitions from a HubSpot portal. It identifies lists based on member count, usage in workflows/emails, naming, and update frequency, with steps for before, execute, and after states, including rollback considerations.",[200,201,202,203],"Audits lists for zero members, inactivity, duplication, and test/temp naming.","Identifies lists not used by workflows, emails, or ad audiences.","Provides step-by-step instructions for deletion and documentation.","Includes considerations for rollback and prevention of future clutter.",[205,206,207],"Deleting lists that are actively used or critical for segmentation.","Performing actions on HubSpot objects other than list definitions.","Providing real-time deletion without user review and confirmation.","3.0.0","4.4.0","To streamline HubSpot CRM administration by automating the cleanup of redundant and unutilized list definitions, improving portal performance and data clarity.","The skill is well-defined and addresses a practical HubSpot administration problem. It received warnings for explicit dry-run mode, detailed error handling, dependency pinning, and explicit halt-on-unexpected-state documentation.",77,"A comprehensive skill for auditing and removing unused or duplicate HubSpot list definitions.",[215,216,217,218,219],"hubspot","crm","data-cleanup","automation","python","global","community",[223,224,225,226],"Cleaning up a cluttered HubSpot portal with many unused lists.","Improving system performance by removing obsolete list definitions.","Ensuring data accuracy and reducing confusion among marketing and sales teams.","Establishing a quarterly routine for HubSpot data hygiene.",{"codeQuality":228,"collectedAt":230,"documentation":231,"maintenance":234,"security":240,"testCoverage":242},{"hasLockfile":229},false,1778698312409,{"descriptionLength":232,"readmeSize":233},183,10597,{"closedIssues90d":235,"forks":236,"hasChangelog":229,"manifestVersion":237,"openIssues90d":8,"pushedAt":238,"stars":239},1,4,"1.0",1774540543000,21,{"hasNpmPackage":229,"license":241,"smitheryVerified":229},"MIT",{"hasCi":229,"hasTests":229},{"updatedAt":244},1778698329048,{"basePath":246,"githubOwner":247,"githubRepo":248,"locale":18,"slug":13,"type":249},"skills/cleanup-lists","TomGranot","hubspot-admin-skills","skill",true,{"_creationTime":252,"_id":253,"community":254,"display":255,"identity":260,"parentExtension":263,"providers":291,"relations":302,"tags":303,"workflow":304},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":256,"installMethods":257,"name":259,"sourceUrl":14},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":258},"hubspot-admin","HubSpot Admin Skills",{"basePath":261,"githubOwner":247,"githubRepo":248,"locale":18,"slug":248,"type":262},"","plugin",{"_creationTime":264,"_id":265,"community":266,"display":267,"identity":270,"providers":272,"relations":285,"tags":287,"workflow":288},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":268,"installMethods":269,"name":248,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":261,"githubOwner":247,"githubRepo":248,"locale":18,"slug":248,"type":271},"marketplace",{"evaluate":273,"extract":280},{"promptVersionExtension":274,"promptVersionScoring":209,"score":275,"tags":276,"targetMarket":220,"tier":221},"3.1.0",79,[215,216,218,277,278,279],"data-cleaning","auditing","administration",{"commitSha":281,"marketplace":282,"plugin":283},"HEAD",{"name":248,"pluginCount":235},{"mcpCount":8,"provider":284,"skillCount":8},"classify",{"repoId":286},"kd75kpec7arn6z2wz641vfaj8n86nab6",[279,278,218,216,277,215],{"evaluatedAt":289,"extractAt":290,"updatedAt":289},1778698158552,1778698144006,{"evaluate":292,"extract":299},{"promptVersionExtension":208,"promptVersionScoring":209,"score":293,"tags":294,"targetMarket":220,"tier":298},99,[215,216,279,295,218,296,278,297],"data-quality","cleanup","marketing-automation","verified",{"commitSha":281,"license":241,"plugin":300},{"mcpCount":8,"provider":284,"skillCount":301},32,{"parentExtensionId":265,"repoId":286},[279,278,218,296,216,295,215,297],{"evaluatedAt":305,"extractAt":290,"updatedAt":305},1778698168554,{"evaluate":307,"extract":309},{"promptVersionExtension":208,"promptVersionScoring":209,"score":212,"tags":308,"targetMarket":220,"tier":221},[215,216,217,218,219],{"commitSha":281},{"parentExtensionId":253,"repoId":286},{"_creationTime":312,"_id":286,"identity":313,"providers":314,"workflow":697},1778698139523.511,{"githubOwner":247,"githubRepo":248,"sourceUrl":14},{"classify":315,"discover":691,"github":694},{"commitSha":281,"extensions":316},[317,330,403,419,427,435,443,452,460,468,476,484,489,497,505,516,524,535,543,553,563,574,582,590,598,607,615,623,634,642,653,663,673,683],{"basePath":261,"description":268,"displayName":248,"installMethods":318,"rationale":319,"selectedPaths":320,"source":329,"sourceLanguage":18,"type":271},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[321,324,326],{"path":322,"priority":323},".claude-plugin/marketplace.json","mandatory",{"path":325,"priority":323},"README.md",{"path":327,"priority":328},"LICENSE","high","rule",{"basePath":261,"description":256,"displayName":258,"installMethods":331,"rationale":332,"selectedPaths":333,"source":329,"sourceLanguage":18,"type":262},{"claudeCode":258},"plugin manifest at .claude-plugin/plugin.json",[334,336,337,338,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,377,379,381,383,385,387,389,391,393,395,397,399,401],{"path":335,"priority":323},".claude-plugin/plugin.json",{"path":325,"priority":323},{"path":327,"priority":328},{"path":339,"priority":340},"skills/assign-unowned-contacts/SKILL.md","medium",{"path":342,"priority":340},"skills/backfill-geo-data/SKILL.md",{"path":344,"priority":340},"skills/bounce-monitoring-workflow/SKILL.md",{"path":346,"priority":340},"skills/build-lead-scoring/SKILL.md",{"path":348,"priority":340},"skills/build-smart-lists/SKILL.md",{"path":350,"priority":340},"skills/cleanup-dashboards/SKILL.md",{"path":352,"priority":340},"skills/cleanup-deals/SKILL.md",{"path":354,"priority":340},"skills/cleanup-forms/SKILL.md",{"path":356,"priority":340},"skills/cleanup-lead-owners/SKILL.md",{"path":358,"priority":340},"skills/cleanup-lists/SKILL.md",{"path":360,"priority":340},"skills/cleanup-properties/SKILL.md",{"path":362,"priority":340},"skills/cleanup-workflows/SKILL.md",{"path":364,"priority":340},"skills/create-icp-tiers/SKILL.md",{"path":366,"priority":340},"skills/create-segment-lists/SKILL.md",{"path":368,"priority":340},"skills/delete-no-email-contacts/SKILL.md",{"path":370,"priority":340},"skills/engagement-suppression-workflow/SKILL.md",{"path":372,"priority":340},"skills/enrich-company-name/SKILL.md",{"path":374,"priority":340},"skills/enrich-industry/SKILL.md",{"path":376,"priority":340},"skills/fix-lifecycle-stages/SKILL.md",{"path":378,"priority":340},"skills/hubspot-audit/SKILL.md",{"path":380,"priority":340},"skills/hubspot-implementation-plan/SKILL.md",{"path":382,"priority":340},"skills/lifecycle-progression-workflow/SKILL.md",{"path":384,"priority":340},"skills/merge-duplicate-companies/SKILL.md",{"path":386,"priority":340},"skills/new-contact-hygiene-workflow/SKILL.md",{"path":388,"priority":340},"skills/quarterly-database-cleanup/SKILL.md",{"path":390,"priority":340},"skills/reassign-deactivated-owners/SKILL.md",{"path":392,"priority":340},"skills/review-bounced-contacts/SKILL.md",{"path":394,"priority":340},"skills/standardize-geo-values/SKILL.md",{"path":396,"priority":340},"skills/suppress-ghost-contacts/SKILL.md",{"path":398,"priority":340},"skills/suppress-global-unsubscribes/SKILL.md",{"path":400,"priority":340},"skills/suppress-hard-bounced/SKILL.md",{"path":402,"priority":340},"skills/weekly-cleanup-routine/SKILL.md",{"basePath":404,"description":405,"displayName":406,"installMethods":407,"rationale":408,"selectedPaths":409,"source":329,"sourceLanguage":18,"type":249},"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",[410,412,415,417],{"path":411,"priority":323},"SKILL.md",{"path":413,"priority":414},"scripts/after.py","low",{"path":416,"priority":414},"scripts/before.py",{"path":418,"priority":414},"scripts/execute.py",{"basePath":420,"description":421,"displayName":422,"installMethods":423,"rationale":424,"selectedPaths":425,"source":329,"sourceLanguage":18,"type":249},"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",[426],{"path":411,"priority":323},{"basePath":428,"description":429,"displayName":430,"installMethods":431,"rationale":432,"selectedPaths":433,"source":329,"sourceLanguage":18,"type":249},"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",[434],{"path":411,"priority":323},{"basePath":436,"description":437,"displayName":438,"installMethods":439,"rationale":440,"selectedPaths":441,"source":329,"sourceLanguage":18,"type":249},"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",[442],{"path":411,"priority":323},{"basePath":444,"description":445,"displayName":446,"installMethods":447,"rationale":448,"selectedPaths":449,"source":329,"sourceLanguage":18,"type":249},"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",[450,451],{"path":411,"priority":323},{"path":418,"priority":414},{"basePath":453,"description":454,"displayName":455,"installMethods":456,"rationale":457,"selectedPaths":458,"source":329,"sourceLanguage":18,"type":249},"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",[459],{"path":411,"priority":323},{"basePath":461,"description":462,"displayName":463,"installMethods":464,"rationale":465,"selectedPaths":466,"source":329,"sourceLanguage":18,"type":249},"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",[467],{"path":411,"priority":323},{"basePath":469,"description":470,"displayName":471,"installMethods":472,"rationale":473,"selectedPaths":474,"source":329,"sourceLanguage":18,"type":249},"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",[475],{"path":411,"priority":323},{"basePath":477,"description":478,"displayName":479,"installMethods":480,"rationale":481,"selectedPaths":482,"source":329,"sourceLanguage":18,"type":249},"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",[483],{"path":411,"priority":323},{"basePath":246,"description":10,"displayName":13,"installMethods":485,"rationale":486,"selectedPaths":487,"source":329,"sourceLanguage":18,"type":249},{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-lists/SKILL.md",[488],{"path":411,"priority":323},{"basePath":490,"description":491,"displayName":492,"installMethods":493,"rationale":494,"selectedPaths":495,"source":329,"sourceLanguage":18,"type":249},"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",[496],{"path":411,"priority":323},{"basePath":498,"description":499,"displayName":500,"installMethods":501,"rationale":502,"selectedPaths":503,"source":329,"sourceLanguage":18,"type":249},"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",[504],{"path":411,"priority":323},{"basePath":506,"description":507,"displayName":508,"installMethods":509,"rationale":510,"selectedPaths":511,"source":329,"sourceLanguage":18,"type":249},"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",[512,513,514,515],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"path":418,"priority":414},{"basePath":517,"description":518,"displayName":519,"installMethods":520,"rationale":521,"selectedPaths":522,"source":329,"sourceLanguage":18,"type":249},"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",[523],{"path":411,"priority":323},{"basePath":525,"description":526,"displayName":527,"installMethods":528,"rationale":529,"selectedPaths":530,"source":329,"sourceLanguage":18,"type":249},"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",[531,532,533,534],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"path":418,"priority":414},{"basePath":536,"description":537,"displayName":538,"installMethods":539,"rationale":540,"selectedPaths":541,"source":329,"sourceLanguage":18,"type":249},"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",[542],{"path":411,"priority":323},{"basePath":544,"description":545,"displayName":546,"installMethods":547,"rationale":548,"selectedPaths":549,"source":329,"sourceLanguage":18,"type":249},"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",[550,551,552],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"basePath":554,"description":555,"displayName":556,"installMethods":557,"rationale":558,"selectedPaths":559,"source":329,"sourceLanguage":18,"type":249},"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",[560,561,562],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"basePath":564,"description":565,"displayName":566,"installMethods":567,"rationale":568,"selectedPaths":569,"source":329,"sourceLanguage":18,"type":249},"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",[570,571,572,573],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"path":418,"priority":414},{"basePath":575,"description":576,"displayName":577,"installMethods":578,"rationale":579,"selectedPaths":580,"source":329,"sourceLanguage":18,"type":249},"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",[581],{"path":411,"priority":323},{"basePath":583,"description":584,"displayName":585,"installMethods":586,"rationale":587,"selectedPaths":588,"source":329,"sourceLanguage":18,"type":249},"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",[589],{"path":411,"priority":323},{"basePath":591,"description":592,"displayName":593,"installMethods":594,"rationale":595,"selectedPaths":596,"source":329,"sourceLanguage":18,"type":249},"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",[597],{"path":411,"priority":323},{"basePath":599,"description":600,"displayName":601,"installMethods":602,"rationale":603,"selectedPaths":604,"source":329,"sourceLanguage":18,"type":249},"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",[605,606],{"path":411,"priority":323},{"path":416,"priority":414},{"basePath":608,"description":609,"displayName":610,"installMethods":611,"rationale":612,"selectedPaths":613,"source":329,"sourceLanguage":18,"type":249},"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",[614],{"path":411,"priority":323},{"basePath":616,"description":617,"displayName":618,"installMethods":619,"rationale":620,"selectedPaths":621,"source":329,"sourceLanguage":18,"type":249},"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",[622],{"path":411,"priority":323},{"basePath":624,"description":625,"displayName":626,"installMethods":627,"rationale":628,"selectedPaths":629,"source":329,"sourceLanguage":18,"type":249},"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",[630,631,632,633],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"path":418,"priority":414},{"basePath":635,"description":636,"displayName":637,"installMethods":638,"rationale":639,"selectedPaths":640,"source":329,"sourceLanguage":18,"type":249},"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",[641],{"path":411,"priority":323},{"basePath":643,"description":644,"displayName":645,"installMethods":646,"rationale":647,"selectedPaths":648,"source":329,"sourceLanguage":18,"type":249},"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",[649,650,651,652],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"path":418,"priority":414},{"basePath":654,"description":655,"displayName":656,"installMethods":657,"rationale":658,"selectedPaths":659,"source":329,"sourceLanguage":18,"type":249},"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",[660,661,662],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"basePath":664,"description":665,"displayName":666,"installMethods":667,"rationale":668,"selectedPaths":669,"source":329,"sourceLanguage":18,"type":249},"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",[670,671,672],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"basePath":674,"description":675,"displayName":676,"installMethods":677,"rationale":678,"selectedPaths":679,"source":329,"sourceLanguage":18,"type":249},"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",[680,681,682],{"path":411,"priority":323},{"path":413,"priority":414},{"path":416,"priority":414},{"basePath":684,"description":685,"displayName":686,"installMethods":687,"rationale":688,"selectedPaths":689,"source":329,"sourceLanguage":18,"type":249},"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",[690],{"path":411,"priority":323},{"sources":692},[693],"manual",{"closedIssues90d":235,"description":695,"forks":236,"license":241,"openIssues90d":8,"pushedAt":238,"readmeSize":233,"stars":239,"topics":696},"32 Claude Code skills for auditing, cleaning, enriching, and automating your HubSpot CRM",[],{"classifiedAt":698,"discoverAt":699,"extractAt":700,"githubAt":700,"updatedAt":698},1778698143787,1778698139523,1778698141911,[218,216,217,215,219],{"evaluatedAt":244,"extractAt":290,"updatedAt":244},[],[705,723,740,756,775,791],{"_creationTime":706,"_id":707,"community":708,"display":709,"identity":711,"providers":712,"relations":719,"tags":720,"workflow":721},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":592,"installMethods":710,"name":593,"sourceUrl":14},{"claudeCode":12},{"basePath":591,"githubOwner":247,"githubRepo":248,"locale":18,"slug":593,"type":249},{"evaluate":713,"extract":718},{"promptVersionExtension":208,"promptVersionScoring":209,"score":714,"tags":715,"targetMarket":220,"tier":298},100,[218,716,216,717,215],"sales","workflows",{"commitSha":281},{"parentExtensionId":253,"repoId":286},[218,216,215,716,717],{"evaluatedAt":722,"extractAt":290,"updatedAt":722},1778698526315,{"_creationTime":724,"_id":725,"community":726,"display":727,"identity":729,"providers":730,"relations":736,"tags":737,"workflow":738},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":454,"installMethods":728,"name":455,"sourceUrl":14},{"claudeCode":12},{"basePath":453,"githubOwner":247,"githubRepo":248,"locale":18,"slug":455,"type":249},{"evaluate":731,"extract":735},{"promptVersionExtension":208,"promptVersionScoring":209,"score":714,"tags":732,"targetMarket":220,"tier":298},[215,216,733,734,296],"maintenance","reporting",{"commitSha":281},{"parentExtensionId":253,"repoId":286},[296,216,215,733,734],{"evaluatedAt":739,"extractAt":290,"updatedAt":739},1778698268281,{"_creationTime":741,"_id":742,"community":743,"display":744,"identity":746,"providers":747,"relations":752,"tags":753,"workflow":754},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":625,"installMethods":745,"name":626,"sourceUrl":14},{"claudeCode":12},{"basePath":624,"githubOwner":247,"githubRepo":248,"locale":18,"slug":626,"type":249},{"evaluate":748,"extract":751},{"promptVersionExtension":208,"promptVersionScoring":209,"score":293,"tags":749,"targetMarket":220,"tier":298},[215,216,218,750,279],"data-management",{"commitSha":281},{"parentExtensionId":253,"repoId":286},[279,218,216,750,215],{"evaluatedAt":755,"extractAt":290,"updatedAt":755},1778698590503,{"_creationTime":757,"_id":758,"community":759,"display":760,"identity":763,"providers":764,"relations":771,"tags":772,"workflow":773},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",{"reviewCount":8},{"description":555,"installMethods":761,"name":762,"sourceUrl":14},{"claudeCode":12},"Enrich Contact Industry",{"basePath":554,"githubOwner":247,"githubRepo":248,"locale":18,"slug":556,"type":249},{"evaluate":765,"extract":770},{"promptVersionExtension":208,"promptVersionScoring":209,"score":293,"tags":766,"targetMarket":220,"tier":298},[215,216,767,218,768,769],"data-enrichment","contact-management","segmentation",{"commitSha":281,"license":241},{"parentExtensionId":253,"repoId":286},[218,768,216,767,215,769],{"evaluatedAt":774,"extractAt":290,"updatedAt":774},1778698467653,{"_creationTime":776,"_id":777,"community":778,"display":779,"identity":781,"providers":782,"relations":787,"tags":788,"workflow":789},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":685,"installMethods":780,"name":686,"sourceUrl":14},{"claudeCode":12},{"basePath":684,"githubOwner":247,"githubRepo":248,"locale":18,"slug":686,"type":249},{"evaluate":783,"extract":786},{"promptVersionExtension":208,"promptVersionScoring":209,"score":784,"tags":785,"targetMarket":220,"tier":298},98,[215,216,733,218,734],{"commitSha":281},{"parentExtensionId":253,"repoId":286},[218,216,215,733,734],{"evaluatedAt":790,"extractAt":290,"updatedAt":790},1778698703534,{"_creationTime":792,"_id":793,"community":794,"display":795,"identity":797,"providers":798,"relations":803,"tags":804,"workflow":805},1778698144006.2253,"k175q9vhdtjhmdnj5sfg0js0y186m41d",{"reviewCount":8},{"description":636,"installMethods":796,"name":637,"sourceUrl":14},{"claudeCode":12},{"basePath":635,"githubOwner":247,"githubRepo":248,"locale":18,"slug":637,"type":249},{"evaluate":799,"extract":802},{"promptVersionExtension":208,"promptVersionScoring":209,"score":784,"tags":800,"targetMarket":220,"tier":298},[215,216,801,768,218],"data-hygiene",{"commitSha":281},{"parentExtensionId":253,"repoId":286},[218,768,216,801,215],{"evaluatedAt":806,"extractAt":290,"updatedAt":806},1778698625452]