One request, measured.
The sample file is 500 real-world cafe sales with the usual damage. One plain-English request, “Clean up missing and invalid values,” takes it from unusable to ready.
| Measure | Uploaded | After one request |
|---|---|---|
| Rows | 500 | 497 |
| Empty cells | 329 | 0 |
| Invalid values | 174 | 0 |
How it works
Three steps you can watch: what was wrong, what changed, and proof that nothing is left broken.
Upload a CSV or Excel file. Jade checks every cell and flags blanks and placeholder junk like ERROR and UNKNOWN before you type a word.
| Item | Qty | Price | Total | Payment | Location |
|---|---|---|---|---|---|
| Coffee | 2 | 2.0 | 4.0 | Credit Card | Takeaway |
| Cake | 4 | 3.0 | 12.0 | Cash | In-store |
| Cookie | 4 | 1.0 | ERROR | Credit Card | In-store |
| Salad | 2 | 5.0 | 10.0 | UNKNOWN | UNKNOWN |
| Coffee | 2 | 2.0 | 4.0 | Digital Wallet | In-store |
| Smoothie | 5 | 4.0 | 20.0 | Credit Card | — |
| UNKNOWN | 3 | 3.0 | 9.0 | ERROR | Takeaway |
| Sandwich | 4 | 4.0 | 16.0 | Cash | UNKNOWN |
| — | 5 | 3.0 | 15.0 | — | Takeaway |
| Sandwich | 5 | 4.0 | 20.0 | — | In-store |
01
Detect
Upload a CSV or Excel file. Jade checks every cell and flags blanks and placeholder junk like ERROR and UNKNOWN before you type a word.
02
Repair
Ask it to clean up. Jade writes pandas for the fixes: totals are recalculated from quantity and price, and gaps it can't recover are labeled instead of guessed.
03
Verify
Then it re-checks the result and reports what changed. In the sample file, one request leaves no issues and keeps 497 of 500 rows.
Under the hood
A LangGraph workflow decides what you are asking for, writes pandas code, runs it against your data, and checks the result before it answers.
Your message
POST /chat/stream
Classify intent
intent_classifier.py
Broad cleaning
Repeats until clean · stops when a pass makes no progress
Assess quality
quality_assessor.py
Write the fix
code_generator.py
Run pandas
code_executor.py
Transform · analyze · chart
One pass
Write code
code_generator.py
Run pandas
code_executor.py
Summarize
response_generator.py
Stream to the workspace
server-sent events
- Next.js + React
- The workspace: AG Grid table, chat, and a Chart.js dashboard.
- FastAPI
- File parsing with pandas, and chat responses streamed over SSE.
- LangGraph
- Routes each request and runs the multi-pass cleaning loop.
- Groq · gpt-oss-120b
- Fast generation for the pandas code and the result summaries.