Introducing CSVAI: Automate Data Enrichment from Any CSV or Excel File with Generative AI
At Zyxware Technologies, we constantly look for ways to reduce manual effort, streamline processes, and unlock insights for our clients and the wider community. Today, we are delighted to announce the release of CSVAI, a free and open-source tool we built to automate data enrichment from CSV and Excel files using Generative AI.
What is CSVAI?
CSVAI is a Python library and command-line tool that applies an AI prompt to every row in your CSV or Excel file, enriches the data using the OpenAI Responses API, and writes the results back into a structured output file.
Think of it as a bridge between your raw business data and actionable insights - without needing to build a custom app for every use case.

Why did we build CSVAI?
In our own projects, we frequently deal with large datasets - leads, reviews, support tickets, product catalogs - where every row needs additional intelligence. Doing this manually is slow, error-prone, and expensive. We wanted a crash-safe, and scalable way to enrich these datasets using AI.
Realizing its potential beyond our internal workflows, we decided to make it available to the wider community under a GNU GPL license.
Use Cases
- Enriching lead databases with missing fields from the available data.
- Summarizing customer reviews into actionable insights
- Categorizing support tickets automatically
- Extracting structured values (e.g., city, state, country from raw address) from unstructured text
Doing this manually is time-consuming and error-prone. Writing custom scripts for every case is overkill. CSVAI solves this gap by providing a reusable, prompt-driven engine.
Key Features
- Structured Outputs with JSON Schema: enforce consistent, validated results.
- JSON mode: schema-less, but still ensures each row produces a valid JSON object.
- Async & concurrent: process thousands of rows in parallel.
- Resumable: safely restart without reprocessing completed rows.
- CSV & Excel support: works with .csv, .xlsx, and .xls files.
- Command-line or Streamlit UI: use it in automation scripts or with a simple UI.
Examples
Address Standardization: Input: address.csv
Address
"1600 Amphitheatre Parkway, USA"
"221B Baker Street, London, UK"
Prompt:
Extract city, state, and country from the given address and output JSON.
Rules:
- city: city/town/locality (preserve accents, proper case)
- state: ISO-standard name of the state/region/province or "" if none
- country: ISO 3166 English short name of the country; infer if obvious, else ""
- Ignore descriptors like "(EU)"
- Do not guess street-level info
Inputs:
Address: {{Address}}
Output:
Address | city | state | country |
---|---|---|---|
1600 Amphitheatre Parkway, USA | Mountain View | California | United States |
221B Baker Street, London, UK | London | United Kingdom |
Getting Started
Installation
git clone https://github.com/zyxware/csvai
cd csvai
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
cp example.env .env
# Add your OpenAI API key in .env
CLI Usage
csvai input.csv --prompt input.prompt.txt --schema input.schema.json
--prompt - text file containing your prompt
--schema - JSON schema for strict structured output (recommended)
--limit - process only N rows for testing
--model - choose your preferred OpenAI model
Web UI
CSVAI includes a browser-based UI implemented in streamlit.
streamlit run csvai-ui.py
Prompt Builder for CSVAI
To make prompt and schema creation easier, we’ve built a CSV AI Prompt Builder — a Custom GPT that generates tailored prompts and JSON Schemas for your data.
With this you can create the detailed prompts and schema files required for csvai with simple prompts like
- I have products.csv with Product Title, Product Description, Category, and Sub Category. Help me enrich with SEO meta fields.
- I have reviews.csv with Title, Body, and Stars. Help me extract sentiment and generate a short summary.
- I have address.csv with an Address field. Help me extract City, State, and Country using ISO-standard names.
- I have tickets.csv with Subject and Description. Help me classify each ticket into predefined support categories.
- I have posts.csv with Title, Body, URL, Image URL, Brand, and Platform. Help me generate social media captions, hashtags, emojis, CTAs, and alt text.
- I have jobs.csv with Job Title and Description. Help me categorize jobs into sectors and identify the level of seniority.
Why Free and Open Source?
CSVAI began as an internal Zyxware tool for our own enrichment workflows. Recognizing its potential to help others, we released it under GPL v2. This reflects our philosophy of contributing back to the community while continuing to offer custom AI solutions for businesses.
CSVAI is free, open-source, and production-ready. Whether you are a business user, developer, or researcher, we invite you to explore how it can simplify your data enrichment workflows.
Get Involved
- Download: www.github.com/zyxware/csvai
- Report issues: GitHub Issues
- Need customization? Contact us
About Zyxware Technologies
At Zyxware Technologies, we help organizations harness AI, automation, and digital platforms to solve real-world problems. Our mission is to empower businesses with tools that reduce manual effort and unlock data-driven insights.
CSVAI is one such tool, freely available to the community, but we also provide commercial support and custom solutions tailored to your needs. If you’re looking to automate a unique business process or build a similar system, we invite you to schedule a free discovery call.