$ man clay-wiki/account-first-enrichment

Core Conceptsintermediate

Account-First Enrichment and Credit Efficiency

Always split to an account table — this is THE pattern

Clay tool avatar

The Foundational Pattern

Account-first enrichment is the single most important architectural pattern in Clay. The concept is simple: never enrich company-level data on a contact table. Always split to an account table, deduplicate by domain, enrich at the account level, then write back to contacts via lookup columns. One row per company. Enrich once. Every contact at that company pulls the data through a lookup. This is THE pattern. Everything else builds on it.
PATTERN

Why Account-First Saves Credits

Without account-first: you import 500 contacts. 50 of them work at Microsoft. Your firmographic enrichment runs 50 times on Microsoft — same company, same data, 50x the credits. With account-first: you split to an account table, dedupe by domain, and now Microsoft is one row. Enrich once. The 50 contacts pull Microsoft's data through a lookup column. You just saved 49 enrichment calls on one company alone. Across a table of thousands, the savings compound. This is not an optimization — it's the baseline. If you're not doing this, you're burning money.
PATTERN

The Split Pattern Step by Step

1. Source contacts from whatever input — web reveal, CSV import, Apollo, LinkedIn Sales Navigator. 2. Write contacts to a new table — the account table. Map the domain column. 3. Deduplicate the account table by domain. One row per company. 4. Enrich at the account level — firmographics, tech stack, ICP scoring, industry classification. 5. Back on the contact table, add a lookup column that matches on domain. 6. The lookup pulls company-level data (ICP score, industry, employee count, service fit) from the account table into the contact row. 7. Run contact-level enrichment (single-provider email lookup, persona qualification) on the contact table only. The account table is your research table. The contact table is your outreach table. They're connected by domain. That's the architecture.
PRO TIP

Domain Is the Universal Join Key

Company names are messy. "Acme Inc", "Acme, Inc.", "ACME" — three strings for the same company. Domains are unique. acme.com is acme.com regardless of how the company name was entered. Always deduplicate on domain, not company name. Always join on domain, not company name. Domain is the universal key that connects accounts to contacts, Clay to your CRM, and your CRM to your outreach tools. Extract it early. Use it everywhere.
ANTI-PATTERN

When to Skip the Split

Almost never. The only time you can skip the account-contact split is when you have fewer than 50 contacts, all from different companies, and you need results in 10 minutes. That's a prototype, not a production workflow. For anything that will run repeatedly, anything over 100 contacts, or anything that will sync to a CRM — split. The upfront cost of creating two tables is 5 minutes. The cost of not splitting is wasted credits, duplicate CRM records, and an unscalable mess that you'll have to rebuild anyway.

related entries
Data Storage, Batching, and Rate-Limit-Safe EnrichmentUnderstanding the Credit SystemProspecting Company CardsEnterprise Account Guardrails
← clay wikicontent wiki →
ShawnOS.ai|theGTMOS.ai|theContentOS.ai