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