
Why JuntoAI Kinetic Is a Natural Fit for the Amazon Nova AI Hackathon
We didn't build Kinetic for a hackathon. But when we saw the categories, we realized we'd already built exactly what they're looking for.
The Amazon Nova AI Hackathon runs through March 16, 2026. Categories include Voice AI, Agentic AI, and Multimodal Understanding. Prizes total $40K in cash plus $55K in AWS credits.
When we read the category descriptions, we had a strange feeling: we already have the plan to built this.
JuntoAI Kinetic is a production AI system that conducts real-time speech-to-speech career interviews using Amazon Nova 2 Sonic. It's now live at kinetic.juntoai.org . Real users. Real interviews. Real infrastructure. And it touches every hackathon category simultaneously.
Here's why Kinetic is a natural fit and what the architecture looks like under the hood.
Voice AI: Not a Wrapper, a Native Implementation
Most Voice AI demos follow the same pattern: transcribe audio with Whisper, send text to an LLM, convert the response back to speech with ElevenLabs. Three API calls. Three latency penalties. Three points of failure.
Kinetic doesn't do that. We use Amazon Nova 2 Sonic for native speech-to-speech processing. Audio goes in, audio comes out. No intermediate text pipeline. The model handles voice activity detection, turn-taking, and barge-in support natively.
This matters because career interviews are conversations, not command-response interactions. When a user says "I managed a team of ..." and the AI interrupts with "How many people?", that interruption needs to happen in real time. A STT→LLM→TTS pipeline adds 2-4 seconds of latency per turn. Nova Sonic delivers responses in 2-3 seconds total, including the model's thinking time.
The implementation uses
InvokeModelWithBidirectionalStreamCommand and not the simpler Converse API. It's an event-based protocol where audio chunks flow continuously in both directions:Frontend (mic) → WebSocket → ECS Fargate → Bedrock Sonic → audio out → WebSocket → Frontend (speaker)We handle the 55-second inactivity timeout with keepalive silence chunks, the 8-minute stream limit with proactive rotation at pillar transitions, and conversation context preservation by replaying transcript history into new streams.
This is a production voice AI system handling 15-minute sessions with graceful degradation, cost controls, and monitoring.
Agentic AI: The Interrogator
Kinetic's AI isn't a chatbot. It's an agent with a mission: extract high-fidelity career data from a professional in 15 minutes.
The agent operates with structured behavior:
- A finite state machine (
fsmController.js) manages progression through three interview pillars: Values & Red Flags, Experience & Highlights, Dream Position
- A persona system (
personaManager.js) configures the AI's interview style: BALANCED, RUTHLESS, or NARRATIVE with dynamic system prompts that follow AWS Nova 2 best practices
- A metric auditor (
metricAuditor.js) runs a real-time "pushback loop": when the user gives a vague answer, the AI challenges them for specifics
- A pillar detector (
pillarDetector.js) determines when a topic is sufficiently covered and triggers transitions
- A closing detector (
closingDetector.js) with three-tier phrase detection recognizes when the interview is naturally wrapping up
The agent makes autonomous decisions: when to push back, when to move on, when to dig deeper, when to wrap up. It operates within constraints (15-minute budget, three pillars, cost ceiling) but has freedom in how it navigates the conversation.
After the interview, Amazon Nova 2 Lite processes the transcript and any uploaded CV to generate a structured Career Graph: a JSON object containing the user's strategic archetype (Fixer, Builder, or Scaler), depth scores, credibility indices, war stories with evidence, and values alignment.
Multimodal Understanding: Voice + Documents + Structured Output
Kinetic combines three modalities:
- Real-time voice (Nova Sonic): The interview itself
- Document understanding (Nova Lite): CV/PDF parsing via multimodal OCR
- Structured generation (Nova Lite): Career Graph JSON from transcript + CV
The CV parsing uses Nova Lite's
ConverseCommand with document content:const command = new ConverseCommand({
modelId: 'us.amazon.nova-2-lite-v1:0',
messages: [{
role: 'user',
content: [
{ document: { format: 'pdf', name: 'CV', source: { bytes: pdfBuffer } } },
{ text: 'Extract career timeline and top skills. Output JSON.' }
]
}]
});The extracted CV data feeds into the interview as context. The AI knows your work history before you start talking, so it can ask targeted questions instead of generic ones.
After the interview, Nova Lite cross-references the spoken transcript against the CV data, flags contradictions, and generates the final Career Graph. Voice input, document input, structured JSON output. Three modalities, two Nova models, one coherent pipeline.
The Architecture at a Glance
┌─────────────────────────────────────────────────┐
│ React Frontend (S3 + CloudFront) │
│ • AudioWorklet for glitch-free playback │
│ • WebSocket for bidirectional audio │
│ • Real-time transcript display │
│ • Pillar progress visualization │
└──────────────────┬──────────────────────────────┘
│ wss://
┌──────────────────▼──────────────────────────────┐
│ CareerGraph Service (ECS Fargate, Port 3003) │
│ • WebSocket handler (3,334 lines) │
│ • Finite state machine (pillar transitions) │
│ • Stream manager (8-min rotation) │
│ • Metric auditor (pushback loop) │
│ • Persona manager (dynamic prompts) │
│ • Session manager (state persistence) │
│ • 15-minute hard close enforcement │
└──────┬───────────────────┬──────────────────────┘
│ │
┌──────▼──────┐ ┌───────▼──────┐
│ Nova Sonic │ │ Nova Lite │
│ (Speech) │ │ (Analysis) │
│ us-east-1 │ │ us-east-1 │
└─────────────┘ └──────────────┘
Storage:
├── DynamoDB → Session metadata, user state, transcripts
├── S3 → Audio chunks, CVs, Career Graph JSON, PDFs
└── CloudWatch → 7-row dashboard, 12 alarms, custom metricsInfrastructure is fully defined in Terraform/Terragrunt:
- ECS Fargate with ALB routing and WebSocket stickiness (900s cookie)
- S3 with 10 lifecycle rules for tiered data retention
- DynamoDB single-table design with GSIs
- CloudWatch dashboard with Bedrock-specific metrics (invocations, latency, throttling)
- Automated CI/CD via CodePipeline with blue-green deployments
Cost Reality
One of the hackathon's implicit challenges is building something that could actually scale. Kinetic's cost structure:
- Nova Sonic (15-min interview): ~$0.10
- Nova Lite (CV parsing + analysis): ~$0.05
- DynamoDB + S3: ~$0.01
- Total per session: ~$0.15
At $29 per VIP conversion and 1.5% conversion rate, the unit economics work. This isn't a demo that would bankrupt you at scale. It's a production system with cost engineering baked into every layer.
Why This Matters for the Hackathon
The Amazon Nova AI Hackathon is looking for projects that push Nova's capabilities. Kinetic pushes three of them simultaneously:
- Voice AI that goes beyond simple Q&A: a 15-minute structured interview with state management, pushback loops, and graceful session handling
- Agentic behavior with autonomous decision-making within constraints: the AI decides when to push back, when to transition, when to close
- Multimodal understanding that combines real-time voice with document parsing and structured output generation
It's running in production, handling real users, with real infrastructure, real monitoring, and real cost controls.
The best hackathon projects aren't the ones that show what's possible in a weekend. They're the ones that show what's possible when you take a powerful model and build real engineering around it.
That's what Kinetic is. Test it today!
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article