Prospect List Template: What a B2B Prospect List Looks Like [2026]

What a B2B prospect list actually contains: the 16-column template, a copy-paste CSV header for Excel or Google Sheets, filled-in examples, and which fields you can leave empty.

Victor Paraschiv

Victor Paraschiv

Co-Founder & CMO

Updated 16 min read

A B2B prospect list is a spreadsheet or CRM view where one row is one person, and the working template is 16 columns: first name, last name, job title, seniority, company, company domain, headcount band, industry, country, city, LinkedIn URL, verified work email, direct dial phone, verification status, source, and ICP score. Cleanlist fills most of those columns from a filtered search plus one bulk enrichment pass, at 1 credit for a verified email and 10 for a direct dial. This page gives you the template, the copy-paste header row, filled-in examples, and the rules for which columns you may leave empty.

TL;DR

A prospect list needs 16 columns, split into 4 identity fields, 6 company fields, 3 contact fields, and 3 operations fields (verification status, source, ICP score). The two columns nearly everyone forgets are source and verification status, and without them the list becomes unauditable within a month. Copy the header row below into Excel or Google Sheets, fill the identity columns from a filtered search, and let waterfall enrichment fill the rest.

Last updated 7 August 2026.

This page is the field-by-field spec. If you want the step-by-step build framework instead, from ICP filters through sourcing, enrichment, verification and scoring, that lives in how to build a B2B lead list. If you are starting from a LinkedIn segment, start with the Sales Navigator guide. The wider hub is sales prospecting.

3.2x
higher reply rate for teams using enriched, verified prospect lists vs purchased or scraped lists

Based on aggregate campaign performance data from Cleanlist customers in Q1 2026. Teams that verify emails and enrich contacts with firmographic data before outreach consistently outperform teams that purchase or scrape lists and send without validation.

Source: Cleanlist Customer Campaign Data, Q1 2026

What does a prospect list look like?

A prospect list looks like a flat table with one row per person and a fixed header, held either as a CSV, a Google Sheet, or a saved view inside a CRM. It is not a company list and it is not a notes document. Every row must resolve to a single human being with a single work email, because that is the unit your sequencer, your dialer and your CRM all operate on.

The shape is consistent across teams: identity columns on the left, company columns in the middle, contact columns next, and operations columns on the right. Sorting is by ICP score descending, so the top of the file is the part a rep works today. A list that mixes companies and people in the same sheet, or that stores three contacts in one row, breaks every downstream tool it touches.

A prospect list filtered by job title, company headcount, and locationA prospect list filtered by job title, company headcount, and location

What does a prospect list mean?

A prospect list means a curated set of people you have decided to contact because they match your ideal customer profile, before any of them has expressed interest in you. The word that carries the weight is "curated". You selected these people against criteria. They did not select you.

That is what separates it from the two neighbouring artifacts. A contact list is any collection of names and addresses regardless of fit. A lead list usually means people who raised a hand through a form fill, a download or a webinar. A prospect list sits at the outbound end, which is exactly why the data-quality bar on it is higher: nobody on it is expecting your email, so a wrong title or a dead address costs you the only shot you had.

What columns should a prospect list template have?

Sixteen columns, grouped into four blocks. Anything beyond these is depth you add per campaign, not part of the base template.

#ColumnBlockRequiredExample
1First nameIdentityRequiredJohn
2Last nameIdentityRequiredSmith
3Job titleIdentityRequiredVP of Sales
4SeniorityIdentityRecommendedVP
5CompanyCompanyRequiredAcme Corp
6Company domainCompanyRequiredacmecorp.com
7Headcount bandCompanyRequired51-200
8IndustryCompanyRecommendedSoftware Development
9CountryCompanyRequiredUnited States
10CityCompanyOptionalSan Francisco
11LinkedIn URLContactRecommendedlinkedin.com/in/johnsmith-acme
12Verified work emailContactRequiredjohn.smith@acmecorp.com
13Direct dial phoneContactOptional+1 (415) 555-0192
14Verification statusOperationsRequiredValid
15SourceOperationsRequiredPeople Search, 2026-08-07
16ICP scoreOperationsRecommended85

