Columns launched on Product Hunt on October 1. Templates, CSV export and usage-based billing are live.

SheetsTemplatesUsagePricing
Blog

How to Enrich a CSV With AI Without Writing Prompts or Formulas

Updated October 8, 2026

Write the question you want answered as a column header, upload the CSV, and let a no-code tool fill the new column for every row. By the end of this post you will know which kind of tool fits your list, how to run a 50 row test before you pay for 5,000, and how to find the rows that deserve a human instead of checking all of them.

Adding a column with AI is one upload and one question

AI data enrichment adds new fields to the records you already have, and the output is a set of new columns. Typical jobs are categorization, sentiment, data extraction and filling in missing information. Tools like CSV Analyst let you define the output fields (category, sentiment, tags, structured attributes) and process every row without scripts or formulas.

So the mechanics are not the hard part. The hard part is picking the right kind of tool for the column you need, and knowing which answers to believe once they land.

Pick the tool by what the new column contains

Most "enrich a CSV" pages mix three different jobs. They need different tools.

What the new column holdsExampleWhat fitsWhat to skip
A cleaned or standardized valueNames, formats, duplicatesA cleanup tool. CleanSheet AI runs a quality scan on an uploaded file, lets you pick a column, previews one-click fixes and exports CSV or XLSX.Anything that promises "insight" from a format fixer
A fact from outside your fileA work email, a phone number, a missing fieldA lookup tool that searches and cites. CSV Agent uses AI models and web search to fix errors, fill missing data and validate, with source citations.Asking a plain AI column to guess a phone number
A judgment about the row"Is this a B2B software company?" "Does this look like an ICP fit?"A tool where the question is the column header and each answer comes with a confidence number.Contact-data credits. A judgment is not a lookup.

If you are not sure which row you are in, ask this: could a stranger answer it from the company's website in 20 seconds? If yes, it is a judgment column. If the answer is not on the website at all, it is a lookup.

Skip the prompt: write the question as the header

FormulasBot has you write a prompt or choose one from its library. That works, but every column becomes a prompt you now maintain. When the output goes wrong on row 3,000, you are debugging wording.

A plain header avoids that. Write one full question per column, in the words you would use to ask a person.

Example: say you export 5,000 companies from Apollo and want to know which sell to other businesses. The header and the result look like this (company names are invented, and the 0 to 100 scale is only for illustration):

CompanyDoes this company sell software to other businesses?Confidence
Northwind Route PlannerYes94
Pine Street BakeryNo91
Harbor & Cole GroupYes48

The third row is why the confidence column exists. A bare "Yes" looks the same as the first one. With the number next to it, you know that is the row to read yourself.

A few header rules that save a rerun:

  • Ask for a full question, not a keyword. "Does this company sell software to other businesses?" beats "B2B".
  • One question per column. "Is it B2B and is it over 50 people?" is two columns.
  • Name the allowed answers when you need them: "yes or no", or "one of: agency, SaaS, ecommerce, other".
  • Keep the wording exactly the same between runs. Columns does not re-bill cached answers, so a rerun on the same header and the same rows costs nothing extra.

The confidence column tells you which rows to read

Some tools return a confidence value per row. AmpleData returns cited, confidence-scored cells you define in plain English, but it runs through an API. AgentUI's CSV enrichment blueprint logs confidence scores and the rationale for each change, aimed at people building automations. Columns puts a confidence number on every answer.

A citation does not replace the number. A cell can cite a page and still be wrong about what the page means. Use both when you have both, and rank your reading by confidence.

For a deeper look at why wrong answers hide, see How to Know Which AI Answers in Your Spreadsheet Are Wrong.

Set your review cutoff on a 50 row sample

  1. Run 50 rows.
  2. Sort by confidence, lowest first.
  3. Read every answer and mark the ones you would have fixed.
  4. Raise the cutoff until every row you marked sits below it.

