Agent skill
oxygen-dedupe
Review duplicate companies, people and source events before ingestion while preserving provenance and holding uncertain identity matches.
Filed under CRM and RevOps.
From timscheuerai/gtm-architecture-template · 51 skill entries · 13 · pushed 2026-09-17
What it does when it runs
Review duplicate companies, people and source events before ingestion while preserving provenance and holding uncertain identity matches.
Automated analysis of the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/timscheuerai/gtm-architecture-template.git /tmp/gtm-architecture-template git -C /tmp/gtm-architecture-template sparse-checkout set ".agents/skills/oxygen-dedupe" mkdir -p ~/.claude/skills/oxygen-dedupe cp -R "/tmp/gtm-architecture-template/.agents/skills/oxygen-dedupe/." ~/.claude/skills/oxygen-dedupe/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from timscheuerai/gtm-architecture-template/blob/2c312c9398064ad3730c786647293458cb89632c/.agents/skills/oxygen-dedupe/SKILL.md, which is licensed MIT (repository). 193 words, 1 heading.
Resolve identity before merging
Read the runtime contract. Establish the record type and destination before choosing a key.
- Companies: verified canonical domain or provider/company LinkedIn identity. Subsidiaries and shared domains require a deliberate rule.
- People: canonical profile URL or stable provider person ID, reconciled with current employer. A name alone is insufficient.
- Signals: provider plus stable event ID; retain separate events for one account.
- Outcomes: event ID plus enrollment/cohort identity, as required by
analyse_results.
Inspect the current schema and bounded existing identities. Normalise URL scheme, host, trailing slash and query parameters without changing the actual identity path. Retain original values. Missing keys go to a review queue; never collapse all nulls into one record.
Produce insert / existing / possible_match / invalid decisions with the matched ID and reason. Repeated signals enrich provenance; they do not create repeated people. Conflicting non-null fields need a field-level resolution rule.
Preview counts and collisions before an authorized upsert. Re-query an ambiguous write result before retrying. For a repeat import, verify it creates no extra identities while still preserving new signals. Do not delete records or merge people solely because names match.
Need help setting it up?
This page tells you what oxygen-dedupe does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.