Skip to content
Agentmart
Submit a tool

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

IndexedMIT
Write a review

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.

Book a call

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.

We use your email only for this newsletter. Privacy

About

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.

No 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

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from mambalabsdev

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.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying clay-dedupe-and-merge?

CallGet help
Cite this page

clay-dedupe-and-merge skill. Agent Mart. https://agentmart.dev/skills/mambalabsdev-clay-dedupe-and-merge (last updated 2026-10-24)