Render raises $100M at a $1.5B valuation
Read the announcementWhy deploy ICP Data Analysis Chat Agent on Render?
ICP Data Analysis Chat Agent is a conversational interface for analyzing customer data to identify Ideal Customer Profile matches using LLM-powered insights. It enables users to ask natural language questions about their customer data and receive instant analysis without writing queries.
This template wires together a FastAPI backend, Next.js frontend, and PostgreSQL database with all service URLs and database connections pre-configured—you just add your OpenAI or Anthropic API key and deploy. Skip the hours of configuring Docker networking, database connection strings, and frontend-to-backend routing that this multi-service architecture typically requires. With Render's managed Postgres handling backups and the one-click deploy connecting all three services automatically, you get a production-ready ICP analysis tool running in minutes instead of an afternoon.
Architecture
What you can build
After deploying, you'll have a chat interface where you can upload customer data as a CSV and query it using natural language to identify ideal customer profiles. The system scores and analyzes your customers using OpenAI or Anthropic models, returning tables, charts, and actionable insights based on your questions. You can optionally connect a PostgreSQL database to combine signup data with your enrichment data for deeper analysis.
Key features
- Multi-Provider LLM Support: Integrates with both OpenAI and Anthropic APIs, allowing you to switch between GPT-4, Claude, and other models via environment configuration.
- CSV-to-Memory Processing: Uploads CSV files directly into pandas DataFrames stored in application state, enabling immediate querying without database setup.
- Automatic Schema Mapping: Uses similarity scoring (0.6 threshold) to automatically align column names between enrichment CSV data and PostgreSQL signup tables.
- Docker Compose Dev Stack: Provides a single-command local setup with FastAPI backend, Next.js frontend, and PostgreSQL all containerized and pre-configured.
- Structured LLM Outputs: Returns AI responses as formatted tables, auto-generated Recharts visualizations, and executable SQL queries rather than plain text.
Use cases
- Sales ops manager scores inbound leads against ICP criteria
- Founder analyzes signups to find patterns in best-fit customers
- Marketing analyst asks natural language questions about enrichment data
- RevOps team combines CRM exports with signup data for segmentation
What's included
Service | Type | Purpose |
|---|---|---|
icp-analysis-api | Web Service | Handles API requests and business logic |
icp-analysis-frontend | Web Service | Serves the user interface |
icp-analysis-db | PostgreSQL | Primary database |
Prerequisites
- OpenAI API Key: Your API key for OpenAI to power the AI chat and analysis features (alternatively, you can use an Anthropic key instead).
- Anthropic API Key: Your API key for Anthropic's Claude models to power the AI chat and analysis features (alternatively, you can use an OpenAI key instead).
Next steps
- Open the Data Analyst page at your frontend URL and upload a sample enrichment CSV — You should see the file appear in the sidebar with column names detected and a success message confirming the data was loaded
- Test the chat interface by asking 'What industries are most common in my data?' — You should receive a response within 15 seconds showing a breakdown table or chart of industry distribution from your uploaded CSV
- Configure your OpenAI or Anthropic API key in the Render environment variables if not already set — When you ask a question in the chat, you should get an AI-generated response instead of an API key error message