OpenAnalyst Challenge Onboarding
Dynamic, AI-driven onboarding flow when user creates a new challenge. Questions adapt based on challenge type and user responses.
Based on best practices from The Coaching Tools Company and GoalsWon.
When user clicks "Create Challenge", this skill:
Coach: "What challenge do you want to take on?"
User: "Learn Python"
Coach: "Love it! Let me understand more.
What specifically do you want to achieve with Python?
For example:
- Get a job as a developer
- Automate boring tasks at work
- Build a personal project
- Just curious to learn"
User: "I want to get into data science"
Coach: "Data science with Python - great goal!
Have you done any programming before?"
User: "I know a little JavaScript"
Coach: "Perfect, so not starting from zero. That helps.
Let me ask you something important..."
Coach: "On a scale of 1-10, how committed are you to actually
completing this challenge? Be honest - no judgment."
User: "7"
Coach: "A 7. Okay, what's holding you back from being a 9 or 10?"
User: "I'm worried I won't have enough time with my job"
Coach: "That's a real concern. Let's solve it right now.
Walk me through your typical weekday. When do you wake up,
when do you work, when are you free?"
User: "Wake up 7am, work 9-6, usually free after 8pm"
Coach: "So 8pm to whenever you sleep - that's your window.
How many hours can you realistically commit daily?"
User: "1 hour, maybe 1.5"
Coach: "1 hour is perfect. That's 7 hours per week.
Enough to make real progress.
Now that we've addressed the time concern,
what's your commitment level?"
User: "9"
Coach: "That's what I like to hear. Let's build this plan."
Coach: "Let's get specific. In 30 days, what's the minimum
you'd need to accomplish to feel successful?"
User: "Understand the basics and maybe do a small project"
Coach: "Let me translate that into concrete milestones:
WEEK 1: Python fundamentals (variables, loops, functions)
WEEK 2: Data structures + libraries (NumPy, Pandas)
WEEK 3: Data visualization (Matplotlib, basic analysis)
WEEK 4: Mini-project (analyze a real dataset)
Does that sound right?"
User: "Yes, perfect"
Coach: "Based on your availability:
YOUR SCHEDULE:
━━━━━━━━━━━━━━━━━━━━━━━━━
Mon: 8:00 PM - 9:00 PM
Tue: 8:00 PM - 9:00 PM
Wed: 8:00 PM - 9:00 PM
Thu: 8:00 PM - 9:00 PM
Fri: 8:00 PM - 9:00 PM
Sat: Flexible (catch-up if needed)
Sun: 8:00 PM - 9:00 PM (week review)
This gives you:
- 6-7 hours/week of learning
- Saturday buffer for life
- Sunday for review and planning
Any adjustments needed?"
User: "Can we skip Friday? I usually have plans"
Coach: "Done. Friday is now your rest day.
Saturday becomes your make-up day if needed."
Coach: "Last step. What happens when you miss a day?
Studies show that having real stakes makes you
3x more likely to succeed. What's your punishment?"
User: "I'll send $50 to my brother"
Coach: "Good. And who's your referee? Someone who will
actually hold you accountable."
User: "My brother"
Coach: "Perfect - he's both the recipient and referee.
He'll get notified when you miss.
📜 YOUR COMMITMENT CONTRACT:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Challenge: Learn Python for Data Science
Duration: 30 days
Daily: 1 hour (Mon-Thu, Sat-Sun)
Rest: Friday
If I miss: $50 to [Brother]
Referee: [Brother]
Grace period: 24 hours
Type 'I AGREE' to sign this contract."
User: "I AGREE"
Coach: "Contract signed. Your brother has been notified.
Day 1 starts NOW. Your first session is at 8pm tonight.
I'll check in with you then.
Let's do this! 🚀"
If score < 8, ask:
If user says "no time":
{
"id": "learn-python-data-science",
"name": "Learn Python for Data Science",
"type": "learning",
"created_at": "2025-12-26T15:00:00Z",
"start_date": "2025-12-26",
"end_date": "2026-01-25",
"duration_days": 30,
"commitment": {
"daily_hours": 1,
"weekly_hours": 6,
"active_days": ["mon", "tue", "wed", "thu", "sat", "sun"],
"rest_days": ["fri"],
"session_time": "20:00"
},
"goals": {
"primary": "Understand Python basics and complete a data science project",
"milestones": [
{"week": 1, "goal": "Python fundamentals"},
{"week": 2, "goal": "NumPy and Pandas"},
{"week": 3, "goal": "Data visualization"},
{"week": 4, "goal": "Mini-project completion"}
]
},
"commitment_score": 9,
"user_concerns": ["time management with job"],
"solutions_discussed": ["8pm-9pm window", "Saturday buffer"]
}
# Weekly Schedule: Learn Python
## Regular Schedule
| Day | Time | Activity |
|-----|------|----------|
| Mon | 8-9 PM | Lesson + practice |
| Tue | 8-9 PM | Lesson + practice |
| Wed | 8-9 PM | Lesson + practice |
| Thu | 8-9 PM | Lesson + practice |
| Fri | - | REST DAY |
| Sat | Flexible | Catch-up/extra practice |
| Sun | 8-9 PM | Week review + next week prep |
## Session Structure (1 hour)
- 0-10 min: Review yesterday
- 10-45 min: New material
- 45-55 min: Practice exercises
- 55-60 min: Log check-in
## Check-in Time
Daily reminder: 9:00 PM
# Milestones: Learn Python
## Week 1: Foundations
- [ ] Variables and data types
- [ ] Conditionals (if/else)
- [ ] Loops (for/while)
- [ ] Functions
- [ ] Mini-exercise: Calculator program
## Week 2: Data Structures
- [ ] Lists and tuples
- [ ] Dictionaries
- [ ] NumPy basics
- [ ] Pandas DataFrames
- [ ] Mini-exercise: Data manipulation
## Week 3: Visualization
- [ ] Matplotlib basics
- [ ] Creating charts
- [ ] Pandas plotting
- [ ] Analyzing a sample dataset
- [ ] Mini-exercise: Visualize data
## Week 4: Project
- [ ] Choose dataset
- [ ] Data cleaning
- [ ] Analysis
- [ ] Visualization
- [ ] Present findings