Company domain earns its place because it is the only reliable join key between your list, your CRM and your enrichment tool. Company names collide and get rewritten. Domains do not.

What is the copy-paste header row for a prospect list in Excel or Google Sheets?

Paste this single line into cell A1 of a new sheet and the template exists. It is comma separated, so Excel and Google Sheets will both split it across columns on paste, or you can save it as a .csv and open it.

first_name,last_name,job_title,seniority,company,company_domain,headcount_band,industry,country,city,linkedin_url,email,phone,verification_status,source,icp_score

Use snake_case headers rather than "First Name" with a space. Every enrichment tool, CRM importer and sequencer maps snake_case cleanly, and it survives a round trip through CSV export without turning into First Name_1. Freeze row 1, set the whole sheet to plain text so phone numbers keep their leading plus sign, and add data validation on verification_status limited to Valid, Risky, Invalid and Unchecked. Those three minutes of setup prevent the two most common corruptions: a phone column silently converted to scientific notation, and free-text verification values nobody can filter on.

What does a filled-in prospect list example look like?

Here is the same template with three rows in it, which is what a real file looks like after one enrichment pass. Company columns are trimmed for width.

first_namelast_namejob_titlecompany_domainheadcount_bandemailphoneverification_statussourceicp_score
JohnSmithVP of Salesacmecorp.com51-200john.smith@acmecorp.com+1 (415) 555-0192ValidPeople Search 2026-08-0785
PriyaNairDirector of RevOpsnorthwind.io201-500p.nair@northwind.ioblankValidPeople Search 2026-08-0778
TomasBergHead of Growthlumaworks.se11-50tomas@lumaworks.seblankRiskyCRM re-activation61

Read the third row carefully, because it is the one that teaches the template. Tomas has a Risky verification status, which means the domain accepts all addresses and the specific mailbox could not be confirmed. He stays in the file, he does not go into the sequencer. That is the whole reason verification_status is a column rather than a filter you apply once and forget.

What is the difference between a prospect list and a lead list?

The difference is direction of intent, and in day-to-day usage the two terms are interchangeable. A prospect list is outbound: you picked these people against ICP criteria and they have never heard of you. A lead list is usually inbound: these people raised a hand through a form fill, a content download, a webinar or a free tool.

Some teams add a second convention where "lead" means unqualified and "prospect" means scored and qualified. Both are defensible and neither is a standard. The template does not change either way. What does change is the source column, because an inbound row carries a form name and a date while an outbound row carries a search or a filter set. Keeping both in one file with an honest source column is better than maintaining two files that drift apart.

Which prospect list fields are required and which are optional?

Six columns are genuinely required, and a row missing any of them should not enter a sequencer. Those are first name, last name, job title, company domain, verified work email and verification status. Everything else improves targeting or personalisation without blocking the send.

The optional columns are optional for a specific reason: coverage. Direct dial phones exist for a minority of contacts on any list, so treating phone as required silently deletes most of your file. City is often missing or stale for remote workers. Seniority and ICP score are derived rather than sourced, so they can be computed after the fact. The rule that keeps lists healthy is to make required columns hard-blocking and optional columns visible-but-empty, rather than dropping rows because a nice-to-have field came back blank.

How do I fill the empty columns without manual research?

Fill them with a bulk enrichment pass rather than row by row, because manual research on a 500-row list is a week of work and a bulk pass is minutes. You upload the identity columns you already have (name plus company domain, or a LinkedIn URL), and waterfall enrichment resolves the rest.

Waterfall enrichment routes each record through data providers in sequence rather than querying one database. If the first provider returns a verified email, the cascade stops and you are charged once. If it returns nothing, the record falls through to the next, across 25+ providers in one pass. That design is what keeps credit burn proportional to results rather than to attempts.

In Cleanlist the economics map directly onto this template: search costs 0 credits, saving a result to a list costs 0.5, a verified email costs 1, a direct dial costs 10, and both together cost 11. Cleanlist's published product specs are 98% verified email accuracy and 85% direct dial coverage. Plans are Free $0, Starter $79, Pro $229 and Scale $599 per month with 25% off annual.

How do I build a prospect database instead of a one-off list?

