CRM Data Cleanup
OneWave-AI/claude-skills
Finds duplicate and junk records in a CRM CSV export with fuzzy matching, normalizes fields and writes a reviewable merge plan plus import-ready files without touching the live CRM.
Deduplicate, normalize, and enrich CRM contacts and companies.
$ npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills crm-data-cleaner --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/crm-data-cleaner .claude/skills/crm-data-cleaner && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "crm-data-cleaner" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/crm-data-cleaner into .claude/skills/crm-data-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crm-data-cleaner", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/crm-data-cleanerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills crm-data-cleaner --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/crm-data-cleaner .agents/skills/crm-data-cleaner && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "crm-data-cleaner" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/crm-data-cleaner into .agents/skills/crm-data-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crm-data-cleaner", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills crm-data-cleaner --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/crm-data-cleaner .cursor/skills/crm-data-cleaner && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "crm-data-cleaner" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/crm-data-cleaner into .cursor/skills/crm-data-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crm-data-cleaner", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/crm-data-cleaner--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills crm-data-cleaner --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/crm-data-cleaner .gemini/skills/crm-data-cleaner && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "crm-data-cleaner" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/crm-data-cleaner into .gemini/skills/crm-data-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crm-data-cleaner", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills crm-data-cleanerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/crm-data-cleaner .github/skills/crm-data-cleaner && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "crm-data-cleaner" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/crm-data-cleaner into .github/skills/crm-data-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crm-data-cleaner", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills crm-data-cleaner --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/crm-data-cleaner .opencode/skills/crm-data-cleaner && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "crm-data-cleaner" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/crm-data-cleaner into .opencode/skills/crm-data-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crm-data-cleaner", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
crm-data-cleanerDeduplicate, normalize, and enrich CRM contacts and companies.
CRM Data Cleaner is an agent skill from LeoYeAI/openclaw-master-skills. Deduplicate, normalize, and enrich CRM contacts and companies. Use when a user needs to clean CRM data, find duplicate contacts, standardize phone numbers or emails, merge duplicate records, audit data quality, or enrich contacts with external sources like Clearbit or Apollo. Works with HubSpot, Salesforce, Pipedrive, or any CRM with CSV export. Instruction-only skill — no scripts or code execution. All operations are performed via CRM platform APIs or CSV export/import workflows.
Its SKILL.md is about 7.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `_meta.json`).
It sits in Sales & Support, covering CRM management and Data cleaning. It works with HubSpot and Salesforce. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python, javascript, apex and sql).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.hubapi.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CRM Data Cleaner loads about 7.3k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 2,304 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 2,304 words, ~7,313 tokens.
.claude/skills/crm-data-cleaner/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Clean, accurate CRM data is the foundation of effective sales and marketing operations. Poor data quality costs businesses an average of $3.1 million annually through wasted time, missed opportunities, and ineffective campaigns. This skill provides comprehensive frameworks, tools, and automation strategies to maintain pristine contact and company data across all major CRM platforms.
This guide covers the three pillars of CRM data hygiene: Deduplication (removing duplicate records), Normalization (standardizing data formats), and Enrichment (filling missing information with reliable external sources).
Duplicate Records (30-40% of databases)
Inconsistent Formatting
Missing Information
Outdated Information
Sales Productivity Loss
Marketing Campaign Inefficiency
Customer Experience Issues
Completeness Score
Accuracy Score
Consistency Score
Uniqueness Score
Exact Duplicates
Near Duplicates
Company Duplicates
Household/Account Duplicates
Email-Based Matching (Most Reliable)
Match Criteria:
- Exact email match = 100% duplicate probability
- Domain + similar names = 85% probability
- Multiple emails for same person = merge candidatesPhone-Based Matching (Secondary)
Match Criteria:
- Exact phone match + similar name = 90% probability
- Same phone, different names = investigate
- Multiple formats of same number = normalize firstName + Company Matching (Fuzzy)
Match Criteria:
- Exact name + exact company = 95% probability
- Similar name + exact company = 80% probability
- Exact name + similar company = 70% probabilityLevenshtein Distance
Soundex Matching
Token Matching
High-Confidence Matches (90%+ probability)
Medium-Confidence Matches (60-89% probability)
Low-Confidence Matches (40-59% probability)
Review Queue Prioritization
Review Criteria Checklist
Pre-Merge Validation
Field Merge Rules
Post-Merge Cleanup
Native Duplicate Management
Custom Duplicate Rules
Email + Company Domain matching
Name similarity + Phone matching
LinkedIn URL exact matching
Custom property combinationsAPI-Based Deduplication
# Example HubSpot duplicate detection
import requests
def find_hubspot_duplicates(api_key, batch_size=100):
url = f"https://api.hubapi.com/contacts/v1/lists/all/contacts/all"
params = {
'hapikey': api_key,
'count': batch_size,
'property': ['email', 'firstname', 'lastname', 'company']
}
# Implementation details in scripts/Duplicate Rules Setup
Third-Party Tools
Manual Duplicate Detection
North American Numbers
Input Variations:
- (555) 123-4567
- 555-123-4567
- 555.123.4567
- +1 555 123 4567
- 5551234567
Standardized Output:
- Display: +1 (555) 123-4567
- Storage: +15551234567
- Search: 15551234567International Numbers
Input Variations:
- +44 20 7946 0958 (UK)
- 020 7946 0958 (UK local)
- +49 30 12345678 (Germany)
- 030-12345678 (Germany local)
Standardized Output:
- Display: +44 20 7946 0958
- Storage: +442079460958Format Validation
Quality Indicators
Case Normalization
Input: John.Smith@COMPANY.COM
Output: john.smith@company.comDomain Standardization
Common Variations:
- gmail.com vs googlemail.com → gmail.com
- hotmail.com vs live.com vs outlook.com → outlook.com
- yahoo.com vs ymail.com → yahoo.comPlus Addressing Removal
Input: john.smith+newsletter@gmail.com
Output: john.smith@gmail.comDot Normalization (Gmail)
Input: j.o.h.n.s.m.i.t.h@gmail.com
Output: johnsmith@gmail.comSyntax Validation (Level 1)
Domain Validation (Level 2)
Mailbox Validation (Level 3)
Name Case Normalization
Input Variations:
- JOHN SMITH
- john smith
- John SMITH
- jOHN sMITH
Standardized Output:
- John SmithName Component Parsing
Input: "Dr. John Michael Smith Jr."
Parsed Components:
- Title: Dr.
- First Name: John
- Middle Name: Michael
- Last Name: Smith
- Suffix: Jr.Cultural Name Considerations
Legal Entity Normalization
Input Variations:
- Apple Inc.
- Apple Incorporated
- Apple, Inc
- Apple Computer Inc.
Standardized Output:
- Apple Inc.Common Abbreviations
Standard Mappings:
- Corp → Corporation
- Co → Company
- Ltd → Limited
- LLC → Limited Liability Company
- LP → Limited PartnershipDBA (Doing Business As) Handling
Primary: Microsoft Corporation
DBA: Microsoft, MSFT
Subsidiaries: GitHub, LinkedInStreet Address Formatting
Input Variations:
- 123 Main St.
- 123 Main Street
- 123 MAIN ST
- 123 main st
Standardized Output:
- 123 Main StreetState/Province Normalization
US States:
- California → CA
- New York → NY
- Texas → TX
Canadian Provinces:
- Ontario → ON
- British Columbia → BC
- Quebec → QCPostal Code Formatting
US ZIP Codes:
- 12345 → 12345
- 12345-6789 → 12345-6789
- 123456789 → 12345-6789
Canadian Postal Codes:
- k1a0a6 → K1A 0A6
- K1A0A6 → K1A 0A6United Kingdom Addresses
Standard Format:
[Building Number] [Street Name]
[District/Area]
[Town/City]
[County] [Postcode]
[Country]European Address Formats
Seniority Level Mapping
C-Level Titles:
- CEO, Chief Executive Officer
- CTO, Chief Technology Officer
- CMO, Chief Marketing Officer
- CFO, Chief Financial Officer
VP Level Titles:
- VP, Vice President
- SVP, Senior Vice President
- EVP, Executive Vice President
Director Level Titles:
- Director, Dir
- Senior Director, Sr. Director
- Executive Director, Exec DirectorFunctional Area Mapping
Marketing Titles:
- Marketing Manager → Marketing
- Brand Manager → Marketing
- Content Manager → Marketing
- Digital Marketing Specialist → Marketing
Sales Titles:
- Sales Representative → Sales
- Account Manager → Sales
- Business Development → Sales
- Sales Engineer → SalesIndustry-Specific Normalization
Social Media Platforms
Public Databases
Web Scraping Sources
Comprehensive B2B Platforms
ZoomInfo (Premium)
Apollo (Mid-Range)
Clearbit (Developer-Focused)
Hunter (Email-Focused)
Technographic Data
Financial Data
Industry-Specific Data
Missing Data Analysis
-- Example missing data analysis
SELECT
COUNT(*) as total_contacts,
COUNT(phone) as has_phone,
COUNT(company) as has_company,
COUNT(job_title) as has_title,
(COUNT(*) - COUNT(phone)) as missing_phone,
(COUNT(*) - COUNT(company)) as missing_company
FROM contacts;Enrichment Priority Matrix
Data Preparation
Enrichment Execution
Data Validation
Integration Back to CRM
// Example real-time enrichment on form submit
document.getElementById('leadForm').addEventListener('submit', async function(e) {
const email = document.getElementById('email').value;
const company = document.getElementById('company').value;
// Enrich contact data
const enrichedData = await enrichContact(email, company);
// Update hidden form fields
updateFormFields(enrichedData);
});Verification Metrics
Data Decay Monitoring
Source Performance Comparison
Data Quality Command Center
Property Settings for Data Quality
Workflow Automation
Trigger: Contact is created or updated
Condition: Email domain contains common typos
Action: Flag for manual review + normalize emailThird-Party Apps
Custom Development
// HubSpot API example for bulk data cleaning
const hubspot = require('@hubspot/api-client');
async function cleanContactData(contacts) {
const hubspotClient = new hubspot.Client({ apiKey: API_KEY });
const cleanedContacts = contacts.map(contact => ({
id: contact.id,
properties: {
phone: normalizePhone(contact.properties.phone),
email: normalizeEmail(contact.properties.email),
company: normalizeCompanyName(contact.properties.company)
}
}));
return await hubspotClient.crm.contacts.batchApi.update({
inputs: cleanedContacts
});
}Duplicate Management
Data Validation Rules
// Example validation rule for phone format
REGEX(Phone, "^\\+?1?[2-9]\\d{2}[2-9]\\d{2}\\d{4}$")Flow-Based Automation
Paid Solutions
Custom Apex Solutions
// Custom Apex for email normalization
public class EmailNormalizer {
public static String normalizeEmail(String email) {
if (String.isBlank(email)) return email;
return email.toLowerCase().trim();
}
}Smart Contact Data
Custom Fields and Validation
Automation Features
Real-Time Validation
Scheduled Batch Processing
Event-Triggered Cleaning
Contact Quality Scoring
def calculate_contact_quality_score(contact):
score = 0
# Completeness (40 points)
if contact.email: score += 15
if contact.phone: score += 10
if contact.company: score += 10
if contact.job_title: score += 5
# Accuracy (40 points)
if is_valid_email(contact.email): score += 20
if is_valid_phone(contact.phone): score += 20
# Freshness (20 points)
days_since_update = (datetime.now() - contact.last_modified).days
if days_since_update < 30: score += 20
elif days_since_update < 90: score += 10
return min(score, 100)Company Quality Scoring
Data Quality Metrics
Trend Analysis
Alert Thresholds
Executive Summary Dashboard
Operational Dashboard
Detailed Analysis Reports
Inbound Data Processing
External Source → Validation → Normalization → Deduplication → Enrichment → CRMOutbound Data Synchronization
CRM → Clean Data → External Systems (Email, Analytics, etc.)Real-Time vs Batch Processing
Data Owner (Executive Level)
Data Steward (Operational Level)
Data Users (Sales/Marketing Teams)
Data Entry Standards
Contact Creation Requirements:
- Email address (validated)
- Company name (standardized)
- Job title (normalized)
- Phone number (formatted)
- Source attributionUpdate Procedures
Retention and Archival
Basic Data Hygiene Training
Advanced Training Topics
Ongoing Education
Standard Operating Procedures
Troubleshooting Guides
GDPR Considerations
CCPA Requirements
Access Controls
Data Protection
Quality Score Prediction
Duplicate Detection ML
Company Name Matching
Job Title Standardization
Smart Assignment Rules
def assign_data_cleaning_task(record, quality_issues):
if record.value_tier == 'enterprise':
return 'manual_review_queue'
elif len(quality_issues) > 3:
return 'bulk_processing_queue'
elif 'duplicate' in quality_issues:
return 'dedup_automation_queue'
else:
return 'standard_cleaning_queue'Priority-Based Processing
Real-Time Processing
Batch Processing
Bidirectional Sync
Conflict Resolution
RESTful API Design
# Example API endpoint for data cleaning
@app.route('/api/v1/contacts/clean', methods=['POST'])
def clean_contact_data():
data = request.get_json()
# Validate input
if not validate_input(data):
return {'error': 'Invalid input'}, 400
# Process cleaning
cleaned_data = {
'email': normalize_email(data.get('email')),
'phone': normalize_phone(data.get('phone')),
'company': normalize_company(data.get('company'))
}
return {'cleaned_data': cleaned_data}, 200This comprehensive CRM data cleaning skill provides the foundation for maintaining high-quality customer and prospect data across all major platforms. Implementation of these strategies will dramatically improve sales productivity, marketing effectiveness, and overall customer experience while reducing operational overhead and compliance risk.
© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/crm-data-cleaner of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
CRM Data Cleaner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CRM Data Cleaner this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~7.3k | Automated safety check: Pass | MIT | |
| CRM Data CleanupOneWave-AI/claude-skills | 336 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Google Maps Exportgmapsscraper/google-maps-agent-skills | 132 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Pipeline Reviewgooseworks-ai/goose-skills | 1.2k | 1 repos | ~6.9k | Automated safety check: Pass | MIT | |
| Hubspot Bulk Migrationjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~3.9k | Automated safety check: Pass | MIT | |
| CRM Integrationmanojbajaj95/claude-gtm-plugin | 105 | — | ~3.8k | Automated safety check: Pass | MIT |
OneWave-AI/claude-skills
Finds duplicate and junk records in a CRM CSV export with fuzzy matching, normalizes fields and writes a reviewable merge plan plus import-ready files without touching the live CRM.
gmapsscraper/google-maps-agent-skills
Export Google Maps business data to CSV, JSON, or CRM format (HubSpot, Pipedrive, Salesforce).
gooseworks-ai/goose-skills
Pipeline analysis composite. An agent skill from gooseworks-ai/goose-skills.
jeremylongshore/tons-of-skills-marketplace
Bulk-migrate CRM data into HubSpot from Salesforce, Pipedrive, or Copper — or export off HubSpot — with field mapping, ID continuity, association re-linking, dedup safety, rate-limit budgeting, and…
manojbajaj95/claude-gtm-plugin
CRM integration patterns for Close CRM, HubSpot, and Salesforce.
magnus919/agent-skills
Operate HubSpot CRM from a terminal or agent: list and search contact records, view deal pipeline stages, and — with explicit confirmation — move deals between stages, backed by a bundled crm-cli…
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
Deduplicate, normalize, and enrich CRM contacts and companies. CRM Data Cleaner is an agent skill from LeoYeAI/openclaw-master-skills. Deduplicate, normalize, and enrich CRM contacts and companies.
CRM Data Cleaner fits situations like: A user needs to clean CRM data; find duplicate contacts; standardize phone numbers; merge duplicate records.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a claude-code`. Or copy the skill folder (skills/crm-data-cleaner in LeoYeAI/openclaw-master-skills) into .claude/skills/crm-data-cleaner in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a codex`. Or copy the skill folder (skills/crm-data-cleaner in LeoYeAI/openclaw-master-skills) into .agents/skills/crm-data-cleaner in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill crm-data-cleaner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/crm-data-cleaner, .gemini/skills/crm-data-cleaner, .github/skills/crm-data-cleaner and .opencode/skills/crm-data-cleaner in your project.
Going by SKILL.md and its folder, CRM Data Cleaner needs credentials named API_KEY. Our summary lists: Python 3; A credential in HUBSPOT_ACCESS_TOKEN; A credential in CLEARBIT_API_KEY.
SKILL.md names 1 domain. In commands or code: api.hubapi.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CRM Data Cleaner is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.3k tokens (SKILL.md is roughly 29k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with CRM Data Cleaner: CRM Data Cleanup (OneWave-AI/claude-skills, 336 stars), Google Maps Export (gmapsscraper/google-maps-agent-skills, 132 stars), Pipeline Review (gooseworks-ai/goose-skills, 1.2k stars) and Hubspot Bulk Migration (jeremylongshore/tons-of-skills-marketplace, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.