AI-powered operational assistant for high-cognitive-load workflows.
| Status | Active development |
| Version | v1.1 (founder-centric) |
| Interface | WhatsApp + Web dashboard |
| License | Proprietary |
Euryst is an AI agent that captures unstructured input (text, voice messages) via WhatsApp, transforms it into structured operational data, and persists it into a central dashboard.
It is not a chatbot. It is not a task manager.
It is a cognitive layer that:
- captures fragmented information under load
- structures it into actionable tasks
- tracks state over time
- surfaces what matters today
In real operational contexts, valuable information is:
- fragmented across chats, notes, voice messages
- captured under cognitive load
- lost before it becomes actionable
Traditional tools fail because they require structured input. Euryst accepts unstructured input and structures it for you.
[WhatsApp]
↓ text / voice message
[Backend]
↓ transcription (if audio)
↓ LLM processing (EURYST_CORE)
↓ structured output (tasks, priorities, blocks)
[Supabase]
↓ persistent storage
[Dashboard]
↓ daily view, verification, audit
-
Human-in-the-loop
Euryst proposes. You decide. No autonomous execution. -
Auditable
Every input logged. Every change tracked. Rollback possible. -
Low friction
Input via voice or text. No forms. No UI required for capture. -
Privacy-first
Your data stays in your Supabase instance. No third-party analytics.
Euryst v1 handles these domains:
- Recruiting / Selection (CV, interviews, shortlists, follow-ups)
- Client delivery (calls, status checks, roadmaps)
- Job posts / Ads (LinkedIn, budgets, screening)
- Light admin (invoices, reminders, info requests)
Anything outside this scope is flagged, not guessed.
euryst/
├── docs/
│ ├── EURYST_CORE_v1.1.md # System prompt (heuristics, behavior)
│ ├── UI_PROMPT.md # Lovable UI specification
│ ├── USER_PREFERENCES.md # UI/copy constraints
│ └── ARCHITECTURE.md # Backend integration spec
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page views (Oggi, Aziende, Recap, Preferenze, Inbox, Audit)
│ │ ├── hooks/ # Custom hooks
│ │ ├── lib/ # Utilities, Supabase client
│ │ └── styles/ # Tailwind / CSS
│ ├── public/
│ └── package.json
├── backend/
│ ├── webhook/ # WhatsApp webhook handler
│ ├── transcription/ # Speech-to-text pipeline
│ ├── agent/ # LLM orchestration
│ └── db/ # Supabase client
├── supabase/
│ └── migrations/ # Database schema
├── .env.example
└── README.md
| Table | Purpose |
|---|---|
TASKS |
Operational tasks with state, priority, blocks |
COMPANIES |
Client/company registry |
DAILY_LOG |
Daily recaps (morning/evening) |
PREFERENCES |
User settings |
SYSTEM_CONFIG |
System prompt storage + versioning |
| Table | Purpose |
|---|---|
INBOX_EVENTS |
Raw input log (text/audio from WhatsApp) |
PATCH_LOG |
Change audit trail (before/after, applied/pending) |
| Layer | Technology |
|---|---|
| Frontend | React (Lovable-generated) + Tailwind |
| Database | Supabase (PostgreSQL) |
| Backend | Node.js / Python |
| LLM | Claude API (provider-agnostic design) |
| Speech-to-text | Whisper API |
| Messaging | WhatsApp Business API |
| Hosting | Railway / Supabase Edge Functions |
- Node.js 18+
- Supabase project
- WhatsApp Business API access
- Anthropic API key (or compatible LLM)
- Whisper API access (for voice)
# Clone repository
git clone https://github.com/ambradan/euryst.git
cd euryst
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
# Configure environment
cp .env.example .env
# Edit .env with your credentials
# Run database migrations
npx supabase db push
# Start backend
cd ../backend
npm run dev
# Start frontend (separate terminal)
cd ../frontend
npm run dev# Supabase
SUPABASE_URL=
SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
# LLM
ANTHROPIC_API_KEY=
# WhatsApp
WHATSAPP_WEBHOOK_SECRET=
WHATSAPP_API_TOKEN=
WHATSAPP_PHONE_NUMBER_ID=
# Speech-to-text
WHISPER_API_KEY=
- During the day: Send voice/text messages to WhatsApp as things happen
- Morning ping (08:00): Euryst sends today's priorities
- Evening ping (18:00): Euryst asks for recap
| Command | Action |
|---|---|
/oggi |
Get today's priorities |
/blocchi |
Get blocked tasks |
/verifica |
Get tasks pending verification |
| Page | Purpose |
|---|---|
| Oggi | Today's tasks, priorities, blocks |
| Aziende | Client overview and details |
| Recap | Daily logs (morning/evening input/output) |
| Preferenze | Settings + system prompt |
| Inbox | Raw input log from WhatsApp |
| Audit | Change history with rollback info |
Euryst applies changes only when safe:
| Rule | Behavior |
|---|---|
| Max 5 tasks per batch | Larger changes require confirmation |
| New company detected | Always asks confirmation |
| Closing uncited tasks | Always asks confirmation |
| Low confidence | Proposes but does not apply |
All changes are logged with before/after state for rollback.
- Core heuristics (E1-E7)
- Dashboard UI (6 pages)
- WhatsApp input (text)
- WhatsApp input (voice)
- Confirmation flow
- Auto-apply safe changes
- Company aliases (fuzzy matching)
- Context window optimization
- Improved priority scoring
- Multi-tenant architecture
- Client-facing dashboard
- Role-based access
- Documentation-first
- AI-assisted development (Claude Code)
- Iterative refinement based on real usage
- No feature without specification
# Run backend tests
cd backend
npm test
# Run frontend tests
cd frontend
npm test
# Run heuristic regression tests
npm run test:heuristicsSystem prompt changes require:
- Version increment (v1.1 → v1.2)
- Changelog entry
- Regression test on known cases
- No autonomous execution without validation
- Transparent about AI-generated content
- Human control over all final actions
- Clear boundaries on what Euryst can/cannot do
Ambra Danesin
Product Architect · Technical Founder
- GitHub: @ambradan
- Email: ambradan@gmail.com
Proprietary. All rights reserved.
For licensing inquiries: ambradan@gmail.com