CRMind is an entity-first, citation-aware CRM intelligence platform. It resolves companies and people to canonical records, retrieves source-backed evidence using hybrid search, runs workflow agents for lead finding and account briefs, and returns structured JSON where claims include citations.
- Backend: FastAPI + asyncpg + pgvector
- Agents: LangGraph-compatible workflow runtime with grounded retrieval
- Data: PostgreSQL (companies, people, signals, chunks, agent_runs)
- Frontend: Next.js 14 App Router under frontend
- API docs: http://localhost:8000/docs
docker compose up -d
cp .env.example .env
python scripts/init_db.py
python scripts/seed_demo_data.py
uvicorn backend.main:app --reload
cd frontend && npm install && npm run dev- Find senior engineers at Example Inc
- Show recent hiring signals for Example Inc
- Account brief for Example Inc
- Why is the record for example.com stale?
OpenAPI docs are available at:
- Import only the frontend directory as a Vercel project.
- Set these Vercel environment variables:
NEXT_PUBLIC_API_BASE_URL=https://<your-render-service>.onrender.com/api/v1NEXT_PUBLIC_SUPABASE_URL=https://<your-project>.supabase.coNEXT_PUBLIC_SUPABASE_ANON_KEY=<supabase-anon-key>
- Keep frontend/vercel.json as-is for cache headers.
- Deploy with the Vercel Hobby (free) tier.
- Create a Render Web Service from render.yaml (Starter free tier).
- Set required env vars in Render:
DATABASE_URLandDATABASE_URL_DIRECT(Supabase pooled/direct URLs)SUPABASE_URL,SUPABASE_ANON_KEY,SUPABASE_SERVICE_ROLE_KEY,SUPABASE_JWT_SECRETOPENAI_API_KEY,GROQ_API_KEY,API_KEY,INTERNAL_SERVICE_API_KEYDB_POOL_MAX_SIZE=5(important for Supabase free connection limits)
- Confirm health endpoint at
/api/v1/health. - Keep free-tier usage low by using scheduled ingest and query caching.
- Create a Supabase free project.
- Enable required extensions in SQL editor:
CREATE EXTENSION IF NOT EXISTS vector;CREATE EXTENSION IF NOT EXISTS pg_trgm;
- Run migrations with Alembic or
python scripts/init_db.py. - Use Supabase pooled connection for
DATABASE_URLand direct connection forDATABASE_URL_DIRECT.
- Host frontend on Vercel Hobby.
- Host backend API on Render free tier.
- Use Supabase free Postgres + Auth.
- Keep
DB_POOL_MAX_SIZE=5and use cached agent responses (CACHE_TTL_SECONDS=3600) to stay in free limits. - Use GitHub Actions schedules for batch ingest and score refresh during off-hours.
- Built entity-first CRM intelligence platform with grounded RAG and citation-backed responses.
- Implemented async ingestion and hybrid retrieval pipeline (vector + keyword + ranking).
- Designed multi-workflow agent system (lead finder, account brief, enrichment, research, ops debug).
- Added cache-aware agent orchestration and background crawl processing for cost efficiency.