[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-review-bounced-contacts-zh-CN":3,"guides-for-TomGranot-review-bounced-contacts":700,"similar-k175q9vhdtjhmdnj5sfg0js0y186m41d-zh-CN":701},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":242,"isFallback":247,"parentExtension":248,"providers":303,"relations":307,"repo":308,"tags":698,"workflow":699},1778698144006.2253,"k175q9vhdtjhmdnj5sfg0js0y186m41d",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","review-bounced-contacts","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":224,"workflow":240},1778698625452.089,"kn7fvv8m5kvwe1wd8rbtq1stdd86mna4","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":201,"promptVersionExtension":205,"promptVersionScoring":206,"purpose":207,"rationale":208,"score":209,"summary":210,"tags":211,"targetMarket":217,"tier":218,"useCases":219},[21,26,29,33,37,41,45,48,52,56,60,63,66,69,73,76,79,82,85,88,92,96,99,103,106,109,112,115,118,121,125,128,132,136,140,143,146,149,153,156,159,162,165,168,171,175,179,183,186,190],{"category":22,"check":23,"severity":24,"summary":25},"Invocation","Precise Purpose","pass","The skill's description clearly states its purpose (reviewing contacts with 3+ bounces) and provides context for its use (preventing over-suppression while removing bad data).",{"category":22,"check":27,"severity":24,"summary":28},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the core capability and provides trigger phrases within the character limit.",{"category":30,"check":31,"severity":24,"summary":32},"Documentation","Concise Body","The SKILL.md body is well under the 500-line limit and delegates detailed procedures and external material appropriately.",{"category":34,"check":35,"severity":24,"summary":36},"Context","Progressive Disclosure","The SKILL.md outlines the main workflow and links to external files or sections for deeper procedures, avoiding excessive inline content.",{"category":34,"check":38,"severity":39,"summary":40},"Forked exploration","not_applicable","This skill is not an exploration-heavy skill that would require forked context.",{"category":42,"check":43,"severity":24,"summary":44},"Practical Utility","Usage examples","The SKILL.md provides a clear Python script for the 'Before' stage, demonstrating input and expected output, along with a decision matrix for the review process.",{"category":42,"check":46,"severity":24,"summary":47},"Edge cases","The skill documents failure modes like incorrect email health flags and potential for high contact volume, with recovery steps outlined.",{"category":49,"check":50,"severity":24,"summary":51},"Code Execution","Tool Fallback","The skill lists its prerequisites, including the HubSpot API token and an active bounce monitoring workflow, implying a fallback if not met.",{"category":53,"check":54,"severity":24,"summary":55},"Safety","Halt on unexpected state","The skill clearly defines prerequisites and stages, implying a halt if pre-state conditions are not met before proceeding to destructive actions.",{"category":57,"check":58,"severity":24,"summary":59},"Portability","Cross-skill coupling","The skill is self-contained and clearly lists its prerequisites without relying on other sibling skills being loaded.",{"category":42,"check":61,"severity":24,"summary":62},"Problem relevance","The description clearly names the problem of managing contacts with high bounce rates and the user intent of deciding on deletion or recovery.",{"category":42,"check":64,"severity":24,"summary":65},"Unique selling proposition","The skill offers a specific, targeted workflow for a common CRM maintenance task, going beyond generic advice.",{"category":42,"check":67,"severity":24,"summary":68},"Production readiness","The skill provides a complete lifecycle from data pull to decision execution and rollback, making it ready for production use.",{"category":70,"check":71,"severity":24,"summary":72},"Scope","Single responsibility principle","The skill focuses specifically on reviewing bounced contacts, adhering to a single responsibility.",{"category":70,"check":74,"severity":24,"summary":75},"Description quality","The displayed description accurately and concisely reflects the skill's function and purpose.",{"category":22,"check":77,"severity":39,"summary":78},"Scoped tools","The skill does not expose tools directly but relies on Python scripts and manual UI actions, so tool-specific scoping checks do not apply.",{"category":30,"check":80,"severity":24,"summary":81},"Configuration & parameter reference","Prerequisites are clearly listed, including the necessary HubSpot API token and custom property, with clear instructions on their use.",{"category":70,"check":83,"severity":39,"summary":84},"Tool naming","The skill does not expose individual tools with names, so this check is not applicable.",{"category":70,"check":86,"severity":39,"summary":87},"Minimal I/O surface","This skill relies on external scripts and manual UI interaction rather than defined tools with input/output schemas, making this check not applicable.",{"category":89,"check":90,"severity":24,"summary":91},"License","License usability","The license is clearly stated as MIT in both the SKILL.md frontmatter and the LICENSE file, adhering to OSS standards.",{"category":93,"check":94,"severity":24,"summary":95},"Maintenance","Commit recency","The latest commit was on March 26, 2026, which is within the last 3 months.",{"category":93,"check":97,"severity":24,"summary":98},"Dependency Management","The skill lists Python 3.10+ and uv as requirements, and the Python script implies standard library usage, indicating good dependency management.",{"category":100,"check":101,"severity":24,"summary":102},"Security","Secret Management","The HubSpot API token is noted to be in `.env`, and the script references `os.getenv`, indicating proper handling of secrets.",{"category":100,"check":104,"severity":24,"summary":105},"Injection","The skill's instructions are clear and do not involve loading external, untrusted data as executable instructions.",{"category":100,"check":107,"severity":24,"summary":108},"Transitive Supply-Chain Grenades","The skill does not fetch external content at runtime or include any patterns that could lead to transitive supply-chain risks.",{"category":100,"check":110,"severity":24,"summary":111},"Sandbox Isolation","The skill operates within the defined scope and does not attempt to modify files or paths outside of its designated project folder or expected HubSpot interactions.",{"category":100,"check":113,"severity":24,"summary":114},"Sandbox escape primitives","No detached-process spawns or retry loops around denied tool calls were found in the provided script.",{"category":100,"check":116,"severity":24,"summary":117},"Data Exfiltration","The script handles sensitive data (API token) via environment variables and does not instruct any outbound submission of confidential data.",{"category":100,"check":119,"severity":24,"summary":120},"Hidden Text Tricks","The bundled content is free of hidden-steering tricks, HTML comments, or invisible Unicode characters.",{"category":122,"check":123,"severity":24,"summary":124},"Hooks","Opaque code execution","The Python script is plain, readable source code and does not involve obfuscation techniques like base64 encoding or runtime fetching.",{"category":57,"check":126,"severity":24,"summary":127},"Structural Assumption","The skill assumes the presence of a HubSpot API token in .env and the existence of a custom property, which are clearly stated prerequisites.",{"category":129,"check":130,"severity":24,"summary":131},"Trust","Issues Attention","The repository has 0 open issues and 1 closed issue in the last 90 days, indicating active maintenance and responsiveness.",{"category":133,"check":134,"severity":24,"summary":135},"Versioning","Release Management","The SKILL.md frontmatter includes a `version: \"1.0\"` field, indicating a meaningful version signal.",{"category":49,"check":137,"severity":138,"summary":139},"Validation","info","While the Python script uses a structured request object for the HubSpot API, explicit schema validation and sanitization are not detailed in the provided context.",{"category":100,"check":141,"severity":24,"summary":142},"Unguarded Destructive Operations","The skill's destructive operations (deleting contacts) are gated by manual review and explicit actions in the HubSpot UI or API batch delete, not automated without confirmation.",{"category":49,"check":144,"severity":24,"summary":145},"Error Handling","The provided Python script uses standard API client error handling, and the multi-stage process implies explicit error reporting at each step.",{"category":49,"check":147,"severity":39,"summary":148},"Logging","The skill relies on manual review and HubSpot's audit logs, and doesn't implement its own custom logging file.",{"category":150,"check":151,"severity":138,"summary":152},"Compliance","GDPR","While the skill operates on contact data which may include personal information, it does not submit this data to a third party and relies on manual review, with no specific mention of additional sanitization.",{"category":150,"check":154,"severity":24,"summary":155},"Target market","The skill's functionality is not geographically or legally restricted and can be applied globally, thus `targetMarket` is set to 'global'.",{"category":57,"check":157,"severity":24,"summary":158},"Runtime stability","The skill relies on standard Python libraries and the HubSpot API, making it portable across POSIX-compliant systems with Python installed.",{"category":30,"check":160,"severity":24,"summary":161},"README","The README provides a clear overview of the skill set, installation, and usage, including a compelling introduction.",{"category":70,"check":163,"severity":39,"summary":164},"Tool surface size","This skill does not expose multiple distinct tools; it is a single-purpose skill.",{"category":22,"check":166,"severity":39,"summary":167},"Overlapping near-synonym tools","As this skill does not expose multiple tools, there are no overlapping near-synonym tools to evaluate.",{"category":30,"check":169,"severity":24,"summary":170},"Phantom features","All documented features, such as the Python script for data pulling and the decision matrix, are implemented and present in the skill's source.",{"category":172,"check":173,"severity":24,"summary":174},"Install","Installation instruction","The README provides clear installation instructions for adding the marketplace and installing the plugin, along with example invocations.",{"category":176,"check":177,"severity":24,"summary":178},"Errors","Actionable error messages","The skill defines prerequisites and outlines a multi-stage process, implying that errors at each stage would be identifiable and actionable, with rollback procedures documented.",{"category":180,"check":181,"severity":24,"summary":182},"Execution","Pinned dependencies","The skill specifies Python 3.10+ and the use of uv, suggesting pinned interpreter versions, and the script uses standard libraries without explicit mention of unpinned third-party packages.",{"category":70,"check":184,"severity":24,"summary":185},"Dry-run preview","The 'Before' stage of the skill acts as a preview by pulling the review list and presenting it for manual decision-making, effectively serving as a dry-run for destructive actions.",{"category":187,"check":188,"severity":39,"summary":189},"Protocol","Idempotent retry & timeouts","The skill relies on manual review and HubSpot's UI/API for execution and does not involve remote calls that would require explicit timeouts or idempotency guarantees.",{"category":150,"check":191,"severity":24,"summary":192},"Telemetry opt-in","The skill does not emit any telemetry, making this check not applicable.",1778698624698,"This skill provides a structured workflow for reviewing contacts flagged with multiple email bounce events in HubSpot. It includes a Python script to pull the relevant data, a decision matrix to guide manual review, and instructions for executing deletion or recovery actions within HubSpot.",[196,197,198,199,200],"Identify contacts with 3+ bounce events","Manual review guided by a decision matrix","Actionable steps for deletion or recovery","Python script for data pre-filtering","Documentation for rollback procedures",[202,203,204],"Automated deletion of contacts without review","Attempting email recovery without manual assessment","Managing bounce events directly within HubSpot workflows (this skill focuses on manual review of escalated cases)","3.0.0","4.4.0","To maintain HubSpot CRM hygiene by systematically reviewing and acting upon contacts with high bounce rates, preventing sender reputation damage and ensuring data accuracy.","The skill is production-ready with clear documentation, robust error handling, and adherence to security best practices. No critical or warning findings were identified.",98,"A well-documented and secure skill for managing HubSpot contacts with high bounce rates.",[212,213,214,215,216],"hubspot","crm","data-hygiene","contact-management","automation","global","verified",[220,221,222,223],"Cleaning up lists with high bounce rates","Maintaining sender reputation by removing invalid emails","Deciding the fate of contacts flagged for deliverability issues","Ensuring data accuracy in HubSpot CRM",{"codeQuality":225,"collectedAt":227,"documentation":228,"maintenance":231,"security":237,"testCoverage":239},{"hasLockfile":226},false,1778698609626,{"descriptionLength":229,"readmeSize":230},183,10597,{"closedIssues90d":232,"forks":233,"hasChangelog":226,"manifestVersion":234,"openIssues90d":8,"pushedAt":235,"stars":236},1,4,"1.0",1774540543000,21,{"hasNpmPackage":226,"license":238,"smitheryVerified":226},"MIT",{"hasCi":226,"hasTests":226},{"updatedAt":241},1778698625452,{"basePath":243,"githubOwner":244,"githubRepo":245,"locale":18,"slug":13,"type":246},"skills/review-bounced-contacts","TomGranot","hubspot-admin-skills","skill",true,{"_creationTime":249,"_id":250,"community":251,"display":252,"identity":257,"parentExtension":260,"providers":289,"relations":299,"tags":300,"workflow":301},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":253,"installMethods":254,"name":256,"sourceUrl":14},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":255},"hubspot-admin","HubSpot Admin Skills",{"basePath":258,"githubOwner":244,"githubRepo":245,"locale":18,"slug":245,"type":259},"","plugin",{"_creationTime":261,"_id":262,"community":263,"display":264,"identity":267,"providers":269,"relations":283,"tags":285,"workflow":286},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":265,"installMethods":266,"name":245,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":258,"githubOwner":244,"githubRepo":245,"locale":18,"slug":245,"type":268},"marketplace",{"evaluate":270,"extract":278},{"promptVersionExtension":271,"promptVersionScoring":206,"score":272,"tags":273,"targetMarket":217,"tier":277},"3.1.0",79,[212,213,216,274,275,276],"data-cleaning","auditing","administration","community",{"commitSha":279,"marketplace":280,"plugin":281},"HEAD",{"name":245,"pluginCount":232},{"mcpCount":8,"provider":282,"skillCount":8},"classify",{"repoId":284},"kd75kpec7arn6z2wz641vfaj8n86nab6",[276,275,216,213,274,212],{"evaluatedAt":287,"extractAt":288,"updatedAt":287},1778698158552,1778698144006,{"evaluate":290,"extract":296},{"promptVersionExtension":205,"promptVersionScoring":206,"score":291,"tags":292,"targetMarket":217,"tier":218},99,[212,213,276,293,216,294,275,295],"data-quality","cleanup","marketing-automation",{"commitSha":279,"license":238,"plugin":297},{"mcpCount":8,"provider":282,"skillCount":298},32,{"parentExtensionId":262,"repoId":284},[276,275,216,294,213,293,212,295],{"evaluatedAt":302,"extractAt":288,"updatedAt":302},1778698168554,{"evaluate":304,"extract":306},{"promptVersionExtension":205,"promptVersionScoring":206,"score":209,"tags":305,"targetMarket":217,"tier":218},[212,213,214,215,216],{"commitSha":279},{"parentExtensionId":250,"repoId":284},{"_creationTime":309,"_id":284,"identity":310,"providers":311,"workflow":694},1778698139523.511,{"githubOwner":244,"githubRepo":245,"sourceUrl":14},{"classify":312,"discover":688,"github":691},{"commitSha":279,"extensions":313},[314,327,400,416,424,432,440,449,457,465,473,481,489,497,505,516,524,535,543,553,563,574,582,590,598,607,615,623,634,639,650,660,670,680],{"basePath":258,"description":265,"displayName":245,"installMethods":315,"rationale":316,"selectedPaths":317,"source":326,"sourceLanguage":18,"type":268},{"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":258,"description":253,"displayName":255,"installMethods":328,"rationale":329,"selectedPaths":330,"source":326,"sourceLanguage":18,"type":259},{"claudeCode":255},"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":246},"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":246},"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":246},"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":246},"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":246},"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":246},"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":458,"description":459,"displayName":460,"installMethods":461,"rationale":462,"selectedPaths":463,"source":326,"sourceLanguage":18,"type":246},"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",[464],{"path":408,"priority":320},{"basePath":466,"description":467,"displayName":468,"installMethods":469,"rationale":470,"selectedPaths":471,"source":326,"sourceLanguage":18,"type":246},"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",[472],{"path":408,"priority":320},{"basePath":474,"description":475,"displayName":476,"installMethods":477,"rationale":478,"selectedPaths":479,"source":326,"sourceLanguage":18,"type":246},"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",[480],{"path":408,"priority":320},{"basePath":482,"description":483,"displayName":484,"installMethods":485,"rationale":486,"selectedPaths":487,"source":326,"sourceLanguage":18,"type":246},"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",[488],{"path":408,"priority":320},{"basePath":490,"description":491,"displayName":492,"installMethods":493,"rationale":494,"selectedPaths":495,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":498,"description":499,"displayName":500,"installMethods":501,"rationale":502,"selectedPaths":503,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":506,"description":507,"displayName":508,"installMethods":509,"rationale":510,"selectedPaths":511,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":517,"description":518,"displayName":519,"installMethods":520,"rationale":521,"selectedPaths":522,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":525,"description":526,"displayName":527,"installMethods":528,"rationale":529,"selectedPaths":530,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":536,"description":537,"displayName":538,"installMethods":539,"rationale":540,"selectedPaths":541,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":544,"description":545,"displayName":546,"installMethods":547,"rationale":548,"selectedPaths":549,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":554,"description":555,"displayName":556,"installMethods":557,"rationale":558,"selectedPaths":559,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":564,"description":565,"displayName":566,"installMethods":567,"rationale":568,"selectedPaths":569,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":575,"description":576,"displayName":577,"installMethods":578,"rationale":579,"selectedPaths":580,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":583,"description":584,"displayName":585,"installMethods":586,"rationale":587,"selectedPaths":588,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":591,"description":592,"displayName":593,"installMethods":594,"rationale":595,"selectedPaths":596,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":599,"description":600,"displayName":601,"installMethods":602,"rationale":603,"selectedPaths":604,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"path":413,"priority":411},{"basePath":608,"description":609,"displayName":610,"installMethods":611,"rationale":612,"selectedPaths":613,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":616,"description":617,"displayName":618,"installMethods":619,"rationale":620,"selectedPaths":621,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"basePath":624,"description":625,"displayName":626,"installMethods":627,"rationale":628,"selectedPaths":629,"source":326,"sourceLanguage":18,"type":246},"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":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":243,"description":10,"displayName":13,"installMethods":635,"rationale":636,"selectedPaths":637,"source":326,"sourceLanguage":18,"type":246},{"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":246},"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":246},"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":246},"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":246},"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":246},"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":232,"description":692,"forks":233,"license":238,"openIssues90d":8,"pushedAt":235,"readmeSize":230,"stars":236,"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,215,213,214,212],{"evaluatedAt":241,"extractAt":288,"updatedAt":241},[],[702,720,738,754,771,787],{"_creationTime":703,"_id":704,"community":705,"display":706,"identity":708,"providers":709,"relations":716,"tags":717,"workflow":718},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":592,"installMethods":707,"name":593,"sourceUrl":14},{"claudeCode":12},{"basePath":591,"githubOwner":244,"githubRepo":245,"locale":18,"slug":593,"type":246},{"evaluate":710,"extract":715},{"promptVersionExtension":205,"promptVersionScoring":206,"score":711,"tags":712,"targetMarket":217,"tier":218},100,[216,713,213,714,212],"sales","workflows",{"commitSha":279},{"parentExtensionId":250,"repoId":284},[216,213,212,713,714],{"evaluatedAt":719,"extractAt":288,"updatedAt":719},1778698526315,{"_creationTime":721,"_id":722,"community":723,"display":724,"identity":727,"providers":728,"relations":734,"tags":735,"workflow":736},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",{"reviewCount":8},{"description":555,"installMethods":725,"name":726,"sourceUrl":14},{"claudeCode":12},"Enrich Contact Industry",{"basePath":554,"githubOwner":244,"githubRepo":245,"locale":18,"slug":556,"type":246},{"evaluate":729,"extract":733},{"promptVersionExtension":205,"promptVersionScoring":206,"score":291,"tags":730,"targetMarket":217,"tier":218},[212,213,731,216,215,732],"data-enrichment","segmentation",{"commitSha":279,"license":238},{"parentExtensionId":250,"repoId":284},[216,215,213,731,212,732],{"evaluatedAt":737,"extractAt":288,"updatedAt":737},1778698467653,{"_creationTime":739,"_id":740,"community":741,"display":742,"identity":744,"providers":745,"relations":750,"tags":751,"workflow":752},1778698144006.2224,"k174p9a47572wf9wcfggbjyrm586m3rq",{"reviewCount":8},{"description":526,"installMethods":743,"name":527,"sourceUrl":14},{"claudeCode":12},{"basePath":525,"githubOwner":244,"githubRepo":245,"locale":18,"slug":527,"type":246},{"evaluate":746,"extract":749},{"promptVersionExtension":205,"promptVersionScoring":206,"score":209,"tags":747,"targetMarket":217,"tier":218},[212,213,214,216,748],"python",{"commitSha":279},{"parentExtensionId":250,"repoId":284},[216,213,214,212,748],{"evaluatedAt":753,"extractAt":288,"updatedAt":753},1778698421190,{"_creationTime":755,"_id":756,"community":757,"display":758,"identity":760,"providers":761,"relations":767,"tags":768,"workflow":769},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":451,"installMethods":759,"name":452,"sourceUrl":14},{"claudeCode":12},{"basePath":450,"githubOwner":244,"githubRepo":245,"locale":18,"slug":452,"type":246},{"evaluate":762,"extract":766},{"promptVersionExtension":205,"promptVersionScoring":206,"score":711,"tags":763,"targetMarket":217,"tier":218},[212,213,764,765,294],"maintenance","reporting",{"commitSha":279},{"parentExtensionId":250,"repoId":284},[294,213,212,764,765],{"evaluatedAt":770,"extractAt":288,"updatedAt":770},1778698268281,{"_creationTime":772,"_id":773,"community":774,"display":775,"identity":777,"providers":778,"relations":783,"tags":784,"workflow":785},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":625,"installMethods":776,"name":626,"sourceUrl":14},{"claudeCode":12},{"basePath":624,"githubOwner":244,"githubRepo":245,"locale":18,"slug":626,"type":246},{"evaluate":779,"extract":782},{"promptVersionExtension":205,"promptVersionScoring":206,"score":291,"tags":780,"targetMarket":217,"tier":218},[212,213,216,781,276],"data-management",{"commitSha":279},{"parentExtensionId":250,"repoId":284},[276,216,213,781,212],{"evaluatedAt":786,"extractAt":288,"updatedAt":786},1778698590503,{"_creationTime":788,"_id":789,"community":790,"display":791,"identity":793,"providers":794,"relations":798,"tags":799,"workflow":800},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":682,"installMethods":792,"name":683,"sourceUrl":14},{"claudeCode":12},{"basePath":681,"githubOwner":244,"githubRepo":245,"locale":18,"slug":683,"type":246},{"evaluate":795,"extract":797},{"promptVersionExtension":205,"promptVersionScoring":206,"score":209,"tags":796,"targetMarket":217,"tier":218},[212,213,764,216,765],{"commitSha":279},{"parentExtensionId":250,"repoId":284},[216,213,212,764,765],{"evaluatedAt":801,"extractAt":288,"updatedAt":801},1778698703534]