Boardroom
"Your sub-accounts have opinions. Let them speak."
Boardroom turns your bunq sub-accounts into a living board of directors. Five AI personalities — each with a distinct financial philosophy — debate how to split your salary, vote on a plan, and schedule your week's spending. You're the CEO: you hear the arguments, pick a plan, and approve payments. The agents do the rest.
Built for the bunq × Multi-Agent Hackathon.
The Idea
Most budgeting apps ask you to make more decisions. Boardroom flips this.
Insight A — People are better at refereeing a debate than arguing with themselves. Externalizing "future you" as five distinct agents (the saver, the accountant, the hedonist, the dreamer, the auditor) makes financial trade-offs concrete and even entertaining. You're not fighting your own impulses — you're listening to a boardroom argument and casting a deciding vote.
Insight B — Opt-out is cognitively lighter than opt-in. The weekly calendar arrives pre-approved. Every spending slot is already filled with the agent's best pick. You swipe away what you don't want. The rest happens automatically.
Meet the Board
| Name | Sub-account | Philosophy | |
|---|---|---|---|
| 🪙 | Vera the Saver | Savings | Build the emergency fund first. Always. |
| 📊 | Victor the Accountant | Bills | Fixed costs on time. Zero late fees. Ever. |
| 🌙 | Luna the Hedonist | Fun | Make room for joy. Life is too short. |
| ✈️ | Milo the Dreamer | Travel | Invest in experiences. Book early, save more. |
| 📋 | Theo the Auditor | Tax/Buffer | Flag unusual spend. Keep a 15 % buffer. |
Each Ugent (User + Agent) has its own Claude system prompt, personality mandate, and autonomy cap. Small recurring payments (e.g. a yoga class) can be approved automatically; large allocations require the CEO's sign-off.
How It Works
Step 1 — Onboarding
A voice-based conversation reads your last 90 days of transactions, identifies spending patterns, and asks about your goals. Five sub-accounts are created in bunq Sandbox and each Ugent is initialized with a tailored mandate.
Step 2 — Monthly Board Meeting
When your salary arrives, the board convenes:
- Propose — each Ugent independently pitches a budget allocation
- Debate — two rounds of cross-examination (Luna and Vera rarely agree)
- Vote — agents cast weighted votes across three plans: 🛡 Conservative / ⚖️ Balanced / 🚀 Brave
- Approve — you pick a plan, the Executor calls bunq's payment API, and the money moves
Step 3 — Weekly Calendar
Every Sunday the board generates a full week of spending slots — one best-pick merchant per category, pre-approved. You scroll through, deselect anything you don't want, and let the rest execute on schedule. Tap any event to see three agent-recommended alternatives with their reasoning.
Multi-Agent Architecture
User (CEO)
│
Chair / Orchestrator
│
┌────────┬────────┼────────┬────────┐
▼ ▼ ▼ ▼ ▼
Vera Victor Luna Milo Theo
(Savings)(Bills) (Fun) (Travel) (Tax)
└────────┴────────┴────────┴────────┘
│
Executor
(enforces autonomy caps)
│
bunq Sandbox API
| Agent | Role | LLM calls |
|---|---|---|
| Chair | Orchestrates meetings, writes minutes, generates 3 plans, hosts voice onboarding | Multiple |
| Ugents × 5 | Independent personas — propose, debate, vote, generate calendar events | Per agent |
| Historian | Reads bunq transactions, categorises spend, builds user profile | Once (onboarding) |
| Executor | Translates board decisions into bunq API calls, enforces caps | None (no LLM) |
Tech Stack
Frontend
- Next.js 14 (App Router) + React 18
- TypeScript + Tailwind CSS
- Mobile-first layout (iPhone 14 Pro width, complete with notch and home indicator)
Backend
- FastAPI (Python, async)
- Anthropic Claude API — each Ugent runs a separate system prompt
- bunq Sandbox API — real sub-account creation and transfers
Key integrations
POST /monetary-account-bank× 5 — creates sub-accounts on onboardingPOST /payment— monthly inter-account allocation and merchant payments- Webhook handler — detects salary deposits to trigger board meetings
Getting Started
Prerequisites: Node 18+, Python 3.11+, a bunq Sandbox API key, an Anthropic API key.
# Backend
cd backend
pip install -r requirements.txt
cp .env.example .env # add ANTHROPIC_API_KEY and BUNQ_API_KEY
uvicorn main:app --reload # http://localhost:8000
# Frontend (separate terminal)
cd frontend
npm install
npm run dev # http://localhost:3000
The frontend runs fully on mock data out of the box — no API keys required for the demo flow.
Demo Flow (3 min)
| Time | What happens |
|---|---|
| 0:00–0:15 | Home screen — meet the five board members |
| 0:15–0:35 | Voice onboarding replay — "they read 90 days of transactions, then interviewed me" |
| 0:35–1:30 | Salary arrives → board convenes → debate plays out with five distinct voices |
| 1:30–1:50 | Three plans displayed → user picks Balanced → one tap → bunq sub-account balances change live |
| 1:50–2:30 | Open weekly calendar — Luna booked Friday dinner, Milo scheduled Wednesday yoga |
| 2:30–2:45 | Swipe away two events; tap yoga to see cheaper alternatives with agent quotes |
| 2:45–3:00 | Simulate Wednesday 19:00 → push notification → approve → real bunq payment confirmed |
Project Structure
boardroom/
├── frontend/ # Next.js mobile UI
│ ├── app/ # App Router pages
│ ├── components/ # HomeView, MeetingView, CalendarView, VoiceOrb, …
│ └── lib/ # Mock data, categories, type definitions
└── backend/ # FastAPI service
├── main.py # Routes and in-memory state
├── models.py # Pydantic schemas (Ugent, BoardMeeting, CalendarEvent, …)
├── bunq_client.py # bunq Sandbox wrapper with mock fallback
├── merchants.py # Pre-seeded Amsterdam merchants
└── agents/ # ugents.py, chair.py, executor.py, historian.py
What's Real vs. Demo
| Feature | Status |
|---|---|
| bunq sub-account creation | Real API call (Sandbox) |
| Monthly inter-account transfers | Real API call (Sandbox) |
| Merchant payment (yoga demo) | Real API call (Sandbox) |
| Agent debate & proposals | Claude API (falls back to hardcoded demo) |
| Voice onboarding | Simulated (orb UI, mock transcript) |
| Calendar & alternatives | Mock data, Amsterdam merchants |
bunq × Multi-Agent Hackathon · April 2026
Built With
- bunqapi
- fastapi
- react

Log in or sign up for Devpost to join the conversation.