A prospect database is the same 16 columns with three more added and a refresh cadence attached: last_verified_at, last_enriched_at and status. Those turn a file you rebuild every quarter into an asset you maintain, which is the difference between list building and list building at scale.

The operating rules are short. Re-verify emails monthly. Re-enrich rows with missing fields monthly. Remove hard bounces weekly. Add new rows matching the ICP weekly rather than in one quarterly push. Recalibrate the ICP score quarterly. A database maintained this way holds its accuracy, and a file rebuilt from scratch every quarter throws away the suppression history that stops you emailing the same person four times.

Cleanlist supports the maintenance loop through the API and the MCP server, so the re-run can be scheduled instead of remembered. Note the honest limit: Cleanlist has a recently-changed-jobs filter at search time, so you can find people who moved, and it does not watch a saved list and alert you when someone moves.

People Search walkthrough

Filtering leads by title, headcount, and location, then adding them to a list, recorded with voiceover

What does a prospect list look like for an agency running several clients?

An agency list adds two columns and one hard rule. The columns are client and segment, and the rule is one workspace and one suppression list per client, never a shared sheet with a client filter.

The segment column is the one that pays for itself. Split each client ICP into three or four segments at kickoff, label every row, then report reply rate by segment at the end of month one. That is how you tell a client which audience actually worked instead of showing them a blended number. On cost control, enrich email-only at 1 credit per record for the validation batch, and spend the 11-credit full-contact rate only on the segments that already replied. Agencies running dozens of client lists feel credit burn immediately, so the sequencing of those two passes decides margin. More patterns are in the lead generation agency guide and on the agencies use case page.

How does the template change for ABM and account lists?

For account-based motions you keep the same person-level template and add an account layer above it, rather than switching to a company-per-row sheet. Add account_id to the person template, and maintain a separate accounts sheet keyed on company domain holding the account-level fields: headcount, industry, HQ location, and whatever signal you are acting on.

The reason to keep two sheets joined on domain rather than one wide sheet is multi-threading. ABM means three to seven contacts per account, and a company-per-row layout cannot hold them without duplicating account data on every line. Once the two sheets exist, "how many accounts have at least three verified contacts" becomes a formula instead of a manual count, which is the number that actually predicts whether an ABM campaign will land.

What should a prospect list never contain?

Never carry personal email addresses, home addresses, or anything you could not defend as business contact data. Beyond the legal exposure, personal addresses destroy deliverability because consumer mailboxes report business mail as spam at far higher rates.

Three more exclusions matter operationally. Never carry unverified addresses in the same view your reps sequence from, which is what the verification_status column is for. Never carry duplicate rows for the same email, since duplicates produce double-sends that read as spam to the recipient and to the mailbox provider. And never carry rows without a source value, because when a complaint arrives you need to say where the record came from and when.

On thresholds, Google's sender guidelines state: "Keep spam rates reported in Postmaster Tools below 0.10% and avoid ever reaching a spam rate of 0.30% or higher", and any sender pushing more than 5,000 messages a day to Gmail accounts is treated as a bulk sender with extra obligations including one-click unsubscribe (Google Workspace Admin Help, checked 7 August 2026). Every one of those exclusions exists to keep you under that line.

What does it cost to fill this template in 2026?

Costs land in three layers, and the template only pays for the middle one. Targeting is LinkedIn Sales Navigator at US$119.99 per month for Core or US$159.99 for Advanced (LinkedIn Sales Solutions, checked 7 August 2026). Data is the enrichment pass. Sending is a separate tool again.

For a 1,000-row list the data math is direct. Email-only is 1,000 credits. Adding direct dials to the 300 rows you actually intend to call adds 3,000 credits. Saving all 1,000 search results to a list first costs 500. Cleanlist plans run Free $0, Starter $79, Pro $229 and Scale $599 per month, with 25% off annual, and every new workspace opens on Scale for 14 days with 250 credits, three seats and no card. For comparison on free tiers, Clay's free plan carries 100 data credits a month (Clay pricing, checked 7 August 2026), and Cleanlist's free tier is 30 credits a month with no card.

Is there a free prospect list template I can download?

The header row in this article is the template, and it is deliberately not a gated download. Copy the comma-separated line above into A1, apply the three setup steps (freeze row 1, format as plain text, validate verification_status), and you have the same file any paid template would have given you.

