How to bulk import and clean a lead list

How-to guide Updated 12 July 2026

How do you bulk import and clean a lead list with AI?

Hand Claude your CSV and tell it what to bin: duplicates, empty emails, role addresses, whatever your rules are. It cleans the file, imports only the rows worth keeping through the HotHawk MCP server, reports what it dropped, and drops the clean leads into a fresh list ready for a campaign.

No credit card required.

Before you start

You need a HotHawk account and the HotHawk MCP server connected to Claude. It takes a couple of minutes and no code. Full setup is on the MCP server page.

Step by step

  1. 1
    You ask Claude

    Import the 2,300 leads from this CSV, but drop the duplicates and anything without a work email.

    Claude calls mcp__hothawk__crm_leads_bulk_create
    leads cleaned rows source your CSV skipDuplicates true

    Claude reads the file, spots the repeats and the empty or role-based addresses, and imports only the rows worth keeping. It tells you how many it dropped and why.

  2. 2
    You ask Claude

    How many did you skip, and what got binned?

    Claude calls mcp__hothawk__crm_leads_bulk_create
    report import summary skipped counts by reason

    You get the tidy-up in plain numbers: 140 duplicates, 60 with no email, a handful of obvious junk. Nothing vanishes silently, so you can trust what went in.

  3. 3
    You ask Claude

    Put the clean ones in a new list called Fintech Founders.

    Claude calls mcp__hothawk__crm_lists_create
    name "Fintech Founders" leads the imported rows

    The list is created and the clean leads sit in it, ready to point a campaign at. One import, one sorted list, no spreadsheet left open.

A dirty list is a sending problem, not an admin one

Most people treat cleaning a lead list as tidy-up work, the boring bit before the real job. It is the opposite. The state of your list decides how your mailboxes get treated. Send to a pile of dead addresses and you bounce. Bounce enough and providers stop trusting the inbox you sent from, which drags down every campaign after it, even the clean ones.

So the clean-up is the sending strategy. A list with no duplicates, no broken emails and no info@ catch-alls is the single cheapest thing you can do to protect your reputation. It is also the most skipped, because doing it by hand in a spreadsheet is dull and slow.

Let Claude do the boring pass

This is the exact shape of work a model is good at. You give it the file and your rules in a sentence, and it works down every row: matching duplicates, flagging the empties, spotting the role addresses that never reach a human. It imports the survivors with crm_leads_bulk_create and hands you a plain summary of what it binned.

The summary matters as much as the import. You see 140 duplicates gone, 60 with no email, a dozen bits of junk, so you know what went in and why. Nothing disappears quietly. Your original file is untouched; the clean version is what reaches HotHawk.

Put the clean leads somewhere useful

A clean import is only half the job if the leads scatter into one big undifferentiated pool. So the last step puts them in a named list with crm_lists_create, ready to point a campaign at. Fintech founders in one list, agency owners in another, whatever the file was.

From here the leads sit inside HotHawk, ready for the rotation and warmup that guard every send. But none of that machinery saves you from a bounce rate you imported yourself, which is why the clean list you just built matters more than the protections around it. Next you can segment it further or launch straight into a campaign, both a sentence away in the same chat.

The HotHawk tools behind this

Every action here is a real endpoint. Claude reaches it over the MCP server, and you can hit the same endpoints directly from the REST API if you would rather build it into your own stack.

  • mcp__hothawk__crm_leads_bulk_create Import a batch of leads and skip the duplicates
  • mcp__hothawk__crm_lists_create Create the list the clean leads go into

Frequently asked

What counts as a lead worth dropping?

The usual culprits: exact duplicates, rows with no email or a broken one, and role addresses like info@ or sales@ that never reach a person. You can tell Claude your own rules too, such as binning free webmail domains or anything missing a company name.

Why bother cleaning before I import?

Because a messy list hurts your sending. Bounces off dead addresses and duplicate hits to the same person are exactly what mailbox providers watch for. Cleaning first keeps your bounce rate low, which protects the reputation of every mailbox you send from.

Can I see what got skipped before it commits?

Yes. Ask Claude to show the summary first: how many duplicates, how many missing emails, what it plans to drop. You approve, then it imports. Nothing is deleted from your file, only left out of the import.

How big a list can I import at once?

Thousands of rows in one go. For very large files it is worth having Claude clean and import in batches so you can eyeball each summary. The same bulk endpoint sits in the REST API if you want to run it as a scheduled job.

Do I need to write code to do this?

No. You hand Claude the CSV and describe the tidy-up in plain language. It does the rest through the MCP server. The REST API is only there if you would rather wire imports straight into your own stack.

Send cold emails that get delivered. Never miss a positive reply.

Serious deliverability paired with the best reply management in the market.

Start your 7 day free trial

No credit card required.

Premium warmup

Join our premium warmup pool

We have over 50,000 Google and Microsoft mailboxes in the pool and we are opening to the public soon. Be first to know when it's open.

Special offer

Get 50% more sending, FREE.

Send 50% extra emails per month on any plan, every month for as long as you're with us. Enter your details and we'll email your promo code over.

Your new boosted limits

  • Starter 100,000 150,000
  • Scale 300,000 450,000
  • Infra 500,000 750,000

Applies to any plan. One per customer.