All notes
Tools 4 June 2026 7 min read

How to run all three ABM tiers from a single Clay table

Clay bridges raw data and hyper-personalized outbound through waterfall enrichment and AI scraping. Here is the exact table architecture, prompt logic, and workflow for 1:Many, 1:Few, and 1:1 ABM from one platform.

ABM programs break at execution. You agree on the tiering model, select the accounts, and then the workflow falls apart between a spreadsheet, three data vendors, a copywriter, and a Salesforce sync. The data misses the message. The message misses the right person.

Clay connects enrichment logic, AI models, and activation channels into a single auditable workflow. One table runs all three ABM tiers: programmatic volume at the top, segment-specific messaging in the middle, bespoke account intelligence at the bottom. You rebuild nothing when moving between tiers.

Waterfall enrichment: provider ordering determines your match rate

Waterfall enrichment queries multiple data providers sequentially, stopping on the first valid result for a given field. You pay only for successful matches, and coverage climbs because no single provider holds complete data on every contact or company.

Provider ordering matters more than provider count. Put your highest-accuracy source first and your highest-coverage source last. A contact email waterfall looks like: Apollo → Clearbit → Dropcontact → Prospeo → Hunter. Apollo covers startups well. Clearbit fills in mid-market. Dropcontact and Prospeo catch European and SMB contacts that American-first databases miss. Hunter pattern-matches inbox formats as a last resort.

Clay runs this with conditional columns. Each column checks whether the previous column has a value before running. If apollo_email is not empty, clearbit_email does not run. Credit burn stays proportional to actual data gaps.

On a well-structured waterfall, you hit 70–80% valid email match on cold lists. Apollo alone lands at 40–55% on the same list. At 40–55% match rate you burn your sending reputation on bounces before the campaign builds momentum.

The 1:Many table: four stages for programmatic ABM at volume

At the 1:Many tier, you work with 2,000 to 10,000 accounts. Personalization does not need to be deep; it needs to be accurate enough that the message does not read as generic.

Stage one: intake. Import your seed list. Domains and personas from Apollo, ZoomInfo, or a CRM export. No enrichment columns here, just the raw identifiers. Keep intake tables clean and untouched so they stay reusable.

Stage two: waterfall contact enrichment. Run the provider stack above to find verified emails and direct dials for your target persona at each account. Use Clay’s is_valid_email integration (ZeroBounce or NeverBounce) as a final column before export. A 2% bounce rate is where most sending tools start flagging your domain; waterfall enrichment combined with verification keeps you well below it.

Stage three: firmographic normalization. Company names from bulk data exports are dirty. “ACME Corp, Inc. (US Division)” needs to become “ACME” before it goes into a subject line. Use a Claude prompt in Clay: “Return the clean, commonly used version of this company name with no legal suffixes, country codes, or punctuation: {{company_name}}.” Run the same pass on industry classification. Standard industry codes are useless at this tier; “Information Technology” spans DevOps tooling, consumer apps, and managed service providers. Scrape each company’s homepage and run a classification prompt: “Categorize this company into exactly one of: [DevOps Tool / HR Tech / FinTech / Cybersecurity / EdTech / eCommerce / Other]. Return the category only.” You get a clean segment label to use as a dynamic variable in your sequence.

Stage four: AI opening line. Scrape the company homepage. Feed it to Claude with: “Write a single sentence (max 15 words) describing what this company does, written as if you are addressing their VP of Marketing. No superlatives.” That sentence becomes your {{company_summary}} token. Your email opener becomes: “Noticed {{company_name}} is {{company_summary}} — wanted to share how teams in the {{industry_segment}} space are solving…”

The personalization is shallow by design. Accurate and scalable, and enough to pass the first-sentence test: the recipient reads and believes you know who they are.

The 1:Few table: three signals that define a micro-segment

At the 1:Few tier, you target 200 to 800 accounts united by a shared trigger, technology, or strategic condition. The message lands because it speaks to a specific problem that cluster is living with right now.

Tech stack signals. Clay integrates with BuiltWith and Wappalyzer to return the technology fingerprint of any domain. Filter your list by specific tools: companies running HubSpot with no marketing automation layer, or Salesforce orgs with a Gong integration but no revenue intelligence dashboard. The segment becomes: “companies using [Tool A] but not [Tool B],” and the message becomes: “Most teams using [Tool A] eventually hit [specific limitation]. Here is how they solve it without replacing the stack.”

