International AI Agents Hackathon 2026

Submitted — Data Analyst AI Agent

Try it!


View Live Site View on GitHub View Project Page

Hackathon code submission: backend/bots.py


Demo



Submission


Submitted to Devpost as Data Analyst. The stack it was actually built on:

CrewAI REST API Groq
Read the full write-up on Devpost

About the Project


Inspiration: My dad uses AI constantly to analyse data — and it made me realise I'd never tried to build something that actually solved a data problem end-to-end. That gap, plus wanting to understand how tools like CrewAI work under the hood, drove this project. Building it taught me more about agentic systems than using them ever did.

What it does: You upload a data file through the React frontend. It gets pushed to a CrewAI backend hosted on HuggingFace, where six specialised agents handle it in sequence: a context agent works out what you are asking, a data cleaner checks the data quality, a prompt engineer writes precise instructions for the analyst, a senior data analyst identifies outliers and summarises findings, an output formatter shapes the result for your use case, and a QA critic rates how well the answer matched the original request — so you can see whether the agents actually answered your question.

How it was built: React + Vite frontend hosted on Vercel, a REST API connecting it to the backend via async functions, and CrewAI managing the agent pipeline on HuggingFace. LLMs sourced through OpenRouter's free tier with a model rotation fallback in backend/bots.py to handle rate limits across providers.

Challenges: LLM models kept erroring despite correct OpenRouter calls. Deep agent reasoning made testing slow. API keys maxed out constantly during development — there were moments where pivoting felt like the only option.

What I learned: CrewAI is a genuine game-changer for agentic workflows. I've started integrating it into other repos. The hardest part wasn't the agents — it was writing prompts precise enough that the agents didn't go off-track mid-pipeline.

What's next: Using this as the data processing backbone for PhysTech 2026 and integrating it into major GitHub repos for clustering and growth analysis.

Agent Pipeline


Data Analyst AI Agent — CrewAI Pipeline ══════════════════════════════════════════ ┌─────────────────────────────────────────┐ │ User Upload (Frontend) │ │ React + Vite · Vercel │ └──────────────────┬──────────────────────┘ │ REST API (async) ▼ ┌─────────────────────────────────────────┐ │ CrewAI Backend (HuggingFace) │ │ │ │ 1. Context Agent │ │ rewrites user request into a │ │ precise, unambiguous directive │ │ │ │ │ ▼ │ │ 2. Prompt Engineer │ │ builds step-by-step instructions │ │ for the data analyst │ │ │ │ │ ▼ │ │ 3. Senior Data Analyst │ │ reads file, identifies outliers, │ │ summarises findings │ │ │ │ │ ▼ │ │ 4. Output Formatter │ │ enforces JSON schema, selects │ │ chart type, rates answer quality │ └──────────────────┬──────────────────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ Structured Result │ │ chart / report + quality rating │ └─────────────────────────────────────────┘ LLMs: OpenRouter free tier (Groq fast pool + fallback rotation) Core logic: backend/bots.py Rate limits handled by bots.py: per-model cooldown tracking with automatic fallback across provider tiers.

Dev Notes

Tech Stack

React + Vite (Vercel), Python + CrewAI (HuggingFace), REST API, OpenRouter free LLMs. Rate-limit rotation logic in backend/bots.py.

Hardest Part

API keys maxing out during testing with no time to pivot. Also: LLM errors that weren't caused by incorrect API calls — just flaky free-tier model availability.

What I'd Do Differently

Set up model rotation from day one instead of treating it as a fix. Testing multi-agent pipelines is expensive — mock the LLM calls for unit testing and only hit real APIs for integration tests.


← Back to Hackathons Back to top