Files
krow_backend/seed/fixtures/seed.json
Aravind cf99866e12
Some checks failed
CI / test (push) Failing after 4m38s
CI / fixture (push) Failing after 9s
create employee table
2026-09-05 10:44:47 +05:30

5067 lines
164 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"_generated": "Generated from krow-demo/src/api/seed.js — do not edit by hand. Regenerate with: npm run seed:fixture",
"demoUser": {
"id": "user_demo",
"full_name": "Alex Rivera",
"email": "demo@krow.app",
"role": "admin",
"account_type": "employer",
"created_date": "2026-06-01T09:00:00.000Z",
"preferences": {
"owliverDefault": true,
"compactDensity": false,
"emailDigest": true
}
},
"users": [
{
"id": "user_demo",
"full_name": "Alex Rivera",
"email": "demo@krow.app",
"role": "admin",
"account_type": "employer",
"created_date": "2026-06-01T09:00:00.000Z",
"preferences": {
"owliverDefault": true,
"compactDensity": false,
"emailDigest": true
}
},
{
"id": "user_employer",
"full_name": "Jordan Blake",
"email": "employer@krow.app",
"role": "employer",
"account_type": "employer",
"created_date": "2026-06-01T09:00:00.000Z",
"preferences": {
"owliverDefault": true,
"compactDensity": false,
"emailDigest": true
}
}
],
"entities": {
"JobPosting": [
{
"id": "job_senior_server",
"company": "Fairmont San Jose",
"custom_requirements": "Fine dining or banquet service at senior level — recover a table before the client notices there was anything to recover.",
"leadership_expectations": "Set the pace for the servers on your floor",
"attendance_expectations": "Available evenings and weekends",
"title": "Senior Server – Fine Dining",
"role_category": "Server",
"description": "An advanced service role for seated fine dining events in San Jose. You carry the standard for your section, recover a table before a client notices there was anything to recover, and set the pace for the servers around you.",
"responsibilities": [
"Run a section at fine dining standard without supervision",
"Recover service issues before they reach the client",
"Set timing and pace for the servers around you",
"Handle allergens and special requests accurately",
"Support the captain through arrivals, toasts and close"
],
"qualifications": [
"4+ years of fine dining or banquet service",
"Verified advanced service capability",
"Comfortable as the senior server on a floor",
"Available evenings and weekends"
],
"nice_to_haves": [
"Wine service knowledge",
"Captain experience",
"Bilingual"
],
"min_experience_years": 4,
"english_required": "fluent",
"certifications_required": [
"Food Handler Card"
],
"skill_requirements": [
{
"skill_id": "server",
"level": "advanced",
"weight": 40
},
{
"skill_id": "customer_service",
"level": "intermediate",
"weight": 25
},
{
"skill_id": "food_safety",
"level": "beginner",
"weight": 20
},
{
"skill_id": "leadership",
"level": "beginner",
"weight": 15
}
],
"pay_range_min": 24,
"pay_range_max": 34,
"location": "San Jose, CA",
"status": "active",
"ai_generated": false,
"created_date": "2026-08-08T09:00:00.000Z"
},
{
"id": "job_bartender",
"company": "Bay Event Staffing",
"custom_requirements": "Own your bar from setup to breakdown at high-volume private events.",
"physical_requirements": "Comfortable standing for a full shift",
"title": "Bartender",
"role_category": "Bartender",
"skill_requirements": [
{
"skill_id": "bartending",
"level": "intermediate",
"weight": 60
},
{
"skill_id": "customer_service",
"level": "beginner",
"weight": 40
}
],
"description": "We are building a bench of dependable bartenders for high-volume private events across the region. You will own your bar from setup to breakdown, pour with speed and consistency, and keep guests feeling looked after even when the room is three deep.",
"responsibilities": [
"Set up and break down a full service bar",
"Pour classic cocktails to spec at event pace",
"Verify guest age and refuse service responsibly",
"Track inventory and flag low stock before service",
"Keep the bar clean and compliant throughout the shift"
],
"qualifications": [
"Prior bartending experience at events or in a busy venue",
"Working knowledge of classic cocktail specs",
"Comfortable standing for a full shift",
"Valid alcohol service certification"
],
"nice_to_haves": [
"Craft cocktail background",
"Bilingual",
"Own bar kit"
],
"min_experience_years": 2,
"english_required": "conversational",
"certifications_required": [
"TIPS Certified"
],
"pay_range_min": 0,
"pay_range_max": 0,
"location": "",
"status": "active",
"ai_generated": true,
"created_date": "2026-07-30T09:00:00.000Z"
},
{
"id": "job_server_fine",
"company": "Valley Catering Co.",
"custom_requirements": "Tray service and synchronized coursing experience for seated events.",
"attendance_expectations": "Available evenings and weekends",
"skill_requirements": [
{
"skill_id": "server",
"level": "advanced",
"weight": 45
},
{
"skill_id": "customer_service",
"level": "intermediate",
"weight": 30
},
{
"skill_id": "food_safety",
"level": "beginner",
"weight": 25
}
],
"title": "Event Server – Fine Dining",
"role_category": "Server",
"description": "Fine dining service for seated corporate dinners and weddings in Silicon Valley. You will run synchronized courses, read a table without hovering, and hold a standard of polish that clients notice and rebook for.",
"responsibilities": [
"Execute synchronized coursed service for seated events",
"Polish and set glassware, china, and flatware",
"Describe menus and handle allergen questions accurately",
"Clear and reset tables between courses discreetly",
"Support captains during guest arrivals and toasts"
],
"qualifications": [
"2+ years of banquet or fine dining service",
"Tray service and synchronized coursing experience",
"Professional appearance and clear communication",
"Available evenings and weekends"
],
"nice_to_haves": [
"Wine service knowledge",
"Captain experience",
"Bilingual"
],
"min_experience_years": 2,
"english_required": "fluent",
"certifications_required": [
"Food Handler Card"
],
"pay_range_min": 18,
"pay_range_max": 26,
"location": "Silicon Valley, CA",
"status": "active",
"ai_generated": true,
"created_date": "2026-07-29T09:00:00.000Z"
},
{
"id": "job_security",
"company": "Legendary Event Staff",
"custom_requirements": "Valid California Guard Card on file before the first shift.",
"physical_requirements": "Able to stand and patrol for extended periods",
"title": "Event Security Officer",
"role_category": "Security",
"description": "Licensed event security for concerts, corporate activations, and private functions across Los Angeles. Presence over confrontation: you set the tone at the door and de-escalate long before anything becomes an incident.",
"responsibilities": [
"Staff entry points and verify credentials",
"Conduct bag checks per venue policy",
"De-escalate guest conflicts calmly",
"Document incidents accurately and promptly",
"Coordinate with venue staff and local authorities"
],
"qualifications": [
"Valid California Guard Card",
"3+ years of event or venue security experience",
"Clear incident reporting skills",
"Able to stand and patrol for extended periods"
],
"nice_to_haves": [
"Crowd management training",
"CPR certified",
"Bilingual"
],
"min_experience_years": 3,
"english_required": "conversational",
"certifications_required": [
"Guard Card",
"CPR / First Aid"
],
"pay_range_min": 20,
"pay_range_max": 28,
"location": "Los Angeles, CA",
"status": "paused",
"ai_generated": false,
"created_date": "2026-07-28T09:00:00.000Z"
},
{
"id": "job_chef",
"company": "Valley Catering Co.",
"custom_requirements": "Offsite and high-volume catering experience, with food cost ownership.",
"leadership_expectations": "Lead and schedule a rotating kitchen brigade",
"skill_requirements": [
{
"skill_id": "food_safety",
"level": "advanced",
"weight": 40
},
{
"skill_id": "leadership",
"level": "advanced",
"weight": 35
},
{
"skill_id": "customer_service",
"level": "beginner",
"weight": 25
}
],
"title": "Executive Chef – Catering",
"role_category": "Chef",
"description": "Lead the kitchen for a high-end catering operation running multiple events a week. You will design menus, cost them honestly, and run a brigade that holds quality at 400 covers the same way it does at 40.",
"responsibilities": [
"Design and cost seasonal event menus",
"Lead and schedule a rotating kitchen brigade",
"Own food safety compliance across offsite kitchens",
"Manage vendor relationships and food cost targets",
"Execute tastings and client menu consultations"
],
"qualifications": [
"8+ years of professional kitchen experience",
"3+ years leading a brigade at executive or sous level",
"ServSafe certification",
"Offsite and high-volume catering experience"
],
"nice_to_haves": [
"Culinary degree",
"Plated dinner specialization",
"Bilingual kitchen leadership"
],
"min_experience_years": 8,
"english_required": "fluent",
"certifications_required": [
"ServSafe"
],
"pay_range_min": 45,
"pay_range_max": 70,
"location": "Bay Area, CA",
"status": "active",
"ai_generated": true,
"created_date": "2026-07-27T09:00:00.000Z"
},
{
"id": "job_bartender_corp",
"company": "Bay Event Staffing",
"custom_requirements": "Corporate or executive event experience, with batched cocktail programs.",
"leadership_expectations": "Run a bar independently at corporate functions",
"skill_requirements": [
{
"skill_id": "bartending",
"level": "advanced",
"weight": 50
},
{
"skill_id": "customer_service",
"level": "intermediate",
"weight": 30
},
{
"skill_id": "leadership",
"level": "beginner",
"weight": 20
}
],
"title": "Experienced Bartender – Corporate Events",
"role_category": "Bartender",
"description": "Corporate hospitality bartending for tech campuses and executive functions in the Bay Area. Batch cocktails, clean presentation, and the judgment to run a bar unsupervised in front of an executive audience.",
"responsibilities": [
"Build and execute batched cocktail programs",
"Run a bar independently at corporate functions",
"Maintain responsible service standards",
"Present a clean, branded bar throughout service",
"Reconcile consumption counts after service"
],
"qualifications": [
"5+ years of bartending experience",
"Corporate or executive event experience",
"RBS or equivalent alcohol service certification",
"Reliable transportation across the Bay Area"
],
"nice_to_haves": [
"Zero-proof program experience",
"Barista skills",
"Own bar kit"
],
"min_experience_years": 5,
"english_required": "fluent",
"certifications_required": [
"RBS Alcohol Server"
],
"pay_range_min": 22,
"pay_range_max": 32,
"location": "Bay Area, CA",
"status": "active",
"ai_generated": true,
"created_date": "2026-07-26T09:00:00.000Z"
},
{
"id": "job_picker",
"company": "Oakland Event Logistics",
"custom_requirements": "Accuracy first — every mispick becomes a missing item at an event.",
"physical_requirements": "Able to lift 50 lbs repeatedly",
"attendance_expectations": "Reliable attendance for early shifts",
"title": "Picker",
"role_category": "Picker",
"description": "Warehouse order picking for an event logistics hub in Oakland. Accuracy first, speed second: every mispick becomes a missing item at someone else’s wedding.",
"responsibilities": [
"Pick and stage orders against pick lists",
"Scan and verify SKUs for accuracy",
"Stage outbound pallets for event trucks",
"Report damaged inventory immediately",
"Keep aisles and staging lanes clear"
],
"qualifications": [
"Warehouse or fulfillment experience",
"Able to lift 50 lbs repeatedly",
"Comfortable with handheld scanners",
"Reliable attendance for early shifts"
],
"nice_to_haves": [
"Forklift certified",
"Inventory system experience"
],
"min_experience_years": 1,
"english_required": "basic",
"certifications_required": [
"Forklift Operator"
],
"pay_range_min": 40,
"pay_range_max": 45,
"location": "Oakland",
"status": "closed",
"ai_generated": false,
"created_date": "2026-07-20T09:00:00.000Z"
},
{
"id": "job_banquet",
"company": "Fairmont San Jose",
"custom_requirements": "Hotel banquet background and BEO fluency.",
"leadership_expectations": "Direct a floor team you have often just met that afternoon",
"attendance_expectations": "Available for early mornings and late nights",
"skill_requirements": [
{
"skill_id": "server",
"level": "advanced",
"weight": 35
},
{
"skill_id": "leadership",
"level": "intermediate",
"weight": 35
},
{
"skill_id": "customer_service",
"level": "advanced",
"weight": 30
}
],
"title": "Banquet Captain – Hotel Events",
"role_category": "Server",
"description": "Captain banquet floors for hotel conferences and galas in San Jose. You are the bridge between the client, the kitchen, and a floor team you have often just met that afternoon.",
"responsibilities": [
"Lead pre-shift briefings and assign sections",
"Coordinate timing between kitchen and floor",
"Be the client contact throughout the event",
"Resolve service issues without escalation",
"Close out the floor and complete event reports"
],
"qualifications": [
"4+ years of banquet service, 1+ in a lead role",
"Proven ability to direct a floor team",
"Strong client-facing communication",
"Available for early mornings and late nights"
],
"nice_to_haves": [
"Hotel banquet background",
"BEO fluency",
"Bilingual"
],
"min_experience_years": 4,
"english_required": "fluent",
"certifications_required": [
"Food Handler Card"
],
"pay_range_min": 24,
"pay_range_max": 34,
"location": "San Jose, CA",
"status": "active",
"ai_generated": true,
"created_date": "2026-07-18T09:00:00.000Z"
}
],
"JobApplication": [
{
"id": "app_arun",
"applicant_name": "Arun Kumar",
"email": "arun.kumar@example.com",
"phone": "+1-408-555-0210",
"years_experience": 4,
"english_level": "fluent",
"certifications": [
"Food Handler Card"
],
"availability": [
"Weekdays",
"Weekends",
"Evenings"
],
"skills": [
"Coursed service",
"Guest recovery",
"Allergen handling"
],
"companies_worked": [
"Valley Catering Co."
],
"client_rating": 4.7,
"professional_summary": "Four years of event service in San Jose, working towards the senior server role on a fine dining floor.",
"selfie_url": "https://i.pravatar.cc/240?img=68",
"job_posting_id": "job_senior_server",
"job_title": "Senior Server – Fine Dining",
"status": "applied",
"ai_score": 0,
"created_date": "2026-08-13T09:00:00.000Z",
"updated_date": "2026-08-13T09:00:00.000Z"
},
{
"id": "app_priya_nair",
"applicant_name": "Priya Nair",
"email": "priya.nair@example.com",
"phone": "+1-408-555-0211",
"years_experience": 2,
"english_level": "fluent",
"certifications": [
"Food Handler Card"
],
"availability": [
"Weekends",
"Evenings"
],
"skills": [
"Table service",
"Guest relations"
],
"companies_worked": [
"Bay Event Staffing"
],
"client_rating": 4.5,
"professional_summary": "Two years of event service, moving towards fine dining sections.",
"selfie_url": "https://i.pravatar.cc/240?img=47",
"job_posting_id": "job_senior_server",
"job_title": "Senior Server – Fine Dining",
"status": "applied",
"ai_score": 0,
"created_date": "2026-08-12T09:00:00.000Z",
"updated_date": "2026-08-12T09:00:00.000Z"
},
{
"id": "app_antoine",
"applicant_name": "Chef Antoine Dubois",
"email": "antoine.dubois@email.com",
"phone": "+1-415-555-0101",
"years_experience": 12,
"english_level": "fluent",
"certifications": [
"ServSafe",
"CPR / First Aid"
],
"availability": [
"Weekdays",
"Weekends",
"Evenings"
],
"skills": [
"Menu design",
"Brigade leadership",
"Food costing",
"Plated dinners",
"Offsite catering"
],
"companies_worked": [],
"client_rating": 4.9,
"professional_summary": "Executive chef with 12 years across hotel banquets and high-end offsite catering. Has run brigades of 20+ and holds plate standards at 400 covers.",
"selfie_url": "https://i.pravatar.cc/240?img=45",
"job_posting_id": "job_chef",
"job_title": "Executive Chef – Catering",
"status": "hired",
"ai_score": 97,
"ai_match_label": "Excellent Match",
"ai_summary": "Exceptional fit. Twelve years of executive kitchen leadership with direct offsite catering experience and current ServSafe certification. Availability covers the full event calendar.",
"ai_strengths": [
"12 years executive chef experience",
"ServSafe certified",
"Proven brigade leadership at high volume",
"Full-calendar availability"
],
"ai_gaps": [
"No formal culinary degree on file"
],
"ai_recommendation": "Shortlisted",
"score_breakdown": {
"experience": 99,
"english": 95,
"reliability": 96,
"certifications": 98,
"availability": 94,
"personality": 91,
"culture_fit": 93,
"communication_style": 92,
"attendance_expectations": 95,
"physical_requirements": 90,
"leadership_expectations": 97,
"job_related_answers": 96,
"verified_skills": 95,
"scenario_judgment": 94,
"employer_requirements": 98
},
"created_date": "2026-07-24T09:00:00.000Z",
"updated_date": "2026-07-25T09:00:00.000Z"
},
{
"status": "applied",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z",
"id": "app_priya",
"applicant_name": "Priya Raman",
"email": "priya.raman@email.com",
"phone": "+1-415-555-0110",
"years_experience": 6,
"english_level": "fluent",
"professional_summary": "Sous chef moving toward executive roles in catering.",
"job_posting_id": "job_chef",
"job_title": "Executive Chef – Catering"
},
{
"id": "app_marcus",
"applicant_name": "Marcus Williams",
"email": "marcus.w@email.com",
"phone": "+1-415-555-0102",
"years_experience": 5,
"english_level": "fluent",
"certifications": [
"Guard Card",
"CPR / First Aid"
],
"availability": [
"Weekends",
"Evenings",
"Overnight"
],
"skills": [
"Crowd management",
"De-escalation",
"Incident reporting",
"Access control"
],
"companies_worked": [],
"client_rating": 4.8,
"professional_summary": "Licensed event security officer with five years across concerts and corporate activations. Known for defusing situations before they escalate.",
"selfie_url": "https://i.pravatar.cc/240?img=12",
"job_posting_id": "job_security",
"job_title": "Event Security Officer",
"status": "hired",
"ai_score": 94,
"ai_match_label": "Excellent Match",
"ai_summary": "Strong fit. Current Guard Card and CPR certification with five years of directly relevant event security work and overnight availability.",
"ai_strengths": [
"Current Guard Card",
"Five years event security",
"Documented de-escalation record"
],
"ai_gaps": [
"No formal crowd management course on file"
],
"ai_recommendation": "Shortlisted",
"score_breakdown": {
"experience": 92,
"english": 93,
"reliability": 95,
"certifications": 97,
"availability": 96,
"personality": 90,
"culture_fit": 91,
"communication_style": 89,
"attendance_expectations": 96,
"physical_requirements": 95,
"leadership_expectations": 86,
"job_related_answers": 93,
"verified_skills": 92,
"scenario_judgment": 95,
"employer_requirements": 94
},
"created_date": "2026-07-24T09:00:00.000Z",
"updated_date": "2026-07-25T09:00:00.000Z"
},
{
"id": "app_dana",
"applicant_name": "Dana Whitfield",
"email": "dana.whitfield@email.com",
"phone": "+1-415-555-0111",
"years_experience": 4,
"english_level": "fluent",
"certifications": [
"Guard Card"
],
"availability": [
"Weekends",
"Evenings"
],
"skills": [
"Access control",
"Incident reporting"
],
"companies_worked": [],
"client_rating": 0,
"professional_summary": "Venue security officer transitioning into private event work.",
"job_posting_id": "job_security",
"job_title": "Event Security Officer",
"status": "interview",
"ai_score": 0,
"interview_id": "int_dana",
"created_date": "2026-08-01T09:00:00.000Z",
"updated_date": "2026-08-03T09:00:00.000Z"
},
{
"status": "applied",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z",
"id": "app_omar",
"applicant_name": "Omar Haddad",
"email": "omar.haddad@email.com",
"phone": "+1-415-555-0112",
"years_experience": 2,
"english_level": "conversational",
"job_posting_id": "job_security",
"job_title": "Event Security Officer"
},
{
"status": "rejected",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-07T09:00:00.000Z",
"id": "app_kevin",
"applicant_name": "Kevin Boyle",
"email": "kevin.boyle@email.com",
"phone": "+1-415-555-0113",
"years_experience": 7,
"english_level": "native",
"job_posting_id": "job_security",
"job_title": "Event Security Officer"
},
{
"status": "applied",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z",
"id": "app_rosa",
"applicant_name": "Rosa Delgado",
"email": "rosa.delgado@email.com",
"phone": "+1-415-555-0114",
"years_experience": 3,
"english_level": "fluent",
"job_posting_id": "job_security",
"job_title": "Event Security Officer"
},
{
"status": "applied",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z",
"id": "app_tyler",
"applicant_name": "Tyler Nunez",
"email": "tyler.nunez@email.com",
"phone": "+1-415-555-0115",
"years_experience": 1,
"english_level": "conversational",
"job_posting_id": "job_security",
"job_title": "Event Security Officer"
},
{
"id": "app_marco",
"applicant_name": "Marco Rivera",
"email": "marco.rivera@email.com",
"phone": "+1-415-555-0103",
"years_experience": 6,
"english_level": "fluent",
"certifications": [
"RBS Alcohol Server",
"TIPS Certified"
],
"availability": [
"Weekdays",
"Evenings"
],
"skills": [
"Batch cocktails",
"Craft cocktails",
"Bar setup",
"Inventory control"
],
"companies_worked": [],
"client_rating": 4.7,
"professional_summary": "Corporate event bartender with six years on Bay Area tech campuses. Builds batched programs that hold quality at volume.",
"selfie_url": "https://i.pravatar.cc/240?img=33",
"job_posting_id": "job_bartender_corp",
"job_title": "Experienced Bartender – Corporate Events",
"status": "assigned",
"ai_score": 92,
"ai_match_label": "Excellent Match",
"ai_summary": "Excellent fit for corporate hospitality. Six years of directly comparable work, both required certifications current, and reliable Bay Area coverage.",
"ai_strengths": [
"Six years corporate bartending",
"RBS and TIPS certified",
"Batch cocktail program experience"
],
"ai_gaps": [
"Limited zero-proof program experience"
],
"ai_recommendation": "Shortlisted",
"score_breakdown": {
"experience": 94,
"english": 92,
"reliability": 93,
"certifications": 96,
"availability": 88,
"personality": 90,
"culture_fit": 92,
"communication_style": 91,
"attendance_expectations": 92,
"physical_requirements": 89,
"leadership_expectations": 82,
"job_related_answers": 94,
"verified_skills": 93,
"scenario_judgment": 90,
"employer_requirements": 93
},
"created_date": "2026-07-24T09:00:00.000Z",
"updated_date": "2026-07-25T09:00:00.000Z"
},
{
"id": "app_sofia",
"applicant_name": "Sofia Mendez",
"email": "sofia.mendez@email.com",
"phone": "+1-415-555-0104",
"years_experience": 4,
"english_level": "fluent",
"certifications": [
"Food Handler Card"
],
"availability": [
"Weekends",
"Evenings"
],
"skills": [
"Synchronized service",
"Tray service",
"Wine service",
"Guest relations"
],
"companies_worked": [],
"client_rating": 4.6,
"professional_summary": "Fine dining event server with four years of coursed banquet service and wine knowledge.",
"selfie_url": "https://i.pravatar.cc/240?img=47",
"job_posting_id": "job_server_fine",
"job_title": "Event Server – Fine Dining",
"status": "shortlisted",
"ai_score": 89,
"ai_match_label": "Excellent Match",
"ai_summary": "Strong fine dining fit. Four years of coursed service with wine knowledge that exceeds the posting, and weekend availability aligned to the event calendar.",
"ai_strengths": [
"Four years fine dining service",
"Wine service knowledge",
"Strong guest relations"
],
"ai_gaps": [
"No captain-level experience yet"
],
"ai_recommendation": "Interview",
"score_breakdown": {
"experience": 88,
"english": 92,
"reliability": 90,
"certifications": 85,
"availability": 87,
"personality": 91,
"culture_fit": 90,
"communication_style": 93,
"attendance_expectations": 89,
"physical_requirements": 86,
"leadership_expectations": 74,
"job_related_answers": 90,
"verified_skills": 88,
"scenario_judgment": 87,
"employer_requirements": 89
},
"created_date": "2026-08-02T09:00:00.000Z",
"updated_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "app_tanya",
"applicant_name": "Tanya Cruz",
"email": "tanya.cruz@email.com",
"phone": "+1-415-555-0105",
"years_experience": 3,
"english_level": "fluent",
"certifications": [
"Food Handler Card"
],
"availability": [
"Weekends"
],
"skills": [
"Banquet service",
"Tray service",
"Table resets"
],
"companies_worked": [],
"client_rating": 4.4,
"professional_summary": "Banquet server with three years of seated dinner service.",
"selfie_url": "https://i.pravatar.cc/240?img=44",
"job_posting_id": "job_server_fine",
"job_title": "Event Server – Fine Dining",
"status": "interview",
"ai_score": 83,
"ai_match_label": "Excellent Match",
"ai_summary": "Solid fit with room to grow. Three years of banquet service meets the requirement; weekend-only availability is the main constraint.",
"ai_strengths": [
"Three years banquet service",
"Reliable weekend availability",
"Clean service technique"
],
"ai_gaps": [
"Weekend-only availability",
"No wine service training"
],
"ai_recommendation": "Interview",
"interview_id": "int_tanya",
"score_breakdown": {
"experience": 80,
"english": 90,
"reliability": 88,
"certifications": 82,
"availability": 70,
"personality": 88,
"culture_fit": 86,
"communication_style": 87,
"attendance_expectations": 90,
"physical_requirements": 85,
"leadership_expectations": 68,
"job_related_answers": 84,
"verified_skills": 81,
"scenario_judgment": 82,
"employer_requirements": 83
},
"created_date": "2026-08-01T09:00:00.000Z",
"updated_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "app_nadia",
"applicant_name": "Nadia Petrova",
"email": "nadia.petrova@email.com",
"phone": "+1-415-555-0116",
"years_experience": 2,
"english_level": "conversational",
"certifications": [],
"availability": [
"Weekends",
"Evenings"
],
"skills": [
"Table service"
],
"companies_worked": [],
"client_rating": 0,
"professional_summary": "Restaurant server moving into event work.",
"job_posting_id": "job_server_fine",
"job_title": "Event Server – Fine Dining",
"status": "ai_screened",
"ai_score": 0,
"created_date": "2026-08-03T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z"
},
{
"id": "app_jordan",
"applicant_name": "Jordan Blake",
"email": "jordan.blake@email.com",
"phone": "+1-415-555-0106",
"years_experience": 3,
"english_level": "fluent",
"certifications": [
"TIPS Certified"
],
"availability": [
"Weekends",
"Evenings"
],
"skills": [
"Classic cocktails",
"Bar setup",
"Speed pouring"
],
"companies_worked": [],
"client_rating": 4.2,
"professional_summary": "Event bartender with three years of high-volume weekend service.",
"job_posting_id": "job_bartender",
"job_title": "Bartender",
"status": "interview",
"ai_score": 72,
"ai_match_label": "Good Match",
"ai_summary": "Meets the core requirements. Three years of high-volume experience with current TIPS certification; cocktail range is narrower than ideal.",
"ai_strengths": [
"TIPS certified",
"High-volume service experience"
],
"ai_gaps": [
"Limited classic cocktail range",
"No craft background"
],
"ai_recommendation": "Interview",
"interview_id": "int_jordan",
"score_breakdown": {
"experience": 74,
"english": 85,
"reliability": 78,
"certifications": 80,
"availability": 82,
"personality": 76,
"culture_fit": 74,
"communication_style": 78,
"attendance_expectations": 80,
"physical_requirements": 82,
"leadership_expectations": 58,
"job_related_answers": 70,
"verified_skills": 68,
"scenario_judgment": 72,
"employer_requirements": 73
},
"created_date": "2026-08-01T09:00:00.000Z",
"updated_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "app_elena",
"applicant_name": "Elena Vasquez",
"email": "elena.vasquez@email.com",
"phone": "+1-415-555-0107",
"years_experience": 2,
"english_level": "conversational",
"certifications": [
"TIPS Certified"
],
"availability": [
"Evenings"
],
"skills": [
"Bar setup",
"Wine service"
],
"companies_worked": [],
"client_rating": 4,
"professional_summary": "Barback stepping up to bartending at private events.",
"job_posting_id": "job_bartender",
"job_title": "Bartender",
"status": "interview",
"ai_score": 68,
"ai_match_label": "Good Match",
"ai_summary": "Meets the minimum bar. Two years of experience with certification in place; availability and cocktail depth are the open questions.",
"ai_strengths": [
"TIPS certified",
"Strong bar setup discipline"
],
"ai_gaps": [
"Evenings-only availability",
"Limited independent bartending time"
],
"ai_recommendation": "Interview",
"interview_id": "int_elena",
"score_breakdown": {
"experience": 62,
"english": 72,
"reliability": 76,
"certifications": 80,
"availability": 58,
"personality": 78,
"culture_fit": 72,
"communication_style": 70,
"attendance_expectations": 78,
"physical_requirements": 80,
"leadership_expectations": 52,
"job_related_answers": 64,
"verified_skills": 62,
"scenario_judgment": 66,
"employer_requirements": 68
},
"created_date": "2026-08-02T09:00:00.000Z",
"updated_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "app_sam",
"applicant_name": "Sam Okafor",
"email": "sam.okafor@email.com",
"phone": "+1-415-555-0108",
"years_experience": 0,
"english_level": "basic",
"certifications": [],
"availability": [
"Weekends"
],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"professional_summary": "Looking for a first hospitality role.",
"job_posting_id": "job_bartender",
"job_title": "Bartender",
"status": "ai_screened",
"ai_score": 28,
"ai_match_label": "Not a Fit",
"ai_summary": "Below the requirement for this posting. No bartending experience or alcohol service certification, and availability is limited to weekends.",
"ai_strengths": [
"Motivated and available weekends"
],
"ai_gaps": [
"No bartending experience",
"No alcohol service certification",
"Basic English only"
],
"ai_recommendation": "Reject",
"score_breakdown": {
"experience": 10,
"english": 35,
"reliability": 45,
"certifications": 0,
"availability": 50,
"personality": 60,
"culture_fit": 48,
"communication_style": 38,
"attendance_expectations": 55,
"physical_requirements": 70,
"leadership_expectations": 20,
"job_related_answers": 18,
"verified_skills": 12,
"scenario_judgment": 25,
"employer_requirements": 22
},
"created_date": "2026-08-03T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z"
},
{
"id": "app_hector",
"applicant_name": "Hector Lima",
"email": "hector.lima@email.com",
"phone": "+1-415-555-0109",
"years_experience": 2,
"english_level": "conversational",
"certifications": [
"Forklift Operator"
],
"availability": [
"Weekdays",
"Early mornings"
],
"skills": [
"Order picking",
"Scanner operation",
"Pallet staging"
],
"companies_worked": [],
"client_rating": 3.9,
"professional_summary": "Warehouse picker with forklift certification.",
"job_posting_id": "job_picker",
"job_title": "Picker",
"status": "ai_screened",
"ai_score": 61,
"ai_match_label": "Good Match",
"ai_summary": "Adequate fit. Forklift certified with two years of picking experience; accuracy history is not yet verified.",
"ai_strengths": [
"Forklift certified",
"Early morning availability"
],
"ai_gaps": [
"Unverified pick accuracy",
"Limited scanner system exposure"
],
"ai_recommendation": "Maybe",
"score_breakdown": {
"experience": 60,
"english": 65,
"reliability": 68,
"certifications": 85,
"availability": 78,
"personality": 70,
"culture_fit": 64,
"communication_style": 58,
"attendance_expectations": 72,
"physical_requirements": 88,
"leadership_expectations": 40,
"job_related_answers": 55,
"verified_skills": 52,
"scenario_judgment": 58,
"employer_requirements": 62
},
"created_date": "2026-07-30T09:00:00.000Z",
"updated_date": "2026-08-01T09:00:00.000Z"
},
{
"id": "app_wei",
"applicant_name": "Wei Chen",
"email": "wei.chen@email.com",
"phone": "+1-415-555-0117",
"years_experience": 1,
"english_level": "basic",
"certifications": [],
"availability": [
"Weekdays"
],
"skills": [
"Order picking"
],
"companies_worked": [],
"client_rating": 0,
"professional_summary": "Fulfillment associate seeking steady warehouse shifts.",
"job_posting_id": "job_picker",
"job_title": "Picker",
"status": "ai_screened",
"ai_score": 0,
"created_date": "2026-07-31T09:00:00.000Z",
"updated_date": "2026-08-01T09:00:00.000Z"
},
{
"status": "applied",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z",
"id": "app_grace",
"applicant_name": "Grace Mwangi",
"email": "grace.mwangi@email.com",
"phone": "+1-415-555-0118",
"years_experience": 3,
"english_level": "fluent",
"job_posting_id": "job_picker",
"job_title": "Picker"
},
{
"id": "app_ana",
"applicant_name": "Ana Ruiz",
"email": "ana.ruiz@email.com",
"phone": "+1-415-555-0119",
"years_experience": 5,
"english_level": "fluent",
"certifications": [
"Food Handler Card"
],
"availability": [
"Weekdays",
"Weekends"
],
"skills": [
"Banquet leadership",
"BEO reading",
"Floor coordination"
],
"companies_worked": [],
"client_rating": 0,
"professional_summary": "Banquet server with lead-shift experience in hotel events.",
"job_posting_id": "job_banquet",
"job_title": "Banquet Captain – Hotel Events",
"status": "ai_screened",
"ai_score": 0,
"created_date": "2026-08-02T09:00:00.000Z",
"updated_date": "2026-08-03T09:00:00.000Z"
},
{
"id": "app_devon",
"applicant_name": "Devon Carter",
"email": "devon.carter@email.com",
"phone": "+1-415-555-0120",
"years_experience": 6,
"english_level": "native",
"certifications": [
"Food Handler Card"
],
"availability": [
"Weekdays",
"Weekends",
"Evenings"
],
"skills": [
"Floor leadership",
"Client relations",
"Event reporting"
],
"companies_worked": [],
"client_rating": 0,
"professional_summary": "Hotel banquet captain with six years directing event floors.",
"job_posting_id": "job_banquet",
"job_title": "Banquet Captain – Hotel Events",
"status": "interview",
"ai_score": 0,
"interview_id": "int_devon",
"created_date": "2026-08-01T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z"
},
{
"status": "applied",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z",
"id": "app_lucas",
"applicant_name": "Lucas Moreau",
"email": "lucas.moreau@email.com",
"phone": "+1-415-555-0121",
"years_experience": 4,
"english_level": "fluent",
"job_posting_id": "job_banquet",
"job_title": "Banquet Captain – Hotel Events"
},
{
"status": "applied",
"ai_score": 0,
"certifications": [],
"availability": [],
"skills": [],
"companies_worked": [],
"client_rating": 0,
"created_date": "2026-08-04T09:00:00.000Z",
"updated_date": "2026-08-04T09:00:00.000Z",
"id": "app_fatima",
"applicant_name": "Fatima Nasser",
"email": "fatima.nasser@email.com",
"phone": "+1-415-555-0122",
"years_experience": 2,
"english_level": "fluent",
"job_posting_id": "job_banquet",
"job_title": "Banquet Captain – Hotel Events"
}
],
"AIInterview": [
{
"id": "int_tanya",
"application_id": "app_tanya",
"job_posting_id": "job_server_fine",
"job_title": "Event Server – Fine Dining",
"candidate_name": "Tanya Cruz",
"messages": [
{
"role": "assistant",
"content": "Hi Tanya — thanks for making time. Tell me about the busiest banquet shift you've worked and how you handled it.",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "We were short two people on a 300-guest event. I re-sectioned the floor, moved the strongest server to the head tables, and pulled the rest into a runner rotation so nothing sat under the lamps.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 11
},
{
"role": "assistant",
"content": "What broke first, and what did you do the moment you noticed?",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "Dessert timing. I saw the pass backing up, so I pulled coffee service forward by five minutes to buy the kitchen room instead of letting plates die.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 9
}
],
"overall_interview_score": 72,
"verdict": "maybe",
"hire_recommendation": "Worth a trial shift on a coursed dinner before committing to the season.",
"integrity_score": 100,
"ai_flags": [],
"category_scores": {
"communication": 78,
"confidence": 71,
"experience_relevance": 74,
"culture_fit": 76,
"problem_solving": 69,
"personality": 77,
"communication_style": 76,
"attendance_expectations": 82,
"reliability": 80,
"physical_requirements": 84,
"leadership_expectations": 62,
"scenario_judgment": 70,
"job_related_answers": 73,
"verified_skills": 68
},
"strengths": [
"Clear, calm delivery under pressure",
"Reprioritized service timing sensibly"
],
"concerns": [
"Weekend-only availability",
"Limited wine service vocabulary"
],
"best_fit_roles": [
"Event Server",
"Banquet Server"
],
"summary": "Composed and specific about a real understaffed service. Judgment is sound; depth on fine dining vocabulary is still developing.",
"reasoning": "Answers referenced concrete decisions rather than generalities, which supports the reliability signal. Scores held back by narrow availability and thin wine knowledge.",
"created_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "int_jordan",
"application_id": "app_jordan",
"job_posting_id": "job_bartender",
"job_title": "Bartender",
"candidate_name": "Jordan Blake",
"messages": [
{
"role": "assistant",
"content": "Hi Jordan — thanks for making time. Tell me about the busiest bar shift you've worked and how you handled it.",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "We were short two people on a 300-guest event. I re-sectioned the floor, moved the strongest server to the head tables, and pulled the rest into a runner rotation so nothing sat under the lamps.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 11
},
{
"role": "assistant",
"content": "What broke first, and what did you do the moment you noticed?",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "Dessert timing. I saw the pass backing up, so I pulled coffee service forward by five minutes to buy the kitchen room instead of letting plates die.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 9
}
],
"overall_interview_score": 0,
"verdict": "maybe",
"hire_recommendation": "",
"integrity_score": 100,
"ai_flags": [],
"category_scores": {},
"strengths": [],
"concerns": [],
"best_fit_roles": [],
"summary": "",
"reasoning": "",
"created_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "int_elena",
"application_id": "app_elena",
"job_posting_id": "job_bartender",
"job_title": "Bartender",
"candidate_name": "Elena Vasquez",
"messages": [
{
"role": "assistant",
"content": "Hi Elena — thanks for making time. Tell me about the busiest bar shift you've worked and how you handled it.",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "We were short two people on a 300-guest event. I re-sectioned the floor, moved the strongest server to the head tables, and pulled the rest into a runner rotation so nothing sat under the lamps.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 11
},
{
"role": "assistant",
"content": "What broke first, and what did you do the moment you noticed?",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "Dessert timing. I saw the pass backing up, so I pulled coffee service forward by five minutes to buy the kitchen room instead of letting plates die.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 9
}
],
"overall_interview_score": 0,
"verdict": "maybe",
"hire_recommendation": "",
"integrity_score": 100,
"ai_flags": [],
"category_scores": {},
"strengths": [],
"concerns": [],
"best_fit_roles": [],
"summary": "",
"reasoning": "",
"created_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "int_dana",
"application_id": "app_dana",
"job_posting_id": "job_security",
"job_title": "Event Security Officer",
"candidate_name": "Dana Whitfield",
"messages": [
{
"role": "assistant",
"content": "Hi Dana — thanks for making time. Tell me about the busiest door shift you've worked and how you handled it.",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "We were short two people on a 300-guest event. I re-sectioned the floor, moved the strongest server to the head tables, and pulled the rest into a runner rotation so nothing sat under the lamps.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 11
},
{
"role": "assistant",
"content": "What broke first, and what did you do the moment you noticed?",
"timestamp": "2026-08-04T09:00:00.000Z"
},
{
"role": "user",
"content": "Dessert timing. I saw the pass backing up, so I pulled coffee service forward by five minutes to buy the kitchen room instead of letting plates die.",
"timestamp": "2026-08-04T09:00:00.000Z",
"response_time_seconds": 9
}
],
"overall_interview_score": 0,
"verdict": "maybe",
"hire_recommendation": "",
"integrity_score": 100,
"ai_flags": [],
"category_scores": {},
"strengths": [],
"concerns": [],
"best_fit_roles": [],
"summary": "",
"reasoning": "",
"created_date": "2026-08-03T09:00:00.000Z"
}
],
"Staff": [
{
"id": "staff_marco",
"name": "Marco Rivera",
"email": "marco.rivera@email.com",
"phone": "+1-415-555-0103",
"role": "Experienced Bartender – Corporate Events",
"profile_tier": "Skilled",
"hire_date": "2026-07-25",
"application_id": "app_marco",
"job_posting_id": "job_bartender_corp",
"ai_score": 92,
"status": "onboarding",
"client_rating": 0,
"endorsed_skills": [],
"created_date": "2026-07-25T09:00:00.000Z"
},
{
"id": "staff_marcus",
"name": "Marcus Williams",
"email": "marcus.w@email.com",
"phone": "+1-415-555-0102",
"role": "Event Security Officer",
"profile_tier": "Skilled",
"hire_date": "2026-07-25",
"application_id": "app_marcus",
"job_posting_id": "job_security",
"ai_score": 94,
"status": "onboarding",
"client_rating": 0,
"endorsed_skills": [],
"created_date": "2026-07-25T09:00:00.000Z"
},
{
"id": "staff_antoine",
"name": "Chef Antoine Dubois",
"email": "antoine.dubois@email.com",
"phone": "+1-415-555-0101",
"role": "Executive Chef – Catering",
"profile_tier": "Skilled",
"hire_date": "2026-07-25",
"application_id": "app_antoine",
"job_posting_id": "job_chef",
"ai_score": 97,
"status": "onboarding",
"client_rating": 0,
"endorsed_skills": [],
"created_date": "2026-07-25T09:00:00.000Z"
}
],
"WorkerProfile": [
{
"id": "wp_maria",
"full_name": "Maria Gonzalez",
"email": "maria.gonzalez@example.com",
"phone": "+1-415-555-0201",
"address": "San Jose, CA",
"selfie_url": "https://i.pravatar.cc/240?img=31",
"languages": [
"English",
"Spanish"
],
"availability": [
"Weekdays",
"Weekends",
"Evenings"
],
"transportation": "Own vehicle",
"certifications": [
"Food Handler Card",
"ServSafe"
],
"experience": [
{
"company": "Legendary Event Staff",
"role": "Banquet Captain",
"years": 4
},
{
"company": "Fairmont San Jose",
"role": "Event Server",
"years": 3
}
],
"experience_years": 7,
"current_position": "Banquet Captain",
"desired_position": "Event Lead",
"career_goals": "Run event operations for a hotel group within three years.",
"skills": [
"Floor leadership",
"Coursed service",
"Client relations",
"BEO reading",
"Scheduling"
],
"industries": [
"Hospitality",
"Events"
],
"personality": "Steady and direct. Sets expectations early and holds them without friction.",
"strengths": [
"Calm under pressure",
"Trains new staff well",
"Client-facing polish"
],
"weaknesses": [
"Takes on too much rather than delegating"
],
"communication_style": "Concise and warm; confirms understanding before moving on.",
"salary_expectations": "$30–$36/hr",
"leadership_potential": 92,
"ai_interview_score": 93,
"krow_score": 95,
"reliability_score": 96,
"profile_completion": 94,
"score_breakdown": {
"attendance": 98,
"performance": 93,
"education": 100,
"clientReviews": 98,
"supervisorReviews": 96,
"growth": 100,
"experience": 80
},
"xp": 1480,
"completed_courses": [
{
"course_id": "mod_server_server_fundamentals",
"title": "Server Fundamentals",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_server_workplace_safety",
"title": "Workplace Safety",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_server_basic_guest_service",
"title": "Basic Guest Service",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_server_advanced_guest_service",
"title": "Advanced Guest Service",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_server_table_management",
"title": "Table Management",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_server_order_accuracy",
"title": "Order Accuracy",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "course_service_basics",
"title": "Fine Dining Service Standards",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_server_guest_recovery",
"title": "Guest Recovery",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_server_high_volume_service_operations",
"title": "High-Volume Service Operations",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_guest_first_impressions",
"title": "Guest First Impressions",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_reading_the_room",
"title": "Reading the Room",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_handling_complaints",
"title": "Handling Complaints",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_service_recovery_basics",
"title": "Service Recovery Basics",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_vip_high_stakes_guests",
"title": "VIP & High-Stakes Guests",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_client_relations",
"title": "Client Relations",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "course_kitchen_safety",
"title": "Kitchen Safety & Hazard Spotting",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_food_safety_personal_hygiene_standards",
"title": "Personal Hygiene Standards",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_leadership_shift_communication",
"title": "Shift Communication",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_leadership_giving_taking_direction",
"title": "Giving & Taking Direction",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_leadership_pre_shift_briefings",
"title": "Pre-Shift Briefings",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_leadership_handling_conflict_on_the_floor",
"title": "Handling Conflict on the Floor",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "course_leadership",
"title": "Leading a Floor Team",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
},
{
"course_id": "mod_leadership_section_assignment_coverage",
"title": "Section Assignment & Coverage",
"score": 93,
"completed_date": "2026-07-14T09:00:00.000Z"
}
],
"earned_badges": [
{
"name": "Service Fundamentals",
"level": "bronze",
"course_id": "course_service_basics",
"earned_date": "2026-06-22T09:00:00.000Z"
},
{
"name": "Safety Aware",
"level": "bronze",
"course_id": "course_kitchen_safety",
"earned_date": "2026-07-01T09:00:00.000Z"
},
{
"name": "Floor Leader",
"level": "gold",
"course_id": "course_leadership",
"earned_date": "2026-07-14T09:00:00.000Z"
}
],
"capabilities": [
{
"skill": "Coursed Table Service",
"level": "Verified",
"evidence_id": "ev_maria_service",
"status": "verified",
"verified_date": "2026-06-22T09:00:00.000Z"
},
{
"skill": "Team Leadership",
"level": "Verified",
"evidence_id": "ev_maria_leadership",
"status": "verified",
"verified_date": "2026-07-14T09:00:00.000Z"
}
],
"shifts_completed": 64,
"attendance_score": 98,
"performance_score": 93,
"client_rating": 4.9,
"supervisor_rating": 4.8,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z"
},
{
"id": "wp_iliana",
"full_name": "Iliana Ortega",
"email": "iortega@legendaryeventstaff.com",
"phone": "+1-415-555-0202",
"address": "Oakland, CA",
"selfie_url": "https://i.pravatar.cc/240?img=26",
"languages": [
"English",
"Spanish"
],
"availability": [
"Weekends"
],
"transportation": "Public transit",
"certifications": [
"Food Handler Card"
],
"experience": [
{
"company": "Legendary Event Staff",
"role": "Event Server",
"years": 1
}
],
"experience_years": 1,
"current_position": "Event Server",
"desired_position": "Bartender",
"career_goals": "Move behind the bar and get certified this year.",
"skills": [
"Table service",
"Guest relations"
],
"industries": [
"Hospitality"
],
"leadership_potential": 24,
"ai_interview_score": 0,
"krow_score": 30,
"reliability_score": 37,
"profile_completion": 88,
"score_breakdown": {
"attendance": 92,
"performance": 0,
"education": 80,
"clientReviews": 0,
"supervisorReviews": 0,
"growth": 12,
"experience": 15
},
"xp": 120,
"completed_courses": [
{
"course_id": "mod_server_server_fundamentals",
"title": "Server Fundamentals",
"score": 79,
"completed_date": "2026-07-28T09:00:00.000Z"
},
{
"course_id": "mod_server_workplace_safety",
"title": "Workplace Safety",
"score": 79,
"completed_date": "2026-07-28T09:00:00.000Z"
},
{
"course_id": "mod_server_basic_guest_service",
"title": "Basic Guest Service",
"score": 79,
"completed_date": "2026-07-28T09:00:00.000Z"
},
{
"course_id": "mod_server_advanced_guest_service",
"title": "Advanced Guest Service",
"score": 79,
"completed_date": "2026-07-28T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_guest_first_impressions",
"title": "Guest First Impressions",
"score": 79,
"completed_date": "2026-07-28T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_reading_the_room",
"title": "Reading the Room",
"score": 79,
"completed_date": "2026-07-28T09:00:00.000Z"
}
],
"earned_badges": [
{
"name": "Service Fundamentals",
"level": "bronze",
"course_id": "course_service_basics",
"earned_date": "2026-07-28T09:00:00.000Z"
}
],
"capabilities": [],
"shifts_completed": 6,
"attendance_score": 92,
"performance_score": 0,
"client_rating": 0,
"supervisor_rating": 0,
"status": "active",
"created_date": "2026-07-22T09:00:00.000Z"
},
{
"id": "wp_arun",
"full_name": "Arun Kumar",
"email": "arun.kumar@example.com",
"phone": "+1-408-555-0210",
"address": "San Jose, CA",
"selfie_url": "https://i.pravatar.cc/240?img=68",
"languages": [
"English",
"Tamil"
],
"availability": [
"Weekdays",
"Weekends",
"Evenings"
],
"transportation": "Own vehicle",
"certifications": [
"Food Handler Card"
],
"experience": [
{
"company": "Valley Catering Co.",
"role": "Event Server",
"years": 4
}
],
"experience_years": 4,
"current_position": "Event Server",
"desired_position": "Senior Server",
"career_goals": "Run a fine dining section as the senior server on the floor.",
"skills": [
"Coursed service",
"Guest recovery",
"Allergen handling"
],
"industries": [
"Hospitality",
"Events"
],
"personality": "Unflappable. Notices the table nobody else is watching.",
"strengths": [
"Calm at volume",
"Accurate under pressure"
],
"weaknesses": [
"Quiet in briefings"
],
"communication_style": "Measured; confirms detail before acting.",
"salary_expectations": "$26–$32/hr",
"leadership_potential": 68,
"ai_interview_score": 86,
"krow_score": 87,
"reliability_score": 91,
"profile_completion": 88,
"score_breakdown": {
"attendance": 96,
"performance": 88,
"education": 100,
"clientReviews": 94,
"supervisorReviews": 92,
"growth": 100,
"experience": 45
},
"xp": 1180,
"completed_courses": [
{
"course_id": "mod_server_server_fundamentals",
"title": "Server Fundamentals",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_server_workplace_safety",
"title": "Workplace Safety",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_server_basic_guest_service",
"title": "Basic Guest Service",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_server_advanced_guest_service",
"title": "Advanced Guest Service",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_server_table_management",
"title": "Table Management",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_server_order_accuracy",
"title": "Order Accuracy",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_server_guest_recovery",
"title": "Guest Recovery",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_server_high_volume_service_operations",
"title": "High-Volume Service Operations",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_guest_first_impressions",
"title": "Guest First Impressions",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_reading_the_room",
"title": "Reading the Room",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_handling_complaints",
"title": "Handling Complaints",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_service_recovery_basics",
"title": "Service Recovery Basics",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "course_kitchen_safety",
"title": "Kitchen Safety & Hazard Spotting",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_food_safety_personal_hygiene_standards",
"title": "Personal Hygiene Standards",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_leadership_shift_communication",
"title": "Shift Communication",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
},
{
"course_id": "mod_leadership_giving_taking_direction",
"title": "Giving & Taking Direction",
"score": 89,
"completed_date": "2026-08-02T09:00:00.000Z"
}
],
"earned_badges": [],
"capabilities": [],
"shifts_completed": 38,
"attendance_score": 96,
"performance_score": 88,
"client_rating": 4.7,
"supervisor_rating": 4.6,
"status": "active",
"created_date": "2026-07-05T09:00:00.000Z"
},
{
"id": "wp_priya",
"full_name": "Priya Nair",
"email": "priya.nair@example.com",
"phone": "+1-408-555-0211",
"address": "Santa Clara, CA",
"selfie_url": "https://i.pravatar.cc/240?img=47",
"languages": [
"English",
"Hindi"
],
"availability": [
"Weekends",
"Evenings"
],
"transportation": "Own vehicle",
"certifications": [
"Food Handler Card"
],
"experience": [
{
"company": "Bay Event Staffing",
"role": "Event Server",
"years": 2
}
],
"experience_years": 2,
"current_position": "Event Server",
"desired_position": "Senior Server",
"career_goals": "Move up to fine dining sections.",
"skills": [
"Table service",
"Guest relations"
],
"industries": [
"Hospitality"
],
"leadership_potential": 45,
"ai_interview_score": 74,
"krow_score": 78,
"reliability_score": 86,
"profile_completion": 88,
"score_breakdown": {
"attendance": 93,
"performance": 81,
"education": 100,
"clientReviews": 90,
"supervisorReviews": 88,
"growth": 76,
"experience": 25
},
"xp": 760,
"completed_courses": [
{
"course_id": "mod_server_server_fundamentals",
"title": "Server Fundamentals",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_server_workplace_safety",
"title": "Workplace Safety",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_server_basic_guest_service",
"title": "Basic Guest Service",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_server_advanced_guest_service",
"title": "Advanced Guest Service",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_server_table_management",
"title": "Table Management",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_server_order_accuracy",
"title": "Order Accuracy",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_guest_first_impressions",
"title": "Guest First Impressions",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_reading_the_room",
"title": "Reading the Room",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_handling_complaints",
"title": "Handling Complaints",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_service_recovery_basics",
"title": "Service Recovery Basics",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "course_kitchen_safety",
"title": "Kitchen Safety & Hazard Spotting",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
},
{
"course_id": "mod_food_safety_personal_hygiene_standards",
"title": "Personal Hygiene Standards",
"score": 85,
"completed_date": "2026-07-30T09:00:00.000Z"
}
],
"earned_badges": [],
"capabilities": [],
"shifts_completed": 21,
"attendance_score": 93,
"performance_score": 81,
"client_rating": 4.5,
"supervisor_rating": 4.4,
"status": "active",
"created_date": "2026-07-12T09:00:00.000Z"
},
{
"id": "wp_rahul",
"full_name": "Rahul Menon",
"email": "rahul.menon@example.com",
"phone": "+1-408-555-0212",
"address": "Milpitas, CA",
"selfie_url": "https://i.pravatar.cc/240?img=59",
"languages": [
"English"
],
"availability": [
"Weekends"
],
"transportation": "Public transit",
"certifications": [],
"experience": [],
"experience_years": 0,
"current_position": "",
"desired_position": "Event Server",
"career_goals": "Get on a floor and learn the work properly.",
"skills": [],
"industries": [
"Hospitality"
],
"leadership_potential": 20,
"ai_interview_score": 0,
"krow_score": 35,
"reliability_score": 42,
"profile_completion": 63,
"score_breakdown": {
"attendance": 100,
"performance": 0,
"education": 100,
"clientReviews": 0,
"supervisorReviews": 0,
"growth": 32,
"experience": 0
},
"xp": 320,
"completed_courses": [
{
"course_id": "mod_server_server_fundamentals",
"title": "Server Fundamentals",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "mod_server_workplace_safety",
"title": "Workplace Safety",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "mod_server_basic_guest_service",
"title": "Basic Guest Service",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_guest_first_impressions",
"title": "Guest First Impressions",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "mod_customer_service_reading_the_room",
"title": "Reading the Room",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "course_kitchen_safety",
"title": "Kitchen Safety & Hazard Spotting",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "mod_food_safety_personal_hygiene_standards",
"title": "Personal Hygiene Standards",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "mod_leadership_shift_communication",
"title": "Shift Communication",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
},
{
"course_id": "mod_leadership_giving_taking_direction",
"title": "Giving & Taking Direction",
"score": 76,
"completed_date": "2026-08-05T09:00:00.000Z"
}
],
"earned_badges": [],
"capabilities": [],
"shifts_completed": 4,
"attendance_score": 100,
"performance_score": 0,
"client_rating": 0,
"supervisor_rating": 0,
"status": "active",
"created_date": "2026-07-28T09:00:00.000Z"
},
{
"id": "wp_aravind",
"full_name": "Aravind Kumar",
"email": "aravind@tenext.in",
"phone": "+1-415-555-0203",
"address": "Fremont, CA",
"selfie_url": "https://i.pravatar.cc/240?img=15",
"languages": [
"English",
"Tamil",
"Hindi"
],
"availability": [
"Weekdays",
"Evenings"
],
"transportation": "Own vehicle",
"certifications": [],
"experience": [],
"experience_years": 0,
"current_position": "",
"desired_position": "Barback",
"career_goals": "Get a first hospitality shift and build from there.",
"skills": [],
"industries": [
"Hospitality"
],
"leadership_potential": 0,
"ai_interview_score": 0,
"krow_score": 0,
"reliability_score": 0,
"profile_completion": 56,
"score_breakdown": {
"attendance": null,
"performance": 0,
"education": 0,
"clientReviews": 0,
"supervisorReviews": 0,
"growth": 0,
"experience": 0
},
"xp": 0,
"completed_courses": [],
"earned_badges": [],
"capabilities": [],
"shifts_completed": 0,
"attendance_score": 100,
"performance_score": 0,
"client_rating": 0,
"supervisor_rating": 0,
"status": "active",
"created_date": "2026-08-02T09:00:00.000Z"
},
{
"id": "wp_demo",
"full_name": "New Talent Demo",
"email": "new.demo2@example.com",
"phone": "+1-415-555-0204",
"address": "San Francisco, CA",
"selfie_url": "https://i.pravatar.cc/240?img=9",
"languages": [
"English"
],
"availability": [],
"transportation": "",
"certifications": [],
"experience": [],
"experience_years": 0,
"current_position": "",
"desired_position": "",
"career_goals": "",
"skills": [],
"industries": [],
"leadership_potential": 0,
"ai_interview_score": 0,
"krow_score": 0,
"reliability_score": 0,
"profile_completion": 31,
"score_breakdown": {
"attendance": null,
"performance": 0,
"education": 0,
"clientReviews": 0,
"supervisorReviews": 0,
"growth": 0,
"experience": 0
},
"xp": 0,
"completed_courses": [],
"earned_badges": [],
"capabilities": [],
"shifts_completed": 0,
"attendance_score": 100,
"performance_score": 0,
"client_rating": 0,
"supervisor_rating": 0,
"status": "active",
"created_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "wp_jamal",
"full_name": "Jamal Whitaker",
"email": "jamal.whitaker@example.com",
"phone": "+1-415-555-0205",
"address": "Berkeley, CA",
"selfie_url": "https://i.pravatar.cc/240?img=52",
"languages": [
"English"
],
"availability": [
"Weekends",
"Evenings"
],
"transportation": "Own vehicle",
"certifications": [],
"experience": [],
"experience_years": 0,
"current_position": "",
"desired_position": "Event Server",
"career_goals": "Work weekends around school.",
"skills": [],
"industries": [
"Events"
],
"leadership_potential": 0,
"ai_interview_score": 0,
"krow_score": 0,
"reliability_score": 0,
"profile_completion": 56,
"score_breakdown": {
"attendance": null,
"performance": 0,
"education": 0,
"clientReviews": 0,
"supervisorReviews": 0,
"growth": 0,
"experience": 0
},
"xp": 0,
"completed_courses": [],
"earned_badges": [],
"capabilities": [],
"shifts_completed": 0,
"attendance_score": 100,
"performance_score": 0,
"client_rating": 0,
"supervisor_rating": 0,
"status": "active",
"created_date": "2026-08-06T09:00:00.000Z"
},
{
"id": "wp_lin",
"full_name": "Lin Zhao",
"email": "lin.zhao@example.com",
"phone": "+1-415-555-0206",
"address": "Daly City, CA",
"selfie_url": "https://i.pravatar.cc/240?img=20",
"languages": [
"English",
"Mandarin"
],
"availability": [
"Weekdays"
],
"transportation": "Public transit",
"certifications": [],
"experience": [],
"experience_years": 0,
"current_position": "",
"desired_position": "Picker",
"career_goals": "Steady weekday warehouse work.",
"skills": [],
"industries": [
"Logistics"
],
"leadership_potential": 0,
"ai_interview_score": 0,
"krow_score": 0,
"reliability_score": 0,
"profile_completion": 56,
"score_breakdown": {
"attendance": null,
"performance": 0,
"education": 0,
"clientReviews": 0,
"supervisorReviews": 0,
"growth": 0,
"experience": 0
},
"xp": 0,
"completed_courses": [],
"earned_badges": [],
"capabilities": [],
"shifts_completed": 0,
"attendance_score": 100,
"performance_score": 0,
"client_rating": 0,
"supervisor_rating": 0,
"status": "active",
"created_date": "2026-08-06T09:00:00.000Z"
}
],
"Course": [
{
"id": "course_service_basics",
"title": "Fine Dining Service Standards",
"description": "Coursed service, tray discipline, and the small signals that separate a polished floor from a busy one.",
"category": "Service",
"difficulty": "beginner",
"xp": 120,
"badge_reward": "Service Fundamentals",
"estimated_minutes": 18,
"proof_skill": "Coursed Table Service",
"skill_id": "server",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Acknowledges without excuses",
"Offers a concrete remedy",
"Protects the table experience"
],
"challenge": {
"type": "roleplay",
"prompt": "A guest at a seated dinner says their entrée is cold, and the kitchen is nine minutes behind. Handle it out loud, start to finish.",
"ai_persona": "A polite but disappointed guest at a wedding head table.",
"rubric": [
{
"criterion": "Acknowledges without excuses",
"weight": 30
},
{
"criterion": "Offers a concrete remedy",
"weight": 40
},
{
"criterion": "Protects the table experience",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [
{
"question": "A guest flags an allergy mid-service. What happens first?",
"options": [
"Guess from the menu",
"Stop the plate and check with the kitchen",
"Serve it anyway",
"Ask another server"
],
"correct_index": 1
},
{
"question": "When do you clear a course?",
"options": [
"As each guest finishes",
"When the whole table has finished",
"Before dessert only",
"At the captain’s call"
],
"correct_index": 1
}
],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-10T09:00:00.000Z"
},
{
"id": "course_responsible_service",
"title": "Responsible Alcohol Service",
"description": "Reading intoxication, refusing service without a scene, and documenting what happened.",
"category": "Bar",
"difficulty": "intermediate",
"xp": 160,
"badge_reward": "Responsible Service",
"estimated_minutes": 22,
"proof_skill": "Responsible Service Judgment",
"skill_id": "bartending",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Refuses clearly and kindly",
"Offers an alternative",
"Escalates appropriately"
],
"challenge": {
"type": "roleplay",
"prompt": "A guest who has clearly had enough asks for one more round, and their colleagues are watching. Talk it through.",
"ai_persona": "A friendly but insistent guest at a corporate holiday party.",
"rubric": [
{
"criterion": "Refuses clearly and kindly",
"weight": 40
},
{
"criterion": "Offers an alternative",
"weight": 30
},
{
"criterion": "Escalates appropriately",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [
{
"question": "A guest shows clear signs of intoxication. What do you do?",
"options": [
"Serve a weaker drink",
"Refuse service and notify your lead",
"Ignore it",
"Ask a coworker to serve them"
],
"correct_index": 1
}
],
"pass_score": 75,
"status": "active",
"created_date": "2026-06-12T09:00:00.000Z"
},
{
"id": "course_kitchen_safety",
"title": "Kitchen Safety & Hazard Spotting",
"description": "Find the hazard before it finds you — temperature, cross-contamination, and traffic flow.",
"category": "Kitchen",
"difficulty": "beginner",
"xp": 100,
"badge_reward": "Safety Aware",
"estimated_minutes": 14,
"proof_skill": "Hazard Identification",
"skill_id": "food_safety",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Identifies temperature violations",
"Spots cross-contamination risk",
"Notes obstruction hazards"
],
"challenge": {
"type": "photo_identify",
"prompt": "Mark every food-safety hazard you can find in this prep station.",
"image_url": "",
"rubric": [
{
"criterion": "Identifies temperature violations",
"weight": 40
},
{
"criterion": "Spots cross-contamination risk",
"weight": 40
},
{
"criterion": "Notes obstruction hazards",
"weight": 20
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [
{
"question": "What is the danger zone for cold-held food?",
"options": [
"Below 32°F",
"41°F to 135°F",
"Above 165°F",
"Any temperature"
],
"correct_index": 1
}
],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-14T09:00:00.000Z"
},
{
"id": "course_leadership",
"title": "Leading a Floor Team",
"description": "Pre-shift briefings, section assignments, and correcting a teammate without deflating them.",
"category": "Leadership",
"difficulty": "advanced",
"xp": 240,
"badge_reward": "Floor Leader",
"estimated_minutes": 30,
"proof_skill": "Team Leadership",
"skill_id": "leadership",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Assigns clear ownership",
"Communicates timing",
"Sets a tone people follow"
],
"challenge": {
"type": "video",
"prompt": "Record the pre-shift briefing you would give a floor team of eight before a 300-guest gala.",
"rubric": [
{
"criterion": "Assigns clear ownership",
"weight": 35
},
{
"criterion": "Communicates timing",
"weight": 35
},
{
"criterion": "Sets a tone people follow",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 5,
"min_reliability": 70,
"required_badges": [
"Service Fundamentals"
]
},
"quiz": [],
"pass_score": 80,
"status": "active",
"created_date": "2026-06-16T09:00:00.000Z"
},
{
"id": "mod_server_server_fundamentals",
"title": "Server Fundamentals",
"description": "Sequence of service, tray discipline, and the first ninety seconds at a table.",
"category": "Service",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 18,
"proof_skill": "Server Fundamentals",
"skill_id": "server",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Greets and sets expectations",
"Follows the service sequence",
"Handles the tray safely"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a server fundamentals scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Greets and sets expectations",
"weight": 40
},
{
"criterion": "Follows the service sequence",
"weight": 30
},
{
"criterion": "Handles the tray safely",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 0
},
{
"id": "mod_server_workplace_safety",
"title": "Workplace Safety",
"description": "Spot the hazard before it becomes an incident — spills, traffic, hot pass.",
"category": "Service",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 14,
"proof_skill": "Workplace Safety",
"skill_id": "server",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Identifies floor hazards",
"Spots obstruction risks",
"Knows when to stop service"
],
"challenge": {
"type": "photo_identify",
"prompt": "Mark everything a workplace safety check should catch in this photo.",
"rubric": [
{
"criterion": "Identifies floor hazards",
"weight": 40
},
{
"criterion": "Spots obstruction risks",
"weight": 30
},
{
"criterion": "Knows when to stop service",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 1
},
{
"id": "mod_server_basic_guest_service",
"title": "Basic Guest Service",
"description": "Reading a table, timing an approach, and answering what you actually know.",
"category": "Service",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 16,
"proof_skill": "Basic Guest Service",
"skill_id": "server",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Reads the table before approaching",
"Answers accurately",
"Closes the interaction cleanly"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a basic guest service scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Reads the table before approaching",
"weight": 40
},
{
"criterion": "Answers accurately",
"weight": 30
},
{
"criterion": "Closes the interaction cleanly",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 2
},
{
"id": "mod_server_advanced_guest_service",
"title": "Advanced Guest Service",
"description": "Difficult tables, competing demands, and keeping a section moving anyway.",
"category": "Service",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 20,
"proof_skill": "Advanced Guest Service",
"skill_id": "server",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Prioritises across tables",
"Keeps guests informed",
"Recovers timing without panic"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a advanced guest service scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Prioritises across tables",
"weight": 40
},
{
"criterion": "Keeps guests informed",
"weight": 30
},
{
"criterion": "Recovers timing without panic",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 3
},
{
"id": "mod_server_table_management",
"title": "Table Management",
"description": "Running a section: turns, holds, and the order you touch tables in.",
"category": "Service",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 18,
"proof_skill": "Table Management",
"skill_id": "server",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Sequences the section",
"Manages holds and turns",
"Communicates with the pass"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a table management scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Sequences the section",
"weight": 40
},
{
"criterion": "Manages holds and turns",
"weight": 30
},
{
"criterion": "Communicates with the pass",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 4
},
{
"id": "mod_server_order_accuracy",
"title": "Order Accuracy",
"description": "Modifiers, allergens, and repeating back what you are about to send.",
"category": "Service",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 15,
"proof_skill": "Order Accuracy",
"skill_id": "server",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Confirms modifiers",
"Flags allergens correctly",
"Verifies before firing"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a order accuracy scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Confirms modifiers",
"weight": 40
},
{
"criterion": "Flags allergens correctly",
"weight": 30
},
{
"criterion": "Verifies before firing",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 5
},
{
"id": "mod_server_guest_recovery",
"title": "Guest Recovery",
"description": "Turning a failed experience around without giving away the room.",
"category": "Service",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 22,
"proof_skill": "Guest Recovery",
"skill_id": "server",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Acknowledges without excuses",
"Offers a concrete remedy",
"Protects the table experience"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a guest recovery scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Acknowledges without excuses",
"weight": 40
},
{
"criterion": "Offers a concrete remedy",
"weight": 30
},
{
"criterion": "Protects the table experience",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 6
},
{
"id": "mod_server_high_volume_service_operations",
"title": "High-Volume Service Operations",
"description": "Three hundred covers, one pass, and a plan that survives contact.",
"category": "Service",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 25,
"proof_skill": "High-Volume Service Operations",
"skill_id": "server",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Plans the run",
"Holds the standard at volume",
"Adjusts without dropping tables"
],
"challenge": {
"type": "video",
"prompt": "Record yourself demonstrating high-volume service operations as you would on a live shift.",
"rubric": [
{
"criterion": "Plans the run",
"weight": 40
},
{
"criterion": "Holds the standard at volume",
"weight": 30
},
{
"criterion": "Adjusts without dropping tables",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 7
},
{
"id": "mod_server_floor_leadership",
"title": "Floor Leadership",
"description": "Owning the floor: assignments, pace, and the call nobody else will make.",
"category": "Service",
"difficulty": "advanced",
"xp": 300,
"estimated_minutes": 30,
"proof_skill": "Floor Leadership",
"skill_id": "server",
"target_level": "expert",
"required_level": "advanced",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Assigns clear ownership",
"Sets and holds the pace",
"Makes the decision on time"
],
"challenge": {
"type": "video",
"prompt": "Record yourself demonstrating floor leadership as you would on a live shift.",
"rubric": [
{
"criterion": "Assigns clear ownership",
"weight": 40
},
{
"criterion": "Sets and holds the pace",
"weight": 30
},
{
"criterion": "Makes the decision on time",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 8
},
{
"id": "mod_server_service_coaching",
"title": "Service Coaching",
"description": "Correcting a teammate mid-service without deflating them.",
"category": "Service",
"difficulty": "advanced",
"xp": 300,
"estimated_minutes": 25,
"proof_skill": "Service Coaching",
"skill_id": "server",
"target_level": "expert",
"required_level": "advanced",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Names the behaviour, not the person",
"Gives an actionable correction",
"Confirms understanding"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a service coaching scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Names the behaviour, not the person",
"weight": 40
},
{
"criterion": "Gives an actionable correction",
"weight": 30
},
{
"criterion": "Confirms understanding",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 9
},
{
"id": "mod_server_operations_excellence",
"title": "Operations Excellence",
"description": "Reading a BEO, staffing to it, and defending the standard to a client.",
"category": "Service",
"difficulty": "advanced",
"xp": 300,
"estimated_minutes": 28,
"proof_skill": "Operations Excellence",
"skill_id": "server",
"target_level": "expert",
"required_level": "advanced",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Reads the event brief accurately",
"Staffs to the requirement",
"Holds the standard with the client"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a operations excellence scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Reads the event brief accurately",
"weight": 40
},
{
"criterion": "Staffs to the requirement",
"weight": 30
},
{
"criterion": "Holds the standard with the client",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 10
},
{
"id": "mod_bartending_bar_fundamentals",
"title": "Bar Fundamentals",
"description": "Station setup, glassware, and pouring to spec under a clock.",
"category": "Bar",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 16,
"proof_skill": "Bar Fundamentals",
"skill_id": "bartending",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Sets up a working station",
"Pours to spec",
"Keeps the bar clean during service"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a bar fundamentals scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Sets up a working station",
"weight": 40
},
{
"criterion": "Pours to spec",
"weight": 30
},
{
"criterion": "Keeps the bar clean during service",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 11
},
{
"id": "mod_bartending_responsible_service_basics",
"title": "Responsible Service Basics",
"description": "Checking age, reading a guest, and knowing where the line is.",
"category": "Bar",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 14,
"proof_skill": "Responsible Service Basics",
"skill_id": "bartending",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Verifies age correctly",
"Reads intoxication signs",
"Knows the escalation path"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a responsible service basics scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Verifies age correctly",
"weight": 40
},
{
"criterion": "Reads intoxication signs",
"weight": 30
},
{
"criterion": "Knows the escalation path",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 12
},
{
"id": "mod_bartending_cocktail_specs_speed",
"title": "Cocktail Specs & Speed",
"description": "Classic specs from memory, built at event pace without losing accuracy.",
"category": "Bar",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 20,
"proof_skill": "Cocktail Specs & Speed",
"skill_id": "bartending",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Builds to spec",
"Maintains pace",
"Recovers from a mistake cleanly"
],
"challenge": {
"type": "video",
"prompt": "Record yourself demonstrating cocktail specs & speed as you would on a live shift.",
"rubric": [
{
"criterion": "Builds to spec",
"weight": 40
},
{
"criterion": "Maintains pace",
"weight": 30
},
{
"criterion": "Recovers from a mistake cleanly",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 13
},
{
"id": "mod_bartending_high_volume_bar_operations",
"title": "High-Volume Bar Operations",
"description": "Running a bar three deep: batching, sequencing, and restock timing.",
"category": "Bar",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 24,
"proof_skill": "High-Volume Bar Operations",
"skill_id": "bartending",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Batches sensibly",
"Sequences the rail",
"Restocks before it hurts"
],
"challenge": {
"type": "video",
"prompt": "Record yourself demonstrating high-volume bar operations as you would on a live shift.",
"rubric": [
{
"criterion": "Batches sensibly",
"weight": 40
},
{
"criterion": "Sequences the rail",
"weight": 30
},
{
"criterion": "Restocks before it hurts",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 14
},
{
"id": "mod_bartending_guest_judgment_behind_the_bar",
"title": "Guest Judgment Behind the Bar",
"description": "The refusal, the regular, and the colleague watching you make the call.",
"category": "Bar",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 20,
"proof_skill": "Guest Judgment Behind the Bar",
"skill_id": "bartending",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Refuses clearly and kindly",
"Protects the guest and the room",
"Documents what happened"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a guest judgment behind the bar scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Refuses clearly and kindly",
"weight": 40
},
{
"criterion": "Protects the guest and the room",
"weight": 30
},
{
"criterion": "Documents what happened",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 15
},
{
"id": "mod_bartending_bar_program_leadership",
"title": "Bar Program Leadership",
"description": "Menu, training, and holding a team of bartenders to one standard.",
"category": "Bar",
"difficulty": "advanced",
"xp": 300,
"estimated_minutes": 28,
"proof_skill": "Bar Program Leadership",
"skill_id": "bartending",
"target_level": "expert",
"required_level": "advanced",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Sets a standard others can follow",
"Trains rather than corrects",
"Owns the program end to end"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a bar program leadership scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Sets a standard others can follow",
"weight": 40
},
{
"criterion": "Trains rather than corrects",
"weight": 30
},
{
"criterion": "Owns the program end to end",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 16
},
{
"id": "mod_bartending_inventory_cost_control",
"title": "Inventory & Cost Control",
"description": "Par levels, variance, and explaining a number to an operator.",
"category": "Bar",
"difficulty": "advanced",
"xp": 300,
"estimated_minutes": 24,
"proof_skill": "Inventory & Cost Control",
"skill_id": "bartending",
"target_level": "expert",
"required_level": "advanced",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Tracks variance accurately",
"Explains the number",
"Proposes a real fix"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a inventory & cost control scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Tracks variance accurately",
"weight": 40
},
{
"criterion": "Explains the number",
"weight": 30
},
{
"criterion": "Proposes a real fix",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 17
},
{
"id": "mod_leadership_shift_communication",
"title": "Shift Communication",
"description": "Saying the necessary thing, once, so the room hears it.",
"category": "Leadership",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 14,
"proof_skill": "Shift Communication",
"skill_id": "leadership",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"States the message clearly",
"Confirms it landed",
"Keeps it short"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a shift communication scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "States the message clearly",
"weight": 40
},
{
"criterion": "Confirms it landed",
"weight": 30
},
{
"criterion": "Keeps it short",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 18
},
{
"id": "mod_leadership_giving_taking_direction",
"title": "Giving & Taking Direction",
"description": "Taking a correction well, and giving one that can be acted on.",
"category": "Leadership",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 16,
"proof_skill": "Giving & Taking Direction",
"skill_id": "leadership",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Receives correction without friction",
"Gives an actionable instruction",
"Follows up"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a giving & taking direction scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Receives correction without friction",
"weight": 40
},
{
"criterion": "Gives an actionable instruction",
"weight": 30
},
{
"criterion": "Follows up",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 19
},
{
"id": "mod_leadership_pre_shift_briefings",
"title": "Pre-Shift Briefings",
"description": "Two minutes that decide how the next six hours go.",
"category": "Leadership",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 18,
"proof_skill": "Pre-Shift Briefings",
"skill_id": "leadership",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Covers ownership and timing",
"Sets the tone",
"Ends with questions answered"
],
"challenge": {
"type": "video",
"prompt": "Record yourself demonstrating pre-shift briefings as you would on a live shift.",
"rubric": [
{
"criterion": "Covers ownership and timing",
"weight": 40
},
{
"criterion": "Sets the tone",
"weight": 30
},
{
"criterion": "Ends with questions answered",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 20
},
{
"id": "mod_leadership_handling_conflict_on_the_floor",
"title": "Handling Conflict on the Floor",
"description": "Two staff, one section, and a room that must not notice.",
"category": "Leadership",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 20,
"proof_skill": "Handling Conflict on the Floor",
"skill_id": "leadership",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"De-escalates in private",
"Resolves rather than defers",
"Protects service"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a handling conflict on the floor scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "De-escalates in private",
"weight": 40
},
{
"criterion": "Resolves rather than defers",
"weight": 30
},
{
"criterion": "Protects service",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 21
},
{
"id": "mod_leadership_section_assignment_coverage",
"title": "Section Assignment & Coverage",
"description": "Matching people to sections, and covering the gap when someone drops.",
"category": "Leadership",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 22,
"proof_skill": "Section Assignment & Coverage",
"skill_id": "leadership",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Assigns to strength",
"Plans for absence",
"Rebalances mid-service"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a section assignment & coverage scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Assigns to strength",
"weight": 40
},
{
"criterion": "Plans for absence",
"weight": 30
},
{
"criterion": "Rebalances mid-service",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 22
},
{
"id": "mod_leadership_developing_your_team",
"title": "Developing Your Team",
"description": "Turning a good server into the person who runs the floor next year.",
"category": "Leadership",
"difficulty": "advanced",
"xp": 300,
"estimated_minutes": 26,
"proof_skill": "Developing Your Team",
"skill_id": "leadership",
"target_level": "expert",
"required_level": "advanced",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Identifies real potential",
"Gives progressive responsibility",
"Follows through over time"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a developing your team scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Identifies real potential",
"weight": 40
},
{
"criterion": "Gives progressive responsibility",
"weight": 30
},
{
"criterion": "Follows through over time",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 23
},
{
"id": "mod_leadership_operations_under_pressure",
"title": "Operations Under Pressure",
"description": "The gala that goes wrong, and the twenty minutes that decide it.",
"category": "Leadership",
"difficulty": "advanced",
"xp": 300,
"estimated_minutes": 28,
"proof_skill": "Operations Under Pressure",
"skill_id": "leadership",
"target_level": "expert",
"required_level": "advanced",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Triages correctly",
"Communicates under load",
"Owns the outcome"
],
"challenge": {
"type": "video",
"prompt": "Record yourself demonstrating operations under pressure as you would on a live shift.",
"rubric": [
{
"criterion": "Triages correctly",
"weight": 40
},
{
"criterion": "Communicates under load",
"weight": 30
},
{
"criterion": "Owns the outcome",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 24
},
{
"id": "mod_customer_service_guest_first_impressions",
"title": "Guest First Impressions",
"description": "The greeting, the eye contact, and the tone that sets the whole visit.",
"category": "Service",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 12,
"proof_skill": "Guest First Impressions",
"skill_id": "customer_service",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Opens warmly",
"Sets expectations",
"Hands off cleanly"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a guest first impressions scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Opens warmly",
"weight": 40
},
{
"criterion": "Sets expectations",
"weight": 30
},
{
"criterion": "Hands off cleanly",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 25
},
{
"id": "mod_customer_service_reading_the_room",
"title": "Reading the Room",
"description": "Knowing when a table wants attention and when it wants to be left alone.",
"category": "Service",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 14,
"proof_skill": "Reading the Room",
"skill_id": "customer_service",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Reads guest signals",
"Times the approach",
"Adjusts to the table"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a reading the room scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Reads guest signals",
"weight": 40
},
{
"criterion": "Times the approach",
"weight": 30
},
{
"criterion": "Adjusts to the table",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 26
},
{
"id": "mod_customer_service_handling_complaints",
"title": "Handling Complaints",
"description": "Hearing the complaint behind the complaint, and fixing that one.",
"category": "Service",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 18,
"proof_skill": "Handling Complaints",
"skill_id": "customer_service",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Listens before solving",
"Identifies the real issue",
"Resolves within authority"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a handling complaints scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Listens before solving",
"weight": 40
},
{
"criterion": "Identifies the real issue",
"weight": 30
},
{
"criterion": "Resolves within authority",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 27
},
{
"id": "mod_customer_service_service_recovery_basics",
"title": "Service Recovery Basics",
"description": "What you can offer, what you cannot, and how to escalate fast.",
"category": "Service",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 16,
"proof_skill": "Service Recovery Basics",
"skill_id": "customer_service",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Offers a concrete remedy",
"Stays within policy",
"Escalates without stalling"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a service recovery basics scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Offers a concrete remedy",
"weight": 40
},
{
"criterion": "Stays within policy",
"weight": 30
},
{
"criterion": "Escalates without stalling",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 28
},
{
"id": "mod_customer_service_vip_high_stakes_guests",
"title": "VIP & High-Stakes Guests",
"description": "The head table, the client, and the guest everyone is watching.",
"category": "Service",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 20,
"proof_skill": "VIP & High-Stakes Guests",
"skill_id": "customer_service",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Handles scrutiny calmly",
"Anticipates needs",
"Protects discretion"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a vip & high-stakes guests scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Handles scrutiny calmly",
"weight": 40
},
{
"criterion": "Anticipates needs",
"weight": 30
},
{
"criterion": "Protects discretion",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 29
},
{
"id": "mod_customer_service_client_relations",
"title": "Client Relations",
"description": "The conversation with the person who books the next event.",
"category": "Service",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 22,
"proof_skill": "Client Relations",
"skill_id": "customer_service",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Represents the operation",
"Handles pushback",
"Secures the follow-up"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a client relations scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Represents the operation",
"weight": 40
},
{
"criterion": "Handles pushback",
"weight": 30
},
{
"criterion": "Secures the follow-up",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 30
},
{
"id": "mod_food_safety_personal_hygiene_standards",
"title": "Personal Hygiene Standards",
"description": "Handwashing, gloves, and the habits an inspector looks for first.",
"category": "Kitchen",
"difficulty": "beginner",
"xp": 100,
"estimated_minutes": 10,
"proof_skill": "Personal Hygiene Standards",
"skill_id": "food_safety",
"target_level": "beginner",
"required_level": null,
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Follows hand hygiene",
"Uses gloves correctly",
"Presents to standard"
],
"challenge": {
"type": "photo_identify",
"prompt": "Mark everything a personal hygiene standards check should catch in this photo.",
"rubric": [
{
"criterion": "Follows hand hygiene",
"weight": 40
},
{
"criterion": "Uses gloves correctly",
"weight": 30
},
{
"criterion": "Presents to standard",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 31
},
{
"id": "mod_food_safety_temperature_control_haccp",
"title": "Temperature Control & HACCP",
"description": "Danger zone, hold times, and the log that proves you held it.",
"category": "Kitchen",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 18,
"proof_skill": "Temperature Control & HACCP",
"skill_id": "food_safety",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Knows the danger zone",
"Records holds accurately",
"Acts on a violation"
],
"challenge": {
"type": "photo_identify",
"prompt": "Mark everything a temperature control & haccp check should catch in this photo.",
"rubric": [
{
"criterion": "Knows the danger zone",
"weight": 40
},
{
"criterion": "Records holds accurately",
"weight": 30
},
{
"criterion": "Acts on a violation",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 32
},
{
"id": "mod_food_safety_allergen_management",
"title": "Allergen Management",
"description": "Stopping the plate, checking the ticket, and saying it out loud.",
"category": "Kitchen",
"difficulty": "intermediate",
"xp": 150,
"estimated_minutes": 16,
"proof_skill": "Allergen Management",
"skill_id": "food_safety",
"target_level": "intermediate",
"required_level": "beginner",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Stops the plate",
"Verifies with the kitchen",
"Communicates to the guest"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a allergen management scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Stops the plate",
"weight": 40
},
{
"criterion": "Verifies with the kitchen",
"weight": 30
},
{
"criterion": "Communicates to the guest",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 33
},
{
"id": "mod_food_safety_food_safety_auditing",
"title": "Food Safety Auditing",
"description": "Walking a kitchen the way an inspector does, and writing it up.",
"category": "Kitchen",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 22,
"proof_skill": "Food Safety Auditing",
"skill_id": "food_safety",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Finds the violations",
"Ranks by severity",
"Writes an actionable report"
],
"challenge": {
"type": "photo_identify",
"prompt": "Mark everything a food safety auditing check should catch in this photo.",
"rubric": [
{
"criterion": "Finds the violations",
"weight": 40
},
{
"criterion": "Ranks by severity",
"weight": 30
},
{
"criterion": "Writes an actionable report",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 34
},
{
"id": "mod_food_safety_incident_response_reporting",
"title": "Incident Response & Reporting",
"description": "A suspected foodborne incident, in the hour it matters.",
"category": "Kitchen",
"difficulty": "advanced",
"xp": 220,
"estimated_minutes": 18,
"proof_skill": "Incident Response & Reporting",
"skill_id": "food_safety",
"target_level": "advanced",
"required_level": "intermediate",
"completion_criteria": [
"Work through the training material",
"Submit evidence for the challenge"
],
"verification_criteria": [
"Isolates the product",
"Documents accurately",
"Notifies the right people"
],
"challenge": {
"type": "roleplay",
"prompt": "Work through a incident response & reporting scenario with Owliver, start to finish.",
"ai_persona": "A guest or teammate in a live service situation.",
"rubric": [
{
"criterion": "Isolates the product",
"weight": 40
},
{
"criterion": "Documents accurately",
"weight": 30
},
{
"criterion": "Notifies the right people",
"weight": 30
}
]
},
"unlock_requirements": {
"min_shifts": 0,
"min_reliability": 0,
"required_badges": []
},
"quiz": [],
"pass_score": 70,
"status": "active",
"created_date": "2026-06-20T09:00:00.000Z",
"_order": 35
}
],
"Badge": [
{
"id": "badge_service",
"name": "Service Fundamentals",
"description": "Verified coursed table service.",
"level": "bronze",
"requirements": "Complete Fine Dining Service Standards",
"verification_status": "verified",
"created_date": "2026-06-10T09:00:00.000Z"
},
{
"id": "badge_responsible",
"name": "Responsible Service",
"description": "Verified responsible alcohol service judgment.",
"level": "silver",
"requirements": "Complete Responsible Alcohol Service",
"expiration_months": 24,
"verification_status": "verified",
"created_date": "2026-06-12T09:00:00.000Z"
},
{
"id": "badge_safety",
"name": "Safety Aware",
"description": "Verified hazard identification.",
"level": "bronze",
"requirements": "Complete Kitchen Safety & Hazard Spotting",
"verification_status": "verified",
"created_date": "2026-06-14T09:00:00.000Z"
},
{
"id": "badge_leader",
"name": "Floor Leader",
"description": "Verified floor team leadership.",
"level": "gold",
"requirements": "Complete Leading a Floor Team",
"verification_status": "verified",
"created_date": "2026-06-16T09:00:00.000Z"
}
],
"LearningPath": [
{
"id": "path_server",
"name": "Event Server Track",
"target_role": "Event Server",
"description": "From first shift to a floor a captain can trust.",
"difficulty": "beginner",
"steps": [
{
"order": 1,
"course_id": "course_service_basics",
"course_title": "Fine Dining Service Standards"
},
{
"order": 2,
"course_id": "course_kitchen_safety",
"course_title": "Kitchen Safety & Hazard Spotting"
},
{
"order": 3,
"course_id": "course_leadership",
"course_title": "Leading a Floor Team"
}
],
"created_date": "2026-06-18T09:00:00.000Z"
},
{
"id": "path_bartender",
"name": "Bartender Track",
"target_role": "Bartender",
"description": "Speed, specs, and the judgment to run a bar alone.",
"difficulty": "intermediate",
"steps": [
{
"order": 1,
"course_id": "course_responsible_service",
"course_title": "Responsible Alcohol Service"
},
{
"order": 2,
"course_id": "course_service_basics",
"course_title": "Fine Dining Service Standards"
}
],
"created_date": "2026-06-18T09:00:00.000Z"
}
],
"Certification": [
{
"id": "cert_1",
"name": "ServSafe",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "cert_2",
"name": "TIPS Certified",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "cert_3",
"name": "RBS Alcohol Server",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "cert_4",
"name": "Guard Card",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "cert_5",
"name": "CPR / First Aid",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "cert_6",
"name": "Food Handler Card",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "cert_7",
"name": "Forklift Operator",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "cert_8",
"name": "OSHA 10",
"created_date": "2026-06-01T09:00:00.000Z"
}
],
"RoleCategory": [
{
"id": "role_1",
"name": "Bartender",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_2",
"name": "Server",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_3",
"name": "Security",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_4",
"name": "Chef",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_5",
"name": "Picker",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_6",
"name": "Host",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_7",
"name": "Barback",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_8",
"name": "Line Cook",
"created_date": "2026-06-01T09:00:00.000Z"
},
{
"id": "role_9",
"name": "Event Lead",
"created_date": "2026-06-01T09:00:00.000Z"
}
],
"UserActivity": [
{
"id": "act_1",
"event_type": "create_position",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "Created Banquet Captain – Hotel Events",
"created_date": "2026-07-18T09:00:00.000Z"
},
{
"id": "act_2",
"event_type": "create_position",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "Created Executive Chef – Catering",
"created_date": "2026-07-27T09:00:00.000Z"
},
{
"id": "act_3",
"event_type": "apply_job",
"user_email": "antoine.dubois@email.com",
"user_name": "Chef Antoine Dubois",
"account_type": "talent",
"details": "Applied to Executive Chef – Catering",
"created_date": "2026-07-24T09:00:00.000Z"
},
{
"id": "act_4",
"event_type": "apply_job",
"user_email": "marcus.w@email.com",
"user_name": "Marcus Williams",
"account_type": "talent",
"details": "Applied to Event Security Officer",
"created_date": "2026-07-24T09:00:00.000Z"
},
{
"id": "act_5",
"event_type": "apply_job",
"user_email": "marco.rivera@email.com",
"user_name": "Marco Rivera",
"account_type": "talent",
"details": "Applied to Experienced Bartender – Corporate Events",
"created_date": "2026-07-24T09:00:00.000Z"
},
{
"id": "act_6",
"event_type": "screen_candidate",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "AI screened 3 candidates",
"created_date": "2026-07-24T09:00:00.000Z"
},
{
"id": "act_7",
"event_type": "hire_candidate",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "Hired Chef Antoine Dubois",
"created_date": "2026-07-25T09:00:00.000Z"
},
{
"id": "act_8",
"event_type": "hire_candidate",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "Hired Marcus Williams",
"created_date": "2026-07-25T09:00:00.000Z"
},
{
"id": "act_9",
"event_type": "hire_candidate",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "Hired Marco Rivera",
"created_date": "2026-07-25T09:00:00.000Z"
},
{
"id": "act_10",
"event_type": "apply_job",
"user_email": "sofia.mendez@email.com",
"user_name": "Sofia Mendez",
"account_type": "talent",
"details": "Applied to Event Server – Fine Dining",
"created_date": "2026-08-02T09:00:00.000Z"
},
{
"id": "act_11",
"event_type": "screen_candidate",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "AI screened Sofia Mendez",
"created_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "act_12",
"event_type": "start_interview",
"user_email": "tanya.cruz@email.com",
"user_name": "Tanya Cruz",
"account_type": "talent",
"details": "Completed AI interview",
"created_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "act_13",
"event_type": "login",
"user_email": "demo@krow.app",
"user_name": "Alex Rivera",
"account_type": "employer",
"details": "",
"created_date": "2026-08-06T09:00:00.000Z"
},
{
"id": "act_14",
"event_type": "signup",
"user_email": "new.demo2@example.com",
"user_name": "New Talent Demo",
"account_type": "talent",
"details": "",
"created_date": "2026-08-05T09:00:00.000Z"
},
{
"id": "act_15",
"event_type": "login",
"user_email": "maria.gonzalez@example.com",
"user_name": "Maria Gonzalez",
"account_type": "talent",
"details": "",
"created_date": "2026-08-06T09:00:00.000Z"
}
],
"Assignment": [
{
"id": "assign_marco_bartender",
"job_posting_id": "job_bartender_corp",
"application_id": "app_marco",
"worker_email": "marco.rivera@email.com",
"worker_name": "Marco Rivera",
"starts_at": "2026-07-01T09:00:00.000Z",
"ends_at": null,
"status": "active",
"source": "seed",
"match_score": 92,
"created_date": "2026-07-01T09:00:00.000Z",
"updated_date": "2026-07-01T09:00:00.000Z"
}
],
"Evidence": [
{
"id": "ev_maria_service",
"course_id": "course_service_basics",
"course_title": "Fine Dining Service Standards",
"skill": "Coursed Table Service",
"worker_email": "maria.gonzalez@example.com",
"worker_name": "Maria Gonzalez",
"type": "roleplay",
"media_url": "",
"transcript": "Acknowledged the cold entrée without excuses, offered to re-fire immediately with a comped course, and kept the rest of the table on timing.",
"ai_verdict": "verified",
"ai_score": 96,
"ai_rubric": {
"Acknowledges without excuses": 95,
"Offers a concrete remedy": 98,
"Protects the table experience": 94
},
"ai_feedback": "Owned the problem in one sentence and moved straight to a remedy. Exactly the instinct this role needs.",
"supervisor_verified": true,
"supervisor_name": "Luis Ortega",
"verified_date": "2026-06-23T09:00:00.000Z",
"created_date": "2026-06-22T09:00:00.000Z"
},
{
"id": "ev_maria_leadership",
"course_id": "course_leadership",
"course_title": "Leading a Floor Team",
"skill": "Team Leadership",
"worker_email": "maria.gonzalez@example.com",
"worker_name": "Maria Gonzalez",
"type": "video",
"media_url": "",
"transcript": "Pre-shift briefing for eight servers covering sections, coursing timing, and the VIP head table.",
"ai_verdict": "verified",
"ai_score": 89,
"ai_rubric": {
"Assigns clear ownership": 92,
"Communicates timing": 90,
"Sets a tone people follow": 85
},
"ai_feedback": "Assignments were unambiguous and the timing was concrete. Could invite more questions at the close.",
"supervisor_verified": true,
"supervisor_name": "Luis Ortega",
"verified_date": "2026-07-15T09:00:00.000Z",
"created_date": "2026-07-14T09:00:00.000Z"
},
{
"id": "ev_iliana_service",
"course_id": "course_service_basics",
"course_title": "Fine Dining Service Standards",
"skill": "Coursed Table Service",
"worker_email": "iortega@legendaryeventstaff.com",
"worker_name": "Iliana Ortega",
"type": "roleplay",
"media_url": "",
"transcript": "Apologized, offered to check with the kitchen, and returned with a timing update.",
"ai_verdict": "verified",
"ai_score": 78,
"ai_rubric": {
"Acknowledges without excuses": 82,
"Offers a concrete remedy": 74,
"Protects the table experience": 78
},
"ai_feedback": "Good instinct to go straight to the kitchen. Commit to a specific remedy rather than only an update.",
"supervisor_verified": false,
"created_date": "2026-07-28T09:00:00.000Z"
}
],
"User": [
{
"id": "user_demo",
"full_name": "Alex Rivera",
"email": "demo@krow.app",
"role": "admin",
"account_type": "employer",
"created_date": "2026-06-01T09:00:00.000Z",
"preferences": {
"owliverDefault": true,
"compactDensity": false,
"emailDigest": true
}
},
{
"id": "user_employer",
"full_name": "Jordan Blake",
"email": "employer@krow.app",
"role": "employer",
"account_type": "employer",
"created_date": "2026-06-01T09:00:00.000Z",
"preferences": {
"owliverDefault": true,
"compactDensity": false,
"emailDigest": true
}
}
]
}
}