- Agency Clay lead generation is five layers in a fixed order: source from signals, enrich the company, qualify with research, find and verify contacts, then push to warm sending infrastructure.
- A full-depth 1,000 account table costs about 8,580 data credits, roughly $635, and returns around 1,260 sendable contacts at $0.50 each.
- Clay charges about $0.067 a credit on Launch and $0.074 on Growth, so upgrading buys headroom rather than cheaper credits.
- Qualification before contact discovery is the layer that decides results, because every row it removes is a row you no longer pay to enrich, personalize, or send to.
- Sizing the table to your mailbox capacity matters more than list size: 40 sends per mailbox per day is the constraint that turns a good list into a burnt domain.
- Reachly is a Clay certified partner and runs this pipeline as a service, see our LinkedIn outreach agency page.
Agencies use Clay as the data layer underneath client outbound: one table per client that turns a raw account list into enriched, qualified, personalized contacts a sequencer can send. Run at full depth over a 1,000 account list, that table costs roughly 8,580 data credits, about $635 on Clay's Growth plan, and returns around 1,260 sendable contacts at $0.50 each.
TL;DR: Summary
- Clay lead generation is a five layer pipeline: source the list, enrich the company, qualify with research, find and verify contacts, then push to sending infrastructure. Agencies run the same five layers per client rather than one shared table.
- Clay prices two meters. Launch is $185 a month, or $167 billed annually, for 2,500 data credits and 15,000 actions. Growth is $495, or $446 annually, for 6,000 credits and 40,000 actions.
- Effective credit price is about $0.067 on Launch and $0.074 on Growth, so moving up a tier buys headroom rather than a cheaper credit.
- A single 1,000 account list at full depth burns 8,580 credits, roughly 143% of the entire Growth allowance, which is why agencies gate expensive columns behind cheap filters instead of running every column on every row.
- The layer that decides results is qualification, not personalization. Filtering 1,000 accounts down to the 600 that show a real signal costs 2,000 credits and removes most of the wasted sending volume below it.
Most teams that try Clay build one enormous table, enable every enrichment they can find, run it across the whole list, and discover at the end of the month that the credit allowance went on rows that were never going to reply. Agencies that run Clay for a living build the same pipeline in the opposite order: cheap checks first, expensive research only on what survives, and a hard rule that no column exists unless it changes what gets sent.
This guide covers how that pipeline is actually assembled across client accounts, what each layer costs in credits, and which parts are worth running yourself against the parts that only pay off at agency volume.
| Layer | Runs on | Credits per run | Credits used | Cost at $0.074 |
|---|---|---|---|---|
| 1. Company enrichment | All 1,000 accounts | 1 | 1,000 | ~$74 |
| 2. Qualification research | All 1,000 accounts (Claygent Neon) | 2 | 2,000 | ~$148 |
| 3. Contact discovery | 600 accounts that passed, 3 contacts each | 1 per contact | 1,800 | ~$133 |
| 4. Email waterfall | 1,800 contacts, charged on hits only (~70%) | 1 per hit | 1,260 | ~$93 |
| 5. Personalization line | 1,260 contacts with a verified email | 2 | 2,520 | ~$186 |
| Total | 1,260 sendable contacts | 8,580 | ~$635 |
That total is the number worth sitting with. 8,580 credits is roughly 143% of everything the Growth plan includes in a month, spent on one list for one client. An agency running four clients cannot simply multiply this, which is the single biggest structural difference between agency Clay and in-house Clay.
What is Clay lead generation?
Clay lead generation is the practice of building lead lists inside a spreadsheet-shaped workspace where every column can call a data provider, an AI research agent, or your own logic. You start with accounts or people, then add columns that fill themselves until each row is qualified enough to send to.
The mechanical difference from a normal prospecting tool is that Clay does not own the data. It sits above roughly 150 providers and routes each lookup to whichever one is most likely to answer, falling back through the others when the first returns nothing. You pay for the lookup rather than for a seat at each provider, which is what makes running many small, specific lists affordable.
For the mechanics of building a first table, our Clay tutorial walks through the interface step by step. This article assumes you can build a table and focuses on what changes when the table has to serve a paying client.
Where Clay sits against a plain data provider
A data provider sells you a database and a filter. You describe a segment, it returns everyone matching, and the quality of your list is capped by the quality of that one vendor's coverage. Clay inverts the relationship: you describe a segment, then decide per field which vendor should answer, and layer research on top for the fields no vendor sells.
The practical consequence is coverage. A single provider might return a verified email for 45% of a niche list. A waterfall through four providers on the same list typically clears 70%, and you are only billed on the successful lookups. Our guide to B2B data enrichment covers how to order that waterfall, and the best data enrichment tools comparison covers which providers are worth a slot.
How does an agency run Clay differently from an in-house team?
The core difference is that an agency runs many small pipelines that must stay isolated, while an in-house team runs one large pipeline that can share everything. That changes workspace structure, credit budgeting, and what gets reused between clients.
An in-house team enriches an account once and keeps it enriched forever. An agency cannot pool client data, so the same company can be enriched separately for three clients targeting the same market, and the agency pays three times. Recognising that early is what stops credit spend from quietly outrunning retainer revenue.
| Dimension | In-house team | Agency |
|---|---|---|
| Workspaces | One, shared by the whole GTM team | One per client, or strict table separation inside one |
| Data reuse | Enrich an account once, reuse indefinitely | No pooling across clients, so the same account is paid for repeatedly |
| Credit budgeting | One monthly pool against one target | Per client allocation, priced into the retainer before work starts |
| What gets reused | The account data itself | The table templates, prompts, and scoring logic, never the rows |
| ICP definition | Fixed, refined over years | Rebuilt per client, often in the first two weeks |
| Failure cost | A wasted month internally | A churned account, so QA runs before send, not after |
| Skill concentration | One or two people learn Clay part time | A dedicated build function across every account |
The reusable asset for an agency is the template, not the data. A qualification prompt that reliably reads careers pages works for every client that sells to companies with sales teams. Rebuilding it per client is the most common way agency margin disappears into setup hours.
What does the agency Clay workflow look like end to end?
Five layers, always in the same order, with a filter between each one. The ordering matters more than any individual column, because every layer is more expensive than the one above it and each filter shrinks what the next layer has to touch.
1. Define the ICP and the buying committee before opening Clay
Nothing in a table can recover from a vague target. Before any column is built, the client's ICP needs firmographic bounds, a list of disqualifiers, and a named buying committee split into who owns the budget, who owns the number, and who does the work.
The disqualifier list is the part usually skipped and the part that saves the most credits. Excluding agencies, students, recruiters, and companies below a headcount floor at the source removes rows that would otherwise be enriched, researched, and only then discarded. Our ICP template sets out the fields worth pinning down.
2. Source the list from signals rather than broad filters
A filter describes what a company is. A signal describes what a company is doing right now, which is a far better predictor of whether an email lands at a useful moment. Hiring for a role your product supports, opening a new office, publishing a job spec that names your category, or appearing in a funding announcement all indicate timing that a headcount filter cannot.
In practice this means the list is assembled from several narrow sources rather than one broad export. A signal-sourced list of 1,000 accounts consistently outperforms a filtered list of 10,000, and it costs a tenth as much to process. Our signal based outbound playbook covers which signals are worth building around, and buying signals in B2B covers how to read them.
3. Enrich the company, then qualify with research
Company enrichment is the cheap layer: headcount, industry, location, funding, technologies. One credit a row, and it exists to feed the filter that comes next rather than to be read by a human.
Qualification is where an agency table stops resembling a list export. A research agent reads a page per account and returns typed fields you can filter on, so judgment moves out of an SDR's head and into a column. The prompt below is the one we adapt per client, and it is written so the client's own criteria are the only part that changes.
ROLE
You are a B2B research analyst. You report only what you can read on a page.
You never infer a fact that is not printed.
INPUTS
{{company_name}} {{company_domain}} {{client_icp_keywords}}
TASK
Read {{company_domain}} and its careers page. Decide whether this account
matches the criteria below, and return evidence for the decision.
DECISION RULE
Count open roles whose titles contain any of {{client_icp_keywords}}.
tier_a = 3 or more matching roles, or a matching role at Head or VP level
tier_b = 1 or 2 matching roles
tier_c = 0 matching roles but the homepage names a matching function
reject = none of the above
OUTPUT FIELDS
qualification (Select) tier_a / tier_b / tier_c / reject
matching_roles (Number) count of matching open roles
evidence_url (URL) the single page that decided it
evidence_quote (Text) one verbatim sentence from that page
reject_reason (Text) only when qualification is reject
RULES
evidence_quote must appear word for word on the page. Do not paraphrase.
Never return tier_a without a numeric matching_roles value of 3 or more.
If no page loads, return reject and NOT_FOUND in every text field. Two things make this reusable across an entire client roster. The criteria arrive as a variable rather than being hard-coded, so a new client is a new keyword list rather than a new prompt. And the verbatim quote requirement gives you a way to audit accuracy: read 20 quotes against 20 pages and you know the error rate of the whole column in about ten minutes.
Everything about model choice and prompt structure sits in our Claygent guide, including which of Clay's models to use for which job and what each costs per row.
4. Find contacts and verify emails through a waterfall
Only now do you look for people, and only at accounts that passed. Three contacts per qualified account is the ratio we default to: one economic buyer, one champion, one practitioner, so a single account can be approached from more than one angle without the same person receiving three variations of the same message.
Email discovery runs as a waterfall. Each provider is tried in turn and the sequence stops at the first verified hit, so you pay once per contact rather than once per provider. Ordering by cost-adjusted hit rate for that specific segment is what separates a 70% clear rate from a 45% one.
WATERFALL: work email, B2B SaaS segment ORDER OF ATTEMPT 1. Primary provider strongest coverage for the segment, run first 2. Secondary provider different underlying dataset, not a reseller 3. Pattern + verify derive from domain pattern, then SMTP verify 4. Catch-all handling route to a separate column, do not send STOP RULE Stop at the first result with verification status = valid. Do not continue the waterfall on a valid result, it is already paid for. DO NOT SEND IF verification status = catch-all, accept-all, unknown, or risky role-based prefix: info@, sales@, support@, hello@, admin@, contact@ the domain has no MX record OUTPUT FIELDS work_email (Email) verification (Select) valid / catch-all / invalid / not-found source_provider (Text) which step in the waterfall answered sendable (True/False) RULES sendable = true only when verification = valid and the prefix is personal. Route catch-all contacts to LinkedIn instead of deleting them. Re-verify any address older than 90 days before a new campaign.
The catch-all rule is worth calling out. A large share of enterprise domains accept every address, so verification cannot confirm the mailbox exists. Sending to them anyway is a common cause of a rising bounce rate. Routing them to a LinkedIn touch instead keeps the account in play without putting the sending domain at risk.
5. Push to sending infrastructure that can actually deliver
A perfectly built table produces nothing if the emails land in spam. The handoff out of Clay goes to a sequencer with its own domains, mailboxes, and warm-up, and the volume the table produces has to match what that infrastructure can carry at roughly 40 sends per mailbox per day.
This is the layer where in-house Clay builds most often stall. The table works, the data is good, and the sending setup underneath it was never built. Our cold email deliverability guide covers the domain and warm-up half of the equation.
How much does Clay cost per lead for an agency?
Between $0.21 and $0.50 per sendable contact, depending on how much research you run per row. The spread comes almost entirely from whether you qualify before enriching contacts and whether you personalize per contact.
Clay bills two separate meters. Data credits cover the lookups and the model calls. Actions cover platform activity, one per enrichment run per row. For agency tables the credit allowance binds long before the action allowance does, so credits are the number to budget against.
| Plan | Monthly billing | Annual billing | Data credits | Actions | Effective credit price |
|---|---|---|---|---|---|
| Free | $0 | $0 | 100 | 500 | n/a |
| Launch | $185 | ~$167 | 2,500 | 15,000 | ~$0.067 |
| Growth | $495 | ~$446 | 6,000 | 40,000 | ~$0.074 |
| Enterprise | Custom | Custom | Custom | Custom | Negotiated |
That last column contains a result most teams get backwards. Upgrading from Launch to Growth does not reduce the price of a credit, it slightly increases it, from about $0.067 to $0.074. What the higher tier buys is a much larger action allowance and the headroom to run bigger tables. If credits are the constraint rather than table runs, the cheaper lever is nearly always model choice and filtering rather than a plan upgrade.
Clay's legacy Starter, Explorer, and Pro plans were retired for new customers in the March 2026 pricing change, so any cost comparison still quoting $149 or $349 a month is describing a plan you can no longer buy.
| Depth | What runs | Credits | Cost at $0.074 | Sendable contacts | Cost per contact |
|---|---|---|---|---|---|
| Thin | Enrichment, contacts, email. No qualification | 6,100 | ~$451 | 2,100 | ~$0.21 |
| Standard | Adds research-based qualification before contacts | 6,060 | ~$448 | 1,260 | ~$0.36 |
| Deep | Adds a personalization line per contact | 8,580 | ~$635 | 1,260 | ~$0.50 |
Read those three rows side by side and the real trade appears. Thin and Standard cost almost exactly the same in credits, but Thin returns 2,100 contacts against Standard's 1,260. Per contact, Thin looks 42% cheaper.
Per meeting, it is usually the more expensive option, because the 840 extra contacts are drawn from the accounts that failed qualification. You pay the same to build the list, then pay again in sending capacity, domain reputation, and reply handling to work rows that were already known to be poor fits. Cost per contact is the metric that makes Thin look efficient, and it is the wrong metric.
Which Clay lead generation plays produce the most meetings?
The plays that work are the ones built on a signal with a short shelf life. A company that posted a relevant role three weeks ago is in a different state from one that posted eighteen months ago, and the table is what lets you tell them apart at volume.
| Play | Signal it reads | Credits per account | Best for | Shelf life |
|---|---|---|---|---|
| Hiring intent | Open roles naming a function you serve | 2 | Services, tooling bought by that function | 30 to 60 days |
| Job spec keyword | A named tool or process inside the job description | 2 | Displacement offers | 30 to 60 days |
| Funding trigger | Recent round, plus headcount plan | 1 to 2 | Anything bought with new budget | 60 to 90 days |
| Tech stack change | A tool added or removed from the site | 3 | Integrations and migrations | 90 days |
| Site engagement | Identified visitor matched to an account | 1 | Warm follow up at existing demand | 7 days |
| Content engagement | Interaction with the client's own posts | 1 | LinkedIn-first sequences | 14 days |
| Broad firmographic | Headcount, industry, geography only | 1 | Volume plays with a strong offer | No decay |
The bottom row is included deliberately. Broad firmographic targeting still works when the offer is strong and the sending infrastructure is healthy, and it is far cheaper per row. It belongs in the mix as the volume layer underneath the signal plays rather than as the whole strategy.
Scoring across several of these at once is what turns a pile of signals into a send order. Our B2B lead scoring framework covers how to weight them without ending up with a score nobody trusts.
How do you connect Clay to LinkedIn outreach?
Clay produces the routing decision, and a LinkedIn sending tool executes it. The column that matters is a single field that says, for each contact, whether they should be approached by email, by LinkedIn, or by both in sequence.
Routing by channel rather than sending everything everywhere is what keeps both channels healthy. Contacts with a catch-all domain have nowhere to receive an email safely. Senior buyers at small companies often respond better to a connection request than to a cold inbox. Practitioners at large companies are usually the reverse.
ROLE
You assign one outbound channel per contact from a fixed list.
You use only the fields provided. You do not research the person.
INPUTS
{{job_title}} {{qualification}} {{verification}} {{company_headcount}}
{{linkedin_url}}
ROUTING RULES
linkedin-first verification is catch-all or not-found, and linkedin_url exists
linkedin-first persona is economic buyer and company_headcount is under 200
email-first verification is valid and persona is champion or practitioner
both qualification is tier_a and verification is valid
skip qualification is reject, or neither channel is reachable
OUTPUT FIELDS
persona (Select) economic buyer / champion / practitioner / out of scope
channel (Select) email-first / linkedin-first / both / skip
sequence (Text) the named sequence this contact should enter
reason (Text) maximum 20 words, cite the field that decided it
RULES
Never return both for a contact whose verification is not valid.
Never return email-first without a valid work email.
If linkedin_url is empty, linkedin-first is not available, return skip. The both route needs a rule about ordering and spacing, otherwise the same person receives a connection request and a cold email on the same morning, which reads as automation. We space the two channels by at least three days and never repeat the same opening observation across them.
Getting this right at volume is most of what a LinkedIn outreach agency is actually doing: matching each contact to the channel where they are reachable, then keeping connection request limits, profile warm-up, and reply handling inside safe bounds so the accounts survive the campaign.
On the personalization side, the observation that opens the message should name something concrete the research column actually found. Our cold email personalization guide covers which variables earn their credits and which ones read as machine-written.
What do agencies get wrong with Clay?
The failures repeat across accounts, and almost all of them are a version of running an expensive layer before a cheap filter. Each has a specific fix that costs nothing to apply.
| Mistake | Symptom | Fix |
|---|---|---|
| Every column runs on every row | Credits gone by mid-month, most spent on rejected rows | Gate each layer behind the filter above it |
| No disqualifier list at source | Enriching agencies, students, and competitors | Exclude at list build, before the first credit is spent |
| Deepest research model as the default | Bill triple the forecast for identical answers | Cheapest model that answers the question, tested side by side |
| Personalizing before qualifying | Beautifully written emails to poor fit accounts | Qualification always runs before contact discovery |
| No fallback value in prompts | Empty cells that could be a failure or a true negative | Require a literal NOT_FOUND in every text field |
| Sending to catch-all addresses | Bounce rate climbs, domain reputation drops | Route catch-all contacts to LinkedIn instead |
| Table built once, never re-verified | Reply rates decay quietly over a quarter | Re-verify any contact record older than 90 days |
| Volume outruns the sending setup | Great data, everything lands in spam | Size the table to the mailbox capacity, not the reverse |
The last one causes the most damage per incident. A table that produces 5,000 sendable contacts against infrastructure built for 1,200 sends a day does not produce four times the meetings. It produces a burnt domain, and rebuilding sender reputation takes longer than building the table did.
Should you build Clay in-house or hire an agency?
Build in-house when outbound is a permanent function you intend to staff and the learning compounds inside your team. Hire when you need pipeline before that team exists, or when the sending infrastructure is the actual gap.
The honest version of the comparison includes the parts usually left out of a pricing page: the weeks before the first meeting, the domains that have to be bought and warmed regardless of who runs the tables, and the fact that Clay skill sits with a person who can leave.
| Factor | Build in-house | Hire an agency |
|---|---|---|
| Time to first meeting | 8 to 12 weeks, including domain warm-up | 3 to 4 weeks, infrastructure already warm |
| Monthly tooling | Clay, sequencer, domains, mailboxes, verification | Included in the retainer |
| Headcount | At least one person who owns the tables | None added |
| Where the skill sits | With the individual who built it | With the provider, across many accounts |
| Speed of iteration | Limited by that person's other work | Patterns already tested on other accounts |
| Deliverability risk | Carried on your own domains, learned the hard way | Carried on separate sending domains |
| Best when | Outbound is a permanent internal function | Pipeline is needed before the function exists |
The middle rows are where in-house builds usually come apart. Clay is not difficult to learn, and a capable operator will have a working table inside a month. The parts that take longer are the sending infrastructure underneath it and the judgment about which columns are worth their credits, and both of those are learned by running many campaigns rather than by reading documentation.
The wider picture of how these layers assemble into a role and a function is set out in our GTM engineering guide.
What results does an agency Clay pipeline produce?
Two of our accounts show the range, one built for volume and one built for a small number of high-value meetings. Both run the same five layers with different depth settings.
Primal, a performance marketing firm, ran the volume shape: broad qualified lists, research-based tiering, email-first routing with LinkedIn on the tier A accounts. Over six months the account produced more than 85 sales-qualified leads, six closed deals, a 35% reduction in customer acquisition cost, and 4.57x ROI, with an 8% positive reply rate in the first month.
The Great Room, a premium workspace operator, ran the opposite shape: a much smaller list, far deeper research per account, and meetings measured in contract value rather than count. Signal-based targeting moved their cadence from two meetings a quarter to two a month, dropped lead drop-off from 50% on paid channels to 30%, and contributed a contract worth roughly $250,000, all with no added headcount.
The comparison that matters is the depth setting. The Great Room account would have been badly served by a thin table producing thousands of contacts, and Primal would have been badly served by a deep table producing a few hundred. Choosing that setting correctly per client is most of the judgment in running Clay for other people.
Have the tables, the routing, and the sending run for you
Reachly builds the Clay pipeline, the enrichment waterfall, and the LinkedIn and email routing on infrastructure that is already warm. More than 2,500 meetings and $3M in pipeline generated for B2B clients to date.
See how we run LinkedIn outreach
Clay lead generation FAQ
What is Clay used for in lead generation?
Clay is used to build and enrich lead lists in a table where every column can call a data provider, an AI research agent, or your own logic. Teams use it to source accounts from signals, fill in firmographics, qualify accounts with research, find and verify contact emails through a waterfall of providers, and score each row before pushing it to a sequencer. The output is a list where every row has already been checked against your criteria.
How much does Clay cost for lead generation?
Clay's Launch plan is $185 a month, or about $167 billed annually, and includes 2,500 data credits and 15,000 actions. Growth is $495, or about $446 annually, for 6,000 credits and 40,000 actions. There is a free tier with 100 credits and 500 actions. Effective credit price works out near $0.067 on Launch and $0.074 on Growth, so a full-depth 1,000 account list costs roughly $635 in credits.
Is Clay worth it for a small team?
It is worth it when you run several narrow, specific lists rather than one large one, because you pay per lookup instead of per seat at each data vendor. Below roughly 200 accounts a month the arithmetic is less clear, since a person researching by hand will produce better context and notice things no prompt asked about. The break-even arrives when the same question has to be asked identically several hundred times.
How many credits does a 1,000 account list use in Clay?
About 8,580 data credits at full depth, which covers company enrichment on every account, research-based qualification, three contacts per qualified account, an email waterfall charged on successful hits, and a personalization line per contact. That is roughly 143% of the entire Growth plan monthly allowance, which is why expensive columns are gated behind cheap filters rather than run across every row.
What is a waterfall enrichment in Clay?
A waterfall tries several data providers in sequence for the same field and stops at the first verified result, so you are billed once per contact rather than once per provider. Ordering providers by hit rate for your specific segment is what lifts email coverage from around 45% on a single vendor to around 70% across four. Contacts that come back as catch-all or unknown should be routed to LinkedIn rather than emailed.
Does Clay replace a data provider?
No, it sits above them. Clay routes each lookup to whichever provider is most likely to answer and falls back through the others, so commodity fields like headcount, industry, funding, and verified email still come from providers. What Clay adds on top is research on the fields no provider sells, and the logic that decides which rows are worth spending on.
Can Clay find LinkedIn contacts?
Clay can return LinkedIn profile URLs and person-level attributes through its own datasets and connected providers. Its research agent cannot read LinkedIn profile pages directly, because those sit behind a login and the agent only reads the open web. Keep LinkedIn attributes in the enrichment layer and use research for company pages, job boards, documentation, and news.
How do agencies manage Clay across multiple clients?
One workspace per client, or strict table separation inside a single workspace, because client data cannot be pooled. Credit allowances are allocated per client and priced into the retainer before work starts. What gets reused between clients is the templates, prompts, and scoring logic rather than the enriched rows, since the same account has to be paid for again for each client that targets it.
What is the difference between data credits and actions in Clay?
Data credits pay for the data itself and for AI model calls, so a provider lookup or a research run consumes them. Actions pay for platform activity, roughly one per enrichment run per row. For lead generation tables the credit allowance almost always runs out first, so credits are the meter to budget against when sizing a plan.
How long does it take to build a Clay lead generation pipeline?
A working table takes a capable operator a few weeks. Getting to a first booked meeting takes longer, typically 8 to 12 weeks in-house, because new sending domains need buying and warming before any volume can go out safely. Where infrastructure already exists and is warm, the same pipeline can start producing meetings in 3 to 4 weeks.
Should I personalize every contact in Clay?
No, and doing so is one of the more expensive habits. A personalization line costs about 2 credits per contact, so running it on unqualified rows spends real money on accounts that were never a fit. Qualify first, personalize only the contacts that passed, and give every research column a usable flag so weak observations get demoted to a short generic email instead of being sent.
What happens if my Clay list is bigger than my sending capacity?
The extra contacts do not produce extra meetings, they damage the sending domains. At roughly 40 sends per mailbox per day, a table producing 5,000 sendable contacts against infrastructure sized for 1,200 a day forces either a backlog or an unsafe send volume. Size the table to the mailbox capacity, and rebuild reputation before increasing volume rather than after.


20(19).jpeg)
