Dashboard for Claude ambassadors to visualize and triage Luma event registrations.
Drop your CSV, run one command, get a full dashboard with charts, triage tools, and an approved list.
- Node.js (LTS)
- pnpm
- Claude CLI (for processing your CSV)
# 1. Clone and install
git clone <this-repo>
cd luma-stats
pnpm install
# 2. Export your guest list from Luma (CSV format)
# Place it at data/list.csv
# 3. Process with Claude
pnpm process
# 4. Start the dashboard
pnpm devOpen http://localhost:3000 to see your dashboard.
pnpm process calls Claude CLI to analyze your CSV. Claude:
- Detects standard Luma columns vs custom form questions
- Classifies qualitative fields (roles, industries, interests) into meaningful categories
- Computes a relevance score (0-100) for each candidate
- Decides which charts to show and how to configure the dashboard
- Outputs
data/processed.jsonwhich the app reads
The app has 3 views (toggle at the top):
- Dashboard — Charts and stats overview
- Triage — Review and approve/decline candidates with balance tracking
- Approved — Filterable table of approved candidates
When you get new registrations:
- Re-export the full CSV from Luma
- Replace
data/list.csv - Run
pnpm processagain
Your triage decisions are stored in the browser (localStorage) and are linked to candidate IDs, so they survive re-processing.
- Remove the
data/processed.jsonline from.gitignore - Commit
data/processed.jsonto your repo - Connect to Vercel and deploy
Never commit data/list.csv — it contains raw emails and personal data.
This tool displays full candidate information (names, emails, LinkedIn URLs) by design — it's an internal ambassador tool for event curation.
If you deploy publicly, protect access:
- Use Vercel Password Protection (Pro plan)
- Or deploy behind your own authentication
The raw CSV (data/list.csv) is always gitignored and should never be committed.
The tool automatically detects custom columns in your Luma export. Claude analyzes each custom question and decides how to render it:
- Categorical data → filter chips + charts
- Free-text responses → detail fields in triage cards
- Yes/no questions → filters
You can customize the prompt at scripts/prompt.md.