Job board scraping. Open headcount signals intent. A company posting for a Director of Demand Gen signals a gap or a strategic shift; both are buying triggers. Clay scrapes careers pages directly or queries job APIs (PredictLeads, Google Jobs via API). Stop at the job title and the signal is weak. Scrape the full job description and run an AI extraction: “From this job description, extract: (1) any specific tools or platforms mentioned by name, (2) any migration or transition the role is expected to lead, (3) the primary KPI this hire will own. Return as JSON.” Your message to the VP of Engineering shifts from “saw you’re hiring a Data Engineer” to “saw you’re bringing on a Data Engineer to lead the Oracle to Snowflake migration. Pipelines break during that specific transition for three reasons…”

Funding and news triggers. Clay’s Crunchbase integration returns funding rounds, round size, lead investor, and announcement date. Combine this with a Google News scrape via Clay’s HTTP request column: https://news.google.com/search?q={{company_name}}+site:techcrunch.com OR site:businesswire.com returns recent press coverage you can summarize with an AI column. Fresh funding plus active hiring plus a tech migration is a cluster worth activating the same week the signal appears.

Build the 1:Few table once with dynamic columns that pull the signal type as a parameter. Repointing the same table at a new segment cluster takes an afternoon.

The 1:1 table: building a buying committee dossier

At the 1:1 tier, you work with 25 to 100 named accounts, enterprise or high-ACV targets where the deal economics justify a full research cycle. The output is a buying committee dossier that drives multi-threaded outreach across four to six personas simultaneously.

Earnings call and annual report extraction. For public companies, earnings call transcripts contain the exact language the executive team uses to describe strategic priorities and current problems. Use Clay’s Google Search column to query site:investor.{{domain}} "earnings call transcript" 2026, scrape the first result, and run structured extraction: “From this earnings call transcript, extract as JSON: (1) the top 3 strategic initiatives mentioned by the CEO, (2) any specific operational bottlenecks named, (3) any vendor or technology mentioned in the context of replacement or modernization, (4) any quoted efficiency or cost targets.” Private companies with press releases, G2 reviews, and recent podcast appearances yield comparable depth.

Persona-specific AI column splits. Fork account-level research into persona-specific columns with targeted prompts. The same source data produces different outputs: “Write a 3-sentence email to a CFO referencing the cost-reduction mandate from the Q2 earnings call. Reference the specific efficiency target they named. Do not mention implementation.” And separately: “Write a 3-sentence email to a VP of Operations referencing the same earnings call. Focus on the operational bottleneck they described, not the financial target.” One Clay row. Five emails. All grounded in the same source material.

LinkedIn post scraping for recency. Account intelligence tells you what the company is working on. A Proxycurl scrape of the prospect’s recent LinkedIn posts tells you what they posted about in the last 30 days. Run a prompt: “From these recent LinkedIn posts by {{prospect_name}}, extract the professional theme or challenge they have posted about most in the last 30 days. One sentence.” That becomes the opening hook for the individual email, drawn from what this person is actively thinking about rather than what their company published.

Buying committee mapping. A single point of contact at a named account is a liability. Use Clay to find all relevant personas: economic buyer, champion, technical evaluator, end user. Enrich each with the full waterfall. The output is a coordinated multi-thread where each persona gets a message built from the same source row.

Keeping Clay builds maintainable

The common failure mode is one table that does everything: enrichment, scoring, filtering, message generation, and CRM sync in one sheet. It works until a provider rate-limits, an API changes its response schema, or one column breaks a downstream dependency. You cannot tell which step failed or why.

Separate tables by function. An intake table holds raw input and never changes. An enrichment table runs the waterfall on intake records. A scoring table applies ICP logic to enriched records. An activation table generates message tokens and routes to the sending tool. Four tables, clean boundaries. When something breaks, the investigation is scoped to one table.

Name columns like a database schema. company_domain not Company Domain. apollo_email_verified not Email (Verified - Apollo). Downstream tools, n8n, HubSpot, Salesforce, your sequencing platform, do not care about human-readable column names, and inconsistent casing causes silent mapping failures that surface three weeks after deployment.

Gate expensive operations behind data checks. Before running a GPT-4 or Claude API call, check that the input column has a value. An empty scrape passed to an AI column returns a hallucinated response and burns the credit. A simple IF({{scraped_text}} = "", "", {{ai_prompt}}) conditional prevents that.

Clay’s leverage is the ability to chain raw data, multiple providers, AI models, and output channels into a single auditable row. The three tiers share the same table architecture with different enrichment depth, different AI prompt complexity, and a different volume-to-research ratio. Build the foundation once. Adjusting the tier is a parameter change, not a rebuild.

Part of the field guide The 2027 ABM Playbook →

Keep reading