That number is yours. It depends on how costly a wrong row is for your outreach, so do not borrow someone else's.

Example: say the cutoff lands so that 6% of a 5,000 row list falls below it, and a check takes 20 seconds. That is 300 rows, 6,000 seconds, about 1.7 hours. Checking all 5,000 rows at 20 seconds each is about 27.8 hours. The confidence column is the difference between an afternoon and most of a week.

Price it per finished row, not per plan

Cost comparisons go wrong when two tools measure different things. Cleanlist charges credits per result: 1 for a verified work email, 10 for a direct dial, 11 for both, and 0 for a row it cannot resolve. It also takes 10,000 rows per CSV file, so a 25,000 row export has to be split first.

Columns charges per row-question: one question against one row. The free plan includes 500 row-questions with no card. Starter is $29 a month for 25,000, and Pro is $99 a month for 150,000.

Repeat this with your own numbers:

  • Judgment columns: rows times questions equals row-questions. 5,000 rows with 3 questions is 15,000, which fits in one month of Starter.
  • Contact lookups: rows times credits per row, times the share of rows that resolve. Take the resolve share from your own sample, not from a vendor page.

Example: say 5,000 rows and you want email plus phone. At 11 credits each, if every row resolved that would be 55,000 credits. It is a different job from the 15,000 row-questions above, so do not subtract one from the other. Most lists need both: a lookup to get the contact, then a judgment column to decide whom to contact.

For the full walkthrough of qualifying a list that size, read How to Qualify 5,000 Leads Without Reading Every Website.

Three mistakes that cost you the run

MistakeWhat it costs
Using a cleanup tool for a judgment questionA column that looks full and tells you nothing
Skipping the 50 row sampleA badly worded header applied to every row, and the whole run paid for
Trusting every answer, or checking every answerWrong rows go straight into outreach, or you are back to days of manual work

One more that is easy to miss: rows with no website or a thin homepage tend to score low. Fix the input column (add the domain, drop dead rows) before the full run, not after.

Which route to take

  • Your column is a label or a judgment, and you do not want to write prompts: use a tool where the header is the question and every answer has a confidence number.
  • Your column is a contact detail: use a lookup tool and price it in credits per found result.
  • You are comfortable on the command line: CSVAI is free and open source and works on CSV and Excel files, but you set it up yourself.
  • Someone else will rely on the output (a client or a VA): pick a tool that records confidence per row so changes can be audited.

Do this in the next ten minutes

Open your CSV and write down the one judgment you pay a person to make today. Turn it into a single yes or no question in the words you would use out loud. Copy 50 rows into a new file. That is your test.

Run that 50 row test free

Columns is built for the judgment step: the question is the header, and each answer carries a confidence number so you read only the rows that need you. Upload your 50 rows on the free plan (500 row-questions, no card), sort by confidence and see where your cutoff lands. Start free, no card.

Frequently asked questions

Can I enrich a CSV with AI without an API key?
Yes. No-code tools let you upload the file and define the new column in the interface. Some options, like AmpleData, run through an API, so check how you reach the tool before you commit.
What is the difference between cleaning a CSV and enriching it?
Cleaning fixes values already in the file, such as formats and duplicates. Enriching adds a new column, either a looked-up fact or a judgment about the row.
How do I know the AI filled in the right data?
Ask for a confidence number with each answer, sort by it, and read the lowest rows first. Set your cutoff on a 50 row sample so it reflects how costly a wrong row is for you.
Do I pay for rows the tool could not fill in?
It depends on the tool. Cleanlist says a row it cannot resolve costs 0 credits. With Columns you are billed per row-question, and cached answers are not billed again.
Is there a file size limit when I upload a CSV?
Some tools set one. Cleanlist states 10,000 rows per file, so a 25,000 row export needs to be split. Check the limit on the tool you pick before you export.

Columns

Ask a question as a column header.

Upload a CSV and every row answers, with a confidence number so you know which few to check. 500 row-questions free, no card.