[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-enrich-industry-en":3,"guides-for-TomGranot-enrich-industry":718,"similar-k172hgm2mhketjz0tmptf85ms986nx8p-en":719},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":261,"isFallback":245,"parentExtension":267,"providers":321,"relations":325,"repo":326,"tags":716,"workflow":717},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Backfill contact-level industry from associated company records using a HubSpot workflow. Enables industry-based segmentation for targeted campaigns aligned with ICP verticals.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","Enrich Contact Industry","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":243,"workflow":259},1778698467653.201,"kn7851bcewqcmfatjff06rbzws86mp6h","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":201,"practices":206,"prerequisites":211,"promptVersionExtension":217,"promptVersionScoring":218,"purpose":219,"rationale":220,"score":221,"summary":222,"tags":223,"targetMarket":230,"tier":231,"useCases":232,"workflow":237},[21,26,29,32,36,39,43,47,50,53,57,61,64,68,71,74,77,80,83,86,90,94,98,102,106,109,112,115,120,123,126,129,132,135,138,142,146,150,154,158,161,164,167,170,174,177,180,183,186,190],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of backfilling contact-level industry from company records and its benefit for segmentation.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill automates a crucial CRM data hygiene task that significantly enhances segmentation capabilities beyond basic prompt usage.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill provides a complete lifecycle from planning, auditing, execution via Python scripts, and verification, making it production-ready.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The extension focuses solely on enriching contact industry data from company records within HubSpot.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately and concisely reflects the skill's purpose of backfilling contact industry data.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","The skill uses specific API calls for HubSpot contacts and companies, not a general-purpose command executor.",{"category":44,"check":45,"severity":24,"summary":46},"Documentation","Configuration & parameter reference","Prerequisites like HubSpot plan and necessary properties are clearly listed, and script dependencies are documented.",{"category":33,"check":48,"severity":24,"summary":49},"Tool naming","The skill's commands and script names are descriptive and clearly indicate their purpose.",{"category":33,"check":51,"severity":24,"summary":52},"Minimal I/O surface","Input parameters for scripts are handled via environment variables and script logic, and output is structured for audit.",{"category":54,"check":55,"severity":24,"summary":56},"License","License usability","The extension is licensed under MIT, a permissive open-source license, with a clear LICENSE file.",{"category":58,"check":59,"severity":24,"summary":60},"Maintenance","Commit recency","The latest commit was on March 26, 2026, indicating recent maintenance.",{"category":58,"check":62,"severity":24,"summary":63},"Dependency Management","Python script dependencies are clearly listed with version specifiers, facilitating reproducible environments.",{"category":65,"check":66,"severity":24,"summary":67},"Security","Secret Management","HubSpot API token is handled via environment variables loaded from a .env file, with no hardcoded secrets.",{"category":65,"check":69,"severity":24,"summary":70},"Injection","The scripts interact with the HubSpot API using structured requests and do not execute arbitrary external code or data.",{"category":65,"check":72,"severity":24,"summary":73},"Transitive Supply-Chain Grenades","All dependencies are listed and presumably managed via pip/uv, and no runtime external code fetching is present.",{"category":65,"check":75,"severity":24,"summary":76},"Sandbox Isolation","The scripts only interact with the HubSpot API and local files for logging, staying within expected boundaries.",{"category":65,"check":78,"severity":24,"summary":79},"Sandbox escape primitives","No detached processes or retry loops that could indicate sandbox escape attempts were found.",{"category":65,"check":81,"severity":24,"summary":82},"Data Exfiltration","The skill only interacts with the HubSpot API and does not submit confidential data to unauthorized third parties.",{"category":65,"check":84,"severity":24,"summary":85},"Hidden Text Tricks","The bundled code and documentation do not contain any hidden text, invisible characters, or suspicious formatting.",{"category":87,"check":88,"severity":24,"summary":89},"Hooks","Opaque code execution","The Python scripts are provided in a readable format and do not use obfuscation techniques like eval or base64 payloads.",{"category":91,"check":92,"severity":24,"summary":93},"Portability","Structural Assumption","The scripts assume a standard Python environment and dependency management but do not make assumptions about user project structure.",{"category":95,"check":96,"severity":24,"summary":97},"Trust","Issues Attention","With 0 issues opened and 1 closed in the last 90 days, maintainer engagement is sufficient for this skill.",{"category":99,"check":100,"severity":24,"summary":101},"Versioning","Release Management","The skill has a declared version ('1.0') in its frontmatter.",{"category":103,"check":104,"severity":24,"summary":105},"Code Execution","Validation","Input handling for API calls appears to be managed by the HubSpot client library, and script logic is straightforward.",{"category":65,"check":107,"severity":24,"summary":108},"Unguarded Destructive Operations","The script performs data updates via the HubSpot API, which is generally safe, and the 'before' script confirms counts before execution.",{"category":103,"check":110,"severity":24,"summary":111},"Error Handling","The Python scripts utilize requests with status code checking and raise exceptions for API errors, with clear print statements for user feedback.",{"category":103,"check":113,"severity":24,"summary":114},"Logging","The 'before' and 'after' scripts generate CSV audit trails, providing a log of actions and counts.",{"category":116,"check":117,"severity":118,"summary":119},"Compliance","GDPR","not_applicable","The skill operates on CRM metadata and does not appear to handle personal data directly without appropriate sanitization.",{"category":116,"check":121,"severity":24,"summary":122},"Target market","The skill uses the HubSpot API and generic CRM data, making it globally applicable.",{"category":91,"check":124,"severity":24,"summary":125},"Runtime stability","The scripts require Python 3.10+ and standard libraries, making them portable across POSIX-compliant systems.",{"category":44,"check":127,"severity":24,"summary":128},"README","The README provides a comprehensive overview of the skills, installation, and usage patterns.",{"category":33,"check":130,"severity":118,"summary":131},"Tool surface size","This is a single skill, not a collection of tools.",{"category":40,"check":133,"severity":24,"summary":134},"Overlapping near-synonym tools","There are no overlapping tools or commands within this single skill.",{"category":44,"check":136,"severity":24,"summary":137},"Phantom features","All documented features, including the Python scripts for before/after state, are implemented.",{"category":139,"check":140,"severity":24,"summary":141},"Install","Installation instruction","The README provides clear installation instructions for the marketplace and direct cloning, along with usage examples.",{"category":143,"check":144,"severity":24,"summary":145},"Errors","Actionable error messages","API errors are caught and printed with status codes, and script logic provides informative print statements.",{"category":147,"check":148,"severity":24,"summary":149},"Execution","Pinned dependencies","Python dependencies are specified with version constraints, ensuring reproducible execution.",{"category":33,"check":151,"severity":152,"summary":153},"Dry-run preview","info","While the script performs read operations before execution, there is no explicit dry-run mode for the update operation itself.",{"category":155,"check":156,"severity":24,"summary":157},"Protocol","Idempotent retry & timeouts","The script uses the HubSpot API client, which handles retries and timeouts. The operation itself is effectively idempotent as it only updates if the field is missing.",{"category":116,"check":159,"severity":24,"summary":160},"Telemetry opt-in","No telemetry is emitted by this skill; all logging is local.",{"category":40,"check":162,"severity":24,"summary":163},"Precise Purpose","The skill's purpose and use cases are clearly defined, including the target artifact (contact industry) and user intent (segmentation).",{"category":40,"check":165,"severity":24,"summary":166},"Concise Frontmatter","The SKILL.md frontmatter is concise and effectively summarizes the core capability and its purpose.",{"category":44,"check":168,"severity":24,"summary":169},"Concise Body","The SKILL.md body is well-structured, with clear sections and delegation of detailed code to separate script files.",{"category":171,"check":172,"severity":24,"summary":173},"Context","Progressive Disclosure","Code examples are in separate script files, adhering to progressive disclosure.",{"category":171,"check":175,"severity":118,"summary":176},"Forked exploration","This skill is not an exploration-heavy skill and does not require forked exploration context.",{"category":22,"check":178,"severity":24,"summary":179},"Usage examples","The README and SKILL.md provide clear examples of script execution and workflow setup.",{"category":22,"check":181,"severity":24,"summary":182},"Edge cases","The documentation details potential issues like property compatibility and dropdown value matching, offering recovery steps.",{"category":103,"check":184,"severity":118,"summary":185},"Tool Fallback","The skill does not rely on external MCP tools, only the HubSpot API and standard Python libraries.",{"category":187,"check":188,"severity":24,"summary":189},"Safety","Halt on unexpected state","The 'before' state script audits data, and the workflow triggers ensure only contacts missing industry are processed.",{"category":91,"check":191,"severity":24,"summary":192},"Cross-skill coupling","The skill is self-contained and does not rely on other specific skills being loaded concurrently.",1778698467540,"This skill automates the backfilling of contact-level industry data by copying values from associated company records within a HubSpot CRM. It includes Python scripts for auditing the 'before' and 'after' states of the data and provides detailed instructions for setting up a HubSpot workflow.",[196,197,198,199,200],"Automate contact industry enrichment from company records","Utilize HubSpot workflows for data updates","Audit data before and after enrichment","Provide Python scripts for data counting and verification","Facilitate industry-based segmentation",[202,203,204,205],"Enriching data for non-contact objects (e.g., deals, tickets)","Automating the creation of new HubSpot workflows outside of this specific task","Performing data enrichment from external third-party services","Overwriting existing industry data on contact records",[207,208,209,210],"Data Enrichment","CRM Administration","Automation","Data Quality",[212,213,214,215,216],"HubSpot Marketing Hub Professional or Sales Hub Professional (for Workflows)","Company name enrichment (enrich-company-name skill) should be completed first","Access to Settings > Properties to verify/create the contact Industry property","HubSpot API access (private app token with appropriate scopes)","Python 3.10+","3.0.0","4.4.0","To enable effective industry-based segmentation for targeted marketing campaigns by ensuring contact records accurately reflect their associated company's industry.","The extension demonstrates high quality across all checks, with only a minor info finding for the lack of an explicit dry-run mode for API updates, which is common for such operations.",99,"Excellent skill for enriching contact industry data via HubSpot API and workflows.",[224,225,226,227,228,229],"hubspot","crm","data-enrichment","automation","contact-management","segmentation","global","verified",[233,234,235,236],"When needing to segment marketing campaigns by industry vertical","To improve lead scoring models that rely on firmographics","To ensure data consistency between contact and company records","After initial company name enrichment to further populate contact data",[238,239,240,241,242],"Verify contact Industry property compatibility","Audit current contact Industry data and enrichment opportunity","Build and activate a HubSpot workflow to copy company industry to contacts","Wait for workflow to process","Verify enrichment results through counts and spot-checks",{"codeQuality":244,"collectedAt":246,"documentation":247,"maintenance":250,"security":256,"testCoverage":258},{"hasLockfile":245},false,1778698452380,{"descriptionLength":248,"readmeSize":249},176,10597,{"closedIssues90d":251,"forks":252,"hasChangelog":245,"manifestVersion":253,"openIssues90d":8,"pushedAt":254,"stars":255},1,4,"1.0",1774540543000,21,{"hasNpmPackage":245,"license":257,"smitheryVerified":245},"MIT",{"hasCi":245,"hasTests":245},{"updatedAt":260},1778698467653,{"basePath":262,"githubOwner":263,"githubRepo":264,"locale":18,"slug":265,"type":266},"skills/enrich-industry","TomGranot","hubspot-admin-skills","enrich-industry","skill",{"_creationTime":268,"_id":269,"community":270,"display":271,"identity":276,"parentExtension":279,"providers":308,"relations":317,"tags":318,"workflow":319},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":272,"installMethods":273,"name":275,"sourceUrl":14},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":274},"hubspot-admin","HubSpot Admin Skills",{"basePath":277,"githubOwner":263,"githubRepo":264,"locale":18,"slug":264,"type":278},"","plugin",{"_creationTime":280,"_id":281,"community":282,"display":283,"identity":286,"providers":288,"relations":302,"tags":304,"workflow":305},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":284,"installMethods":285,"name":264,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":277,"githubOwner":263,"githubRepo":264,"locale":18,"slug":264,"type":287},"marketplace",{"evaluate":289,"extract":297},{"promptVersionExtension":290,"promptVersionScoring":218,"score":291,"tags":292,"targetMarket":230,"tier":296},"3.1.0",79,[224,225,227,293,294,295],"data-cleaning","auditing","administration","community",{"commitSha":298,"marketplace":299,"plugin":300},"HEAD",{"name":264,"pluginCount":251},{"mcpCount":8,"provider":301,"skillCount":8},"classify",{"repoId":303},"kd75kpec7arn6z2wz641vfaj8n86nab6",[295,294,227,225,293,224],{"evaluatedAt":306,"extractAt":307,"updatedAt":306},1778698158552,1778698144006,{"evaluate":309,"extract":314},{"promptVersionExtension":217,"promptVersionScoring":218,"score":221,"tags":310,"targetMarket":230,"tier":231},[224,225,295,311,227,312,294,313],"data-quality","cleanup","marketing-automation",{"commitSha":298,"license":257,"plugin":315},{"mcpCount":8,"provider":301,"skillCount":316},32,{"parentExtensionId":281,"repoId":303},[295,294,227,312,225,311,224,313],{"evaluatedAt":320,"extractAt":307,"updatedAt":320},1778698168554,{"evaluate":322,"extract":324},{"promptVersionExtension":217,"promptVersionScoring":218,"score":221,"tags":323,"targetMarket":230,"tier":231},[224,225,226,227,228,229],{"commitSha":298,"license":257},{"parentExtensionId":269,"repoId":303},{"_creationTime":327,"_id":303,"identity":328,"providers":329,"workflow":712},1778698139523.511,{"githubOwner":263,"githubRepo":264,"sourceUrl":14},{"classify":330,"discover":706,"github":709},{"commitSha":298,"extensions":331},[332,345,418,434,442,450,458,467,475,483,491,499,507,515,523,534,542,553,561,571,578,589,597,605,613,622,630,638,649,657,668,678,688,698],{"basePath":277,"description":284,"displayName":264,"installMethods":333,"rationale":334,"selectedPaths":335,"source":344,"sourceLanguage":18,"type":287},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[336,339,341],{"path":337,"priority":338},".claude-plugin/marketplace.json","mandatory",{"path":340,"priority":338},"README.md",{"path":342,"priority":343},"LICENSE","high","rule",{"basePath":277,"description":272,"displayName":274,"installMethods":346,"rationale":347,"selectedPaths":348,"source":344,"sourceLanguage":18,"type":278},{"claudeCode":274},"plugin manifest at .claude-plugin/plugin.json",[349,351,352,353,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416],{"path":350,"priority":338},".claude-plugin/plugin.json",{"path":340,"priority":338},{"path":342,"priority":343},{"path":354,"priority":355},"skills/assign-unowned-contacts/SKILL.md","medium",{"path":357,"priority":355},"skills/backfill-geo-data/SKILL.md",{"path":359,"priority":355},"skills/bounce-monitoring-workflow/SKILL.md",{"path":361,"priority":355},"skills/build-lead-scoring/SKILL.md",{"path":363,"priority":355},"skills/build-smart-lists/SKILL.md",{"path":365,"priority":355},"skills/cleanup-dashboards/SKILL.md",{"path":367,"priority":355},"skills/cleanup-deals/SKILL.md",{"path":369,"priority":355},"skills/cleanup-forms/SKILL.md",{"path":371,"priority":355},"skills/cleanup-lead-owners/SKILL.md",{"path":373,"priority":355},"skills/cleanup-lists/SKILL.md",{"path":375,"priority":355},"skills/cleanup-properties/SKILL.md",{"path":377,"priority":355},"skills/cleanup-workflows/SKILL.md",{"path":379,"priority":355},"skills/create-icp-tiers/SKILL.md",{"path":381,"priority":355},"skills/create-segment-lists/SKILL.md",{"path":383,"priority":355},"skills/delete-no-email-contacts/SKILL.md",{"path":385,"priority":355},"skills/engagement-suppression-workflow/SKILL.md",{"path":387,"priority":355},"skills/enrich-company-name/SKILL.md",{"path":389,"priority":355},"skills/enrich-industry/SKILL.md",{"path":391,"priority":355},"skills/fix-lifecycle-stages/SKILL.md",{"path":393,"priority":355},"skills/hubspot-audit/SKILL.md",{"path":395,"priority":355},"skills/hubspot-implementation-plan/SKILL.md",{"path":397,"priority":355},"skills/lifecycle-progression-workflow/SKILL.md",{"path":399,"priority":355},"skills/merge-duplicate-companies/SKILL.md",{"path":401,"priority":355},"skills/new-contact-hygiene-workflow/SKILL.md",{"path":403,"priority":355},"skills/quarterly-database-cleanup/SKILL.md",{"path":405,"priority":355},"skills/reassign-deactivated-owners/SKILL.md",{"path":407,"priority":355},"skills/review-bounced-contacts/SKILL.md",{"path":409,"priority":355},"skills/standardize-geo-values/SKILL.md",{"path":411,"priority":355},"skills/suppress-ghost-contacts/SKILL.md",{"path":413,"priority":355},"skills/suppress-global-unsubscribes/SKILL.md",{"path":415,"priority":355},"skills/suppress-hard-bounced/SKILL.md",{"path":417,"priority":355},"skills/weekly-cleanup-routine/SKILL.md",{"basePath":419,"description":420,"displayName":421,"installMethods":422,"rationale":423,"selectedPaths":424,"source":344,"sourceLanguage":18,"type":266},"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",[425,427,430,432],{"path":426,"priority":338},"SKILL.md",{"path":428,"priority":429},"scripts/after.py","low",{"path":431,"priority":429},"scripts/before.py",{"path":433,"priority":429},"scripts/execute.py",{"basePath":435,"description":436,"displayName":437,"installMethods":438,"rationale":439,"selectedPaths":440,"source":344,"sourceLanguage":18,"type":266},"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",[441],{"path":426,"priority":338},{"basePath":443,"description":444,"displayName":445,"installMethods":446,"rationale":447,"selectedPaths":448,"source":344,"sourceLanguage":18,"type":266},"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",[449],{"path":426,"priority":338},{"basePath":451,"description":452,"displayName":453,"installMethods":454,"rationale":455,"selectedPaths":456,"source":344,"sourceLanguage":18,"type":266},"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",[457],{"path":426,"priority":338},{"basePath":459,"description":460,"displayName":461,"installMethods":462,"rationale":463,"selectedPaths":464,"source":344,"sourceLanguage":18,"type":266},"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",[465,466],{"path":426,"priority":338},{"path":433,"priority":429},{"basePath":468,"description":469,"displayName":470,"installMethods":471,"rationale":472,"selectedPaths":473,"source":344,"sourceLanguage":18,"type":266},"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",[474],{"path":426,"priority":338},{"basePath":476,"description":477,"displayName":478,"installMethods":479,"rationale":480,"selectedPaths":481,"source":344,"sourceLanguage":18,"type":266},"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",[482],{"path":426,"priority":338},{"basePath":484,"description":485,"displayName":486,"installMethods":487,"rationale":488,"selectedPaths":489,"source":344,"sourceLanguage":18,"type":266},"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",[490],{"path":426,"priority":338},{"basePath":492,"description":493,"displayName":494,"installMethods":495,"rationale":496,"selectedPaths":497,"source":344,"sourceLanguage":18,"type":266},"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",[498],{"path":426,"priority":338},{"basePath":500,"description":501,"displayName":502,"installMethods":503,"rationale":504,"selectedPaths":505,"source":344,"sourceLanguage":18,"type":266},"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",[506],{"path":426,"priority":338},{"basePath":508,"description":509,"displayName":510,"installMethods":511,"rationale":512,"selectedPaths":513,"source":344,"sourceLanguage":18,"type":266},"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",[514],{"path":426,"priority":338},{"basePath":516,"description":517,"displayName":518,"installMethods":519,"rationale":520,"selectedPaths":521,"source":344,"sourceLanguage":18,"type":266},"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",[522],{"path":426,"priority":338},{"basePath":524,"description":525,"displayName":526,"installMethods":527,"rationale":528,"selectedPaths":529,"source":344,"sourceLanguage":18,"type":266},"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",[530,531,532,533],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"path":433,"priority":429},{"basePath":535,"description":536,"displayName":537,"installMethods":538,"rationale":539,"selectedPaths":540,"source":344,"sourceLanguage":18,"type":266},"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",[541],{"path":426,"priority":338},{"basePath":543,"description":544,"displayName":545,"installMethods":546,"rationale":547,"selectedPaths":548,"source":344,"sourceLanguage":18,"type":266},"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",[549,550,551,552],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"path":433,"priority":429},{"basePath":554,"description":555,"displayName":556,"installMethods":557,"rationale":558,"selectedPaths":559,"source":344,"sourceLanguage":18,"type":266},"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",[560],{"path":426,"priority":338},{"basePath":562,"description":563,"displayName":564,"installMethods":565,"rationale":566,"selectedPaths":567,"source":344,"sourceLanguage":18,"type":266},"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",[568,569,570],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"basePath":262,"description":10,"displayName":265,"installMethods":572,"rationale":573,"selectedPaths":574,"source":344,"sourceLanguage":18,"type":266},{"claudeCode":12},"SKILL.md frontmatter at skills/enrich-industry/SKILL.md",[575,576,577],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"basePath":579,"description":580,"displayName":581,"installMethods":582,"rationale":583,"selectedPaths":584,"source":344,"sourceLanguage":18,"type":266},"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",[585,586,587,588],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"path":433,"priority":429},{"basePath":590,"description":591,"displayName":592,"installMethods":593,"rationale":594,"selectedPaths":595,"source":344,"sourceLanguage":18,"type":266},"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",[596],{"path":426,"priority":338},{"basePath":598,"description":599,"displayName":600,"installMethods":601,"rationale":602,"selectedPaths":603,"source":344,"sourceLanguage":18,"type":266},"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",[604],{"path":426,"priority":338},{"basePath":606,"description":607,"displayName":608,"installMethods":609,"rationale":610,"selectedPaths":611,"source":344,"sourceLanguage":18,"type":266},"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",[612],{"path":426,"priority":338},{"basePath":614,"description":615,"displayName":616,"installMethods":617,"rationale":618,"selectedPaths":619,"source":344,"sourceLanguage":18,"type":266},"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",[620,621],{"path":426,"priority":338},{"path":431,"priority":429},{"basePath":623,"description":624,"displayName":625,"installMethods":626,"rationale":627,"selectedPaths":628,"source":344,"sourceLanguage":18,"type":266},"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",[629],{"path":426,"priority":338},{"basePath":631,"description":632,"displayName":633,"installMethods":634,"rationale":635,"selectedPaths":636,"source":344,"sourceLanguage":18,"type":266},"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",[637],{"path":426,"priority":338},{"basePath":639,"description":640,"displayName":641,"installMethods":642,"rationale":643,"selectedPaths":644,"source":344,"sourceLanguage":18,"type":266},"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",[645,646,647,648],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"path":433,"priority":429},{"basePath":650,"description":651,"displayName":652,"installMethods":653,"rationale":654,"selectedPaths":655,"source":344,"sourceLanguage":18,"type":266},"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",[656],{"path":426,"priority":338},{"basePath":658,"description":659,"displayName":660,"installMethods":661,"rationale":662,"selectedPaths":663,"source":344,"sourceLanguage":18,"type":266},"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",[664,665,666,667],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"path":433,"priority":429},{"basePath":669,"description":670,"displayName":671,"installMethods":672,"rationale":673,"selectedPaths":674,"source":344,"sourceLanguage":18,"type":266},"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",[675,676,677],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"basePath":679,"description":680,"displayName":681,"installMethods":682,"rationale":683,"selectedPaths":684,"source":344,"sourceLanguage":18,"type":266},"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",[685,686,687],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"basePath":689,"description":690,"displayName":691,"installMethods":692,"rationale":693,"selectedPaths":694,"source":344,"sourceLanguage":18,"type":266},"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",[695,696,697],{"path":426,"priority":338},{"path":428,"priority":429},{"path":431,"priority":429},{"basePath":699,"description":700,"displayName":701,"installMethods":702,"rationale":703,"selectedPaths":704,"source":344,"sourceLanguage":18,"type":266},"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",[705],{"path":426,"priority":338},{"sources":707},[708],"manual",{"closedIssues90d":251,"description":710,"forks":252,"license":257,"openIssues90d":8,"pushedAt":254,"readmeSize":249,"stars":255,"topics":711},"32 Claude Code skills for auditing, cleaning, enriching, and automating your HubSpot CRM",[],{"classifiedAt":713,"discoverAt":714,"extractAt":715,"githubAt":715,"updatedAt":713},1778698143787,1778698139523,1778698141911,[227,228,225,226,224,229],{"evaluatedAt":260,"extractAt":307,"updatedAt":260},[],[720,738,755,772,788,803],{"_creationTime":721,"_id":722,"community":723,"display":724,"identity":726,"providers":727,"relations":734,"tags":735,"workflow":736},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":607,"installMethods":725,"name":608,"sourceUrl":14},{"claudeCode":12},{"basePath":606,"githubOwner":263,"githubRepo":264,"locale":18,"slug":608,"type":266},{"evaluate":728,"extract":733},{"promptVersionExtension":217,"promptVersionScoring":218,"score":729,"tags":730,"targetMarket":230,"tier":231},100,[227,731,225,732,224],"sales","workflows",{"commitSha":298},{"parentExtensionId":269,"repoId":303},[227,225,224,731,732],{"evaluatedAt":737,"extractAt":307,"updatedAt":737},1778698526315,{"_creationTime":739,"_id":740,"community":741,"display":742,"identity":744,"providers":745,"relations":751,"tags":752,"workflow":753},1778698144006.2253,"k175q9vhdtjhmdnj5sfg0js0y186m41d",{"reviewCount":8},{"description":651,"installMethods":743,"name":652,"sourceUrl":14},{"claudeCode":12},{"basePath":650,"githubOwner":263,"githubRepo":264,"locale":18,"slug":652,"type":266},{"evaluate":746,"extract":750},{"promptVersionExtension":217,"promptVersionScoring":218,"score":747,"tags":748,"targetMarket":230,"tier":231},98,[224,225,749,228,227],"data-hygiene",{"commitSha":298},{"parentExtensionId":269,"repoId":303},[227,228,225,749,224],{"evaluatedAt":754,"extractAt":307,"updatedAt":754},1778698625452,{"_creationTime":756,"_id":757,"community":758,"display":759,"identity":761,"providers":762,"relations":768,"tags":769,"workflow":770},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":469,"installMethods":760,"name":470,"sourceUrl":14},{"claudeCode":12},{"basePath":468,"githubOwner":263,"githubRepo":264,"locale":18,"slug":470,"type":266},{"evaluate":763,"extract":767},{"promptVersionExtension":217,"promptVersionScoring":218,"score":729,"tags":764,"targetMarket":230,"tier":231},[224,225,765,766,312],"maintenance","reporting",{"commitSha":298},{"parentExtensionId":269,"repoId":303},[312,225,224,765,766],{"evaluatedAt":771,"extractAt":307,"updatedAt":771},1778698268281,{"_creationTime":773,"_id":774,"community":775,"display":776,"identity":778,"providers":779,"relations":784,"tags":785,"workflow":786},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":640,"installMethods":777,"name":641,"sourceUrl":14},{"claudeCode":12},{"basePath":639,"githubOwner":263,"githubRepo":264,"locale":18,"slug":641,"type":266},{"evaluate":780,"extract":783},{"promptVersionExtension":217,"promptVersionScoring":218,"score":221,"tags":781,"targetMarket":230,"tier":231},[224,225,227,782,295],"data-management",{"commitSha":298},{"parentExtensionId":269,"repoId":303},[295,227,225,782,224],{"evaluatedAt":787,"extractAt":307,"updatedAt":787},1778698590503,{"_creationTime":789,"_id":790,"community":791,"display":792,"identity":794,"providers":795,"relations":799,"tags":800,"workflow":801},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":700,"installMethods":793,"name":701,"sourceUrl":14},{"claudeCode":12},{"basePath":699,"githubOwner":263,"githubRepo":264,"locale":18,"slug":701,"type":266},{"evaluate":796,"extract":798},{"promptVersionExtension":217,"promptVersionScoring":218,"score":747,"tags":797,"targetMarket":230,"tier":231},[224,225,765,227,766],{"commitSha":298},{"parentExtensionId":269,"repoId":303},[227,225,224,765,766],{"evaluatedAt":802,"extractAt":307,"updatedAt":802},1778698703534,{"_creationTime":804,"_id":805,"community":806,"display":807,"identity":809,"providers":810,"relations":815,"tags":816,"workflow":817},1778698144006.2224,"k174p9a47572wf9wcfggbjyrm586m3rq",{"reviewCount":8},{"description":544,"installMethods":808,"name":545,"sourceUrl":14},{"claudeCode":12},{"basePath":543,"githubOwner":263,"githubRepo":264,"locale":18,"slug":545,"type":266},{"evaluate":811,"extract":814},{"promptVersionExtension":217,"promptVersionScoring":218,"score":747,"tags":812,"targetMarket":230,"tier":231},[224,225,749,227,813],"python",{"commitSha":298},{"parentExtensionId":269,"repoId":303},[227,225,749,224,813],{"evaluatedAt":818,"extractAt":307,"updatedAt":818},1778698421190]