All posts
HackathonAIPythonReactJS

Hard Baller at TUM AI Christmas Hackathon

2025-12-20

A few weeks ago, I found myself at the TUM.ai × Anthropic Hackathon — 24 hours to build something meaningful with AI. My team and I took the brief, ran with it, and walked out without a prize — but with something arguably more valuable: a deep understanding of multi-agent systems, and a working product we're genuinely proud of.

Hard Baller app

The Challenge

The brief from AskLio (now rebranded to Lio) was refreshingly direct. No corporate framing, no lengthy rubric — just a pointed question:

“Was that actually good? Or did I just leave 30% on the table?”

Their challenge: build a multi-agent system, a brilliant single agent, or a smart automation that negotiates for you. Format, stack, and approach were fully open. The only requirement was ambition: “build agents that redefine how negotiations are done.”

The Problem We Wanted to Solve

B2B procurement is tedious. If you're a procurement manager trying to buy 10,000 metal enclosures, you're probably juggling emails with five different suppliers, copy-pasting price comparisons into a spreadsheet, and crafting yet another “per our last conversation” follow-up at 11 PM.

The painful part isn't the decision-making — it's the repetitive, context-heavy communication work that precedes it. We wanted to automate that. Not with generic email templates, but with a system smart enough to actually negotiate.

What We Built

Hard Baller is a single-page procurement negotiation agent. The entire flow starts with plain English:

“I want to buy 1,600 basketballs by next month with a budget of $10,000.”

From that one sentence, the agent:

  1. Researches vendors — finding real suppliers and analyzing their market position, pricing power, and company profile using live web search
  2. Contacts at least 3 vendors automatically — firing off opening emails without any manual input
  3. Tracks negotiations in parallel — maintaining separate conversation threads per vendor
  4. Generates culturally-tailored emails — our centerpiece feature
Hard Baller app interface

The Highlight: Culture-Aware, Context-Aware Emails

This is where most “AI email tools” get it wrong. They produce the same polished but hollow template, regardless of who's on the other end.

We took a different approach. Before drafting any email, the agent analyzes the vendor's cultural background. Negotiating with a supplier in Shenzhen? The agent understands high-context communication norms, the importance of maintaining “face” (Mianzi), and defaults to a relationship-first, formal tone. Reaching out to a Nordic manufacturer? Different register entirely.

Beyond culture, the email is also shaped by conversation history and cross-supplier dynamics — as other vendors submit better offers, the email content shifts to reflect competitive pressure, applying classic negotiation tactics like anchoring and competitor leverage.

The Architecture

Under the hood, Hard Baller is a multi-agent pipeline built on Google ADK (Agent Development Kit):

User Input
Coordinator Agent
Company Research Agent ← google_search
Market Competitor Agent ← google_search
Price & Cost Agent ← google_search
Strategy Agent ← synthesis
Negotiation Tactics Agent ← synthesis
Email Generator Agent ← context + history
Output: Tailored Email + Strategy Brief
Google ADKClaude SonnetLiteLLMGoogle SearchFastAPISQLiteReact

What I Learned

Google ADK is genuinely interesting

I'd worked with LangChain and custom orchestration before, but ADK's agent-as-pipeline model clicked well for this use case. Defining agents with explicit input/output schemas (via Pydantic) made the handoffs between agents clean and debuggable.

Multi-agent systems fail in interesting ways

The hardest bugs weren't crashes — they were silent degradations. An agent would technically produce an output, but it would be hallucinated, vague, or missing the context the next agent needed. We spent more time prompt-engineering the inter-agent contracts than we did building the UI.

Grounding matters more than cleverness

Early drafts of our emails were eloquent but unmoored from reality. Once we routed real vendor research through the pipeline before the email step, the outputs became dramatically more convincing. The model doesn't need to be more creative — it needs more facts.

Hard Baller team

What We'd Do Differently

  • Better memory across negotiation rounds — a persistent negotiation memory store would make multi-week procurement cycles much more powerful
  • Richer competitor benchmarking — structured pricing databases would sharpen the leverage arguments
  • A proper feedback loop — letting the user rate email quality so the strategy adapts over time

Try It Yourself

The project is fully open source: github.com/panthibivek/hard-baller

You'll need a Google API key (for Gemini + Search) and an Anthropic API key (for Claude). Setup is straightforward — clone, install requirements, drop in your keys, and run python main.py.

Built at TUM.ai × Anthropic Hackathon. Team: Joshua, Bivek Panthi, and teammates.

Tech: Google ADK · Claude Sonnet · React · FastAPI · Google Search

Enjoyed this post? Check out what else I've been building.

See my other posts