Your AI coach that reads your biology, knows your goals, and coaches you through every hour of your day.
Resolution Hacks 2026 β Harvard, Sever Hall 213 Team: Vikas + Data Scientist + Data Engineer + IS
cd pulse
npm installCreate .env.local (already exists β just fill in the key):
ANTHROPIC_API_KEY=your_key_here
Get the API key from: https://console.anthropic.com
Then run:
npm run devOpen: http://localhost:3000
pulse/
βββ app/
β βββ page.tsx # Root β redirects to onboarding or dashboard
β βββ layout.tsx # App shell
β βββ globals.css # Tailwind + animations
β βββ onboarding/
β β βββ page.tsx # Step-by-step North Stars setup
β βββ dashboard/
β β βββ page.tsx # Main app β brief, tasks, north stars tabs
β βββ tasks/
β β βββ page.tsx # Add task page
β βββ api/
β βββ brief/route.ts # POST β generates morning brief via Claude
β βββ nudge/route.ts # POST β generates consequence nudge via Claude
β βββ schedule/route.ts # POST β AI estimates task time
βββ lib/
β βββ types.ts # ALL shared TypeScript types (import from here)
β βββ claude.ts # ALL Claude API calls (add new ones here)
βββ data/
β βββ mockBioData.ts # Mock Apple Health + Clair hormone data
βββ components/ # Add shared UI components here
βββ .env.local # ANTHROPIC_API_KEY goes here
- Project architecture + setup
- Claude API integration (lib/claude.ts)
- All API routes
- Core app flow (onboarding β dashboard β tasks)
File to work in: data/mockBioData.ts
- Make the hormone curve model richer β add female profile option
- Add a function
predictEnergyForDay(sleepScore)that adjusts the curve based on sleep quality - Add
getOptimalTaskWindow(task)that returns the best time to do a given task type - Bonus: add a simple linear regression that predicts energy dips
Files to work in: data/mockBioData.ts + new files
- Replace mock sleep data with richer simulated Apple Health export (JSON)
- Add a
parseAppleHealthXML()function for real data (demo only) - Add mock Google Calendar events to show on dashboard
- Create
data/mockCalendar.tswith 3-4 events for demo day - Wire calendar events into the dashboard schedule view
Files to work in: app/dashboard/page.tsx + components/
- Make the dashboard beautiful β this is what judges see
- Add an energy curve chart (use recharts or Chart.js)
- Build the celebration animation (full screen confetti when task completes)
- Build the weekly report card component
- Make it mobile-friendly
- Create the demo seed data (realistic tasks for the demo)
- Most important: prep the demo flow and pitch deck
- Onboarding β User enters name + 5 North Stars
- Dashboard β Morning Brief generates (shows sleep data + Claude's plan)
- Add Task β User adds "Apply to Google internship" β tied to Year north star
- Nudge β Click "Nudge Me" β Claude fires: "Vikas, open your MLOps PR right now..."
- Complete β Mark task done β Celebration fires
- North Stars β Show the 5 goals that drive everything
Demo duration: 90 seconds max.
All Claude logic is in lib/claude.ts. Four functions:
| Function | When Called | What It Returns |
|---|---|---|
generateMorningBrief() |
Dashboard load (once/day) | Full daily plan with schedule |
generateNudge() |
User clicks "Nudge Me" | Personal consequence message |
estimateTaskTime() |
User clicks "AI Estimate" | Minutes + reasoning |
generateCelebration() |
Task marked complete | Short celebration message |
Model: claude-sonnet-4-6 β fast and smart, perfect for hackathon
Everything uses localStorage β no database needed for demo.
| Key | What's stored |
|---|---|
pulse_north_stars |
User's name + 5 goals |
pulse_tasks |
All tasks array |
pulse_morning_brief |
Cached brief (regenerates daily) |
pulse_brief_date |
Date of last brief (prevents re-generation) |
pulse_nudge_history |
Past nudges |
To reset everything: open browser console β localStorage.clear() β refresh
- Add function to
lib/claude.ts - Add API route to
app/api/[name]/route.ts - Call from component via
fetch('/api/[name]', { method: 'POST', ... })
- Create
app/[pagename]/page.tsx - Add
'use client'at top if using React state/hooks - Import types from
lib/types.ts
- Create
components/[ComponentName].tsx - Export as default
- Import wherever needed
"Every productivity tool tells you WHAT to do. None of them know HOW you feel. Pulse reads your biology overnight β your sleep score, your hormone curve β and restructures your day before you wake up. It knows your 5-year goals, assigns the right work to the right energy window, and when you're about to self-sabotage, it calls you out by name with real consequences. We built the morning briefing your body actually needs."
Judging criteria we hit:
- β Originality β proactive bio-aware scheduling doesn't exist
- β Technical depth β Claude API + chronobiology model + multi-source data
- β UX β clean, dark, mobile-ready, emotional demo
- β Real-world impact β every human with goals needs this
Sponsor ties:
- Eight Sleep β sleep data source
- Clair Health β hormone data source
- Duckbill β action layer inspiration
- Resolution β this IS their vision for AI + health + careers
For the demo, pre-load these tasks in localStorage so judges see a full app:
// Run this in browser console before demo
localStorage.setItem('pulse_tasks', JSON.stringify([
{
id: 'task_demo_1',
title: 'Submit MLOps PR on ticket-forge',
description: 'Merge PR #92 with MLflow tracking',
northStarKey: 'week',
type: 'deep',
priority: 'urgent',
status: 'pending',
estimatedMinutes: 90,
aiEstimatedMinutes: 120,
deadline: '2026-03-28',
carriedCount: 1,
createdAt: new Date().toISOString()
},
{
id: 'task_demo_2',
title: 'Complete 5 LeetCode hard problems',
description: 'Focus on graph algorithms',
northStarKey: 'year',
type: 'deep',
priority: 'high',
status: 'pending',
estimatedMinutes: 120,
deadline: '2026-03-30',
carriedCount: 0,
createdAt: new Date().toISOString()
},
{
id: 'task_demo_3',
title: 'Email Amazon recruiter for interview feedback',
northStarKey: 'year',
type: 'admin',
priority: 'medium',
status: 'pending',
estimatedMinutes: 20,
deadline: '2026-03-29',
carriedCount: 2,
createdAt: new Date().toISOString()
}
]))npm install -g vercel
vercelAdd ANTHROPIC_API_KEY in Vercel dashboard β Environment Variables.
URL will be: https://pulse-[hash].vercel.app
Built with Next.js 14, Tailwind CSS, Claude claude-sonnet-4-6 Resolution Hacks 2026 β Go win that $1,500 π