Be careful with what circulates as a free "prospect list", which is a different thing entirely. A free template is a set of empty columns and it is fine. A free list of contacts is shared data, usually stale, and usually collected without a basis you could defend if someone asks. If you want free contacts rather than a free template, start a trial: Cleanlist gives every new workspace 14 days on Scale with 250 credits and three seats and no card, which fills 250 rows of this template end to end, and 30 credits a month on the free plan after that.

How do I keep the template clean as the list grows?

Enforce the rules at the point of entry rather than cleaning up later, because a list that has drifted for a quarter is usually cheaper to rebuild than to repair. Four controls do most of the work.

Deduplicate on email first and on company_domain plus job_title second, which catches the same person recorded twice under two spellings. Keep verification_status as a validated dropdown so it can never hold free text. Stamp source with the search or import name plus the date at the moment a row is created, never afterwards from memory. And re-verify anything older than 90 days before it goes back into a sequence.

The signals that the list has decayed are consistent: a bounce rate creeping above 2%, reply rates falling on segments that used to perform, rising "no longer at this company" auto-replies. When those appear, stop sending and re-verify. A damaged sending domain takes weeks to recover.

FAQ

What is a prospect list in sales?

A prospect list in sales is a curated set of people who match your ideal customer profile and have not yet been contacted. It sits at the start of the outbound motion, before any conversation exists. The practical definition is operational rather than conceptual: it is a file with one row per person, a verified work email on every row, and enough company context that a rep can write something specific without doing research. Anything missing those properties is a contact list rather than a prospect list.

What is an example of prospecting in sales?

A concrete example: a rep filters for Directors and VPs of RevOps at software companies with 51 to 200 employees in the US and Canada, saves 400 matching people, enriches them to verified emails, drops the 30 that fail verification, scores the rest on ICP fit, then sends a three-touch sequence to the top 200 over two weeks. Every part of that is prospecting. The filtering and enrichment steps are the ones that determine whether the sequence has any chance, which is why the template matters more than the copy.

What is prospect list building?

Prospect list building is the process of turning an ideal customer profile into a file of verified, contactable people. It has five stages: define the ICP as filters, source people matching those filters, enrich the raw rows into verified emails and phones, verify and suppress, then score and segment. Most teams do stages one and two and skip three and four, which is why their bounce rates run above 10%. The full framework, stage by stage, is in how to build a B2B lead list.

How many columns is too many for a prospect list?

Past about 25 columns a list stops being usable by humans and starts being a database that needs a query tool. The 16-column template is the practical ceiling for a sheet a rep works from directly. If you need more depth, such as per-campaign personalisation variables or signal history, keep it in a second sheet joined on email or on company_domain rather than widening the main file. Wide sheets get horizontally scrolled past, and columns nobody can see are columns nobody maintains.

Can ChatGPT or Claude fill in a prospect list template?

A general chatbot can draft the ICP, name the segments and write personalisation variants, and it cannot produce verified email addresses because it has no contact database and no verification layer. Anything it outputs in an email column is a guess that will bounce. What does work is connecting it to a tool that has both. Through the Cleanlist MCP server, Claude converts your ICP description into a structured people search, runs it, saves the results and dispatches bulk enrichment, and the columns come back filled from real providers. The walkthrough is in describe your ICP, get a lead list.

Run this on your own contacts

Put your own contacts through the multi-provider waterfall and export the result. 250 credits, 3 seats, 14 days. No card required. Bulk CSV upload lands on Starter at $79/mo, and CRM import and sync on Pro at $229/mo.

Start free trial

250 credits, 3 seats, 14 days. No card required.

Run it on the list you already have.

Cleanlist puts one lookup through 25+ providers and stops at the first source that returns. Search is free and unlimited on every plan. A verified work email is 1 credit, a direct dial is 10, both together are 11, and a miss costs nothing at all.

14-day Scale trial: 250 credits, 3 seats, no card, every feature except the public API and MCP. The Free plan stays at 30 credits a month after that.

Gain full access for 14 days.

250 credits, 3 seats, no card needed. Access to every feature except public API & MCP.

The Free plan at 30 credits a month is there when the trial ends.