clay-dedupe-and-merge
Deduplicate and merge people or company rows across Clay tables without losing enrichment or double counting a person.
Skill by mambalabsdev
Chalk Labs
Need help deploying clay-dedupe-and-merge?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mambalabsdev-clay-dedupe-and-merge
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/clay-dedupe-and-merge
What's inside
- Skill name
clay-dedupe-and-merge- Description
- Deduplicate and merge people or company rows across Clay tables without losing enrichment or double counting a person. Use when merging lists, importing a second source into an existing table, deduping a people pool, or deciding which record wins on a conflict.
- License
- MIT
- Compatibility
- Claude Code, Claude Desktop, Codex CLI, Cursor, Gemini CLI, and other agents that read SKILL.md. Live data steps need only what the Requirements section of the skill lists.
- Metadata
- tags: agency_delivery, clay_builds, clay_operator · title: Clay Dedupe And Merge · version: 2.1.0 · category: clay-builds · keywords: clay, merge two clay lists, dedupe my people pool, import a second source into this table, which record wins, am i double counting people · requirements: Needs a Clay workspace.
- Instructions
- 95 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (8)
- LICENSE
- SKILL.md
- cases.json · evals/
- listing.json · listing/
- logo.png · listing/
- logo.svg · listing/
- check-output.py · scripts/
- output-contract.json · scripts/
SKILL.md (first lines)
# Clay Dedupe And Merge ## What this does Merging two lists is easy. Merging them without losing the enrichment already paid for, and without counting the same person twice under two email addresses, is the part that goes wrong. This skill sets the match key, the precedence rule, and the audit that proves the merge did not silently drop rows. ## Requirements Check these before you run the skill. Nothing outside this table is needed. | Requirement | Needed | Used for | What it costs you | | --- | --- | --- | --- | | A Clay workspace | Required | The tables being merged | Billed by Clay in credits on your own plan. | **Missing a required item?** Stop before the live steps and tell the user which item is missing and what it is for. Do not run the step without it and do not present an empty result as an answer. Keys are read from the environment at run time and are never written into a file, a prompt or the output. ## When to use it - merge two Clay lists - dedupe my people pool - import a second source into this table - which record wins - am I double counting people ## Inputs - **tables**: the tables or lists being merged and their row counts - **key**: candidate match keys available on both sides - **precedence**: which source is more trusted, and on which fields ## Shared context this skill reads Before doing anything else, read whichever of these exist at the project root and use them instead of asking the user to repeat themselves: - `ICP.md` If none exist, do the work from what the user gives you, then offer to write the missing file so the next skill in the pack starts warmer. ## Tool connection This skill needs no live data tool. It works from the files, exports and answers you give it, so it runs the same in any agent with no setup. ## Method 1. Pick the match key by uniqueness on your own data, not by intuition. Email is unique per address, not per person. LinkedIn URL is unique per person. Domain is unique per company only after normalization. 2. Normalize before matching: lowercase, strip protocol and trailing slash from URLs, strip the www prefix, strip plus addressing from emails. 3. Count rows before the merge on both sides, and count distinct keys. The gap between them is the internal duplication you are about to inherit. 4. Set field level precedence, not record level. The newer record usually wins on job title and the older one usually wins on verified email. 5. Preserve enrichment. A field that is populated on one side and blank on the other takes the populated value regardless of precedence. 6. After the merge, count again. Rows in, rows out, distinct keys, and rows where a populated field became blank. That last count must be zero. 7. Approval stop. Before merging or deleting any row in a live table, show the user exactly what will happen and wait for an explicit yes. Nothing live changes without it. 8. Check the output with `scripts/check-output.py` before you return it. ## Approval stop Stop and ask before merging or deleting any row in a live table. Show exactly what will be sent or written, to whom or to which records, and how many. Proceed only on an explicit yes from the user in this conversation. A yes for one batch does not cover the next one. ## Output The match key with its uniqueness measured, the normalization steps, the precedence table by field, and the before and after audit counts. ## Check the output before you return it Save the output to a file and run `python3 scripts/check-output.py <file>`. The contract it checks is `scripts/output-contract.json`. - Exit 0, `COMPLETE`: return the output. - Exit 2, `INCOMPLETE`: do not present the output as finished. Fill what you can, run the check again, and if parts stay missing, return the output under the heading `Incomplete` with every reason the check printed. ## Quality bar - Match key uniqueness is measured on real rows, not assumed - Normalization is applied to both sides identically - Precedence is set per field - The post merge audit includes a count of fields that went from populated to blank, and that count is zero ## Related skills - `clay-build-gate` - `crm-dedupe-plan` - `people-pool-builder` Ships in the **clay-operator**, **agency-delivery** packs.
From mambalabsdev/mamba-labs-skills, MIT.
More from mambalabsdev/mamba-labs-skills
- 0.570score
agent-readability-audit
mambalabsdev
Check whether a website can be read and used by AI agents, and fix what blocks them.
SkillAFreshness: AClaude Code +9 - 0.570score
ai-adoption-signal-reader
mambalabsdev
Detect whether a company has shipped AI features or adopted AI vendors, and read that as a budget and priority signal.
SkillAFreshness: AClaude Code +9 - 0.570score
bounce-and-catchall-policy
mambalabsdev
Decide what to do with catch all domains, role addresses and soft bounces before they cost you a domain.
SkillAFreshness: AClaude Code +9 - 0.570score
cash-runway-snapshot
mambalabsdev
Work out how many months of cash are left and what actually changes it.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-actor-column-wiring
mambalabsdev
Wire an external actor or API into a Clay column so the types survive the round trip.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-conditional-gates
mambalabsdev
Write the run conditions that stop expensive Clay columns from firing on rows that will never qualify.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-cost-audit
mambalabsdev
Price a Clay table before it runs and find the columns that are burning credits for no return.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-credit-forecast
mambalabsdev
Forecast how far a Clay credit balance goes across a month of planned builds, and say which build to cut when it does not reach.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-failure-triage
mambalabsdev
Diagnose a Clay column that returns null, zero rows, or the wrong shape, by symptom rather than by guesswork.
SkillAFreshness: AClaude Code +9 - 0.570score
company-identity-resolution
mambalabsdev
Resolve a messy company name to the right domain and canonical record, and say how confident the match is.
SkillAFreshness: AClaude Code +9 - 0.570score
comparison-page-builder
mambalabsdev
Write a comparison or alternatives page that a reader trusts and a competitor cannot get taken down.
SkillAFreshness: AClaude Code +9 - 0.570score
contact-classification
mambalabsdev
Classify contacts by department, seniority and role from their job title, and route them to the right persona.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 12, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 2.1.0
- License
- MIT
- Website
- mambabuilt.com/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mambalabsdev
- 0.570score
ai-adoption-signal-reader
mambalabsdev
Detect whether a company has shipped AI features or adopted AI vendors, and read that as a budget and priority signal.
SkillAFreshness: AClaude Code +9 - 0.570score
bounce-and-catchall-policy
mambalabsdev
Decide what to do with catch all domains, role addresses and soft bounces before they cost you a domain.
SkillAFreshness: AClaude Code +9 - 0.570score
cash-runway-snapshot
mambalabsdev
Work out how many months of cash are left and what actually changes it.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-actor-column-wiring
mambalabsdev
Wire an external actor or API into a Clay column so the types survive the round trip.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-conditional-gates
mambalabsdev
Write the run conditions that stop expensive Clay columns from firing on rows that will never qualify.
SkillAFreshness: AClaude Code +9 - 0.570score
agent-readability-audit
mambalabsdev
Check whether a website can be read and used by AI agents, and fix what blocks them.
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get clay-dedupe-and-merge running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
clay-dedupe-and-merge skill. Agent Mart. https://agentmart.dev/skills/mambalabsdev-clay-dedupe-and-merge (last updated 2026-10-24)