import React from 'react'; import { Link } from 'react-router-dom'; import { motion } from 'framer-motion'; import { Fingerprint, GraduationCap, Mic, BadgeCheck, Handshake, Briefcase, LineChart, Star, TrendingUp, Crown, Presentation, Repeat, ArrowRight, } from 'lucide-react'; // The Credit Bureau for Human Talent — the career flywheel. const STEPS = [ { key: 'identity', label: 'Create Identity', to: '/identity', icon: Fingerprint }, { key: 'learn', label: 'Learn', to: '/university', icon: GraduationCap }, { key: 'interview', label: 'Interview', to: '/owliver', icon: Mic }, { key: 'verify', label: 'Verify Skills', to: '/identity', icon: BadgeCheck }, { key: 'hired', label: 'Get Hired', to: '/apply', icon: Handshake }, { key: 'work', label: 'Work', to: '/me', icon: Briefcase }, { key: 'track', label: 'Track Performance', to: '/me', icon: LineChart }, { key: 'reputation', label: 'Earn Reputation', to: '/me', icon: Star }, { key: 'promoted', label: 'Get Promoted', to: '/university', icon: TrendingUp }, { key: 'leader', label: 'Become Leader', to: '/university', icon: Crown }, { key: 'train', label: 'Train Others', to: '/university', icon: Presentation }, { key: 'repeat', label: 'Repeat', to: '/university', icon: Repeat, loop: true }, ]; export function stepStatus(profile, apps = []) { const hired = apps.some(a => a.status === 'hired'); const worked = (profile.experience || []).length > 0 || hired; const isDone = { identity: !!profile.selfie_url && (profile.skills || []).length > 0, learn: (profile.completed_courses || []).length > 0, interview: (profile.ai_interview_score || 0) > 0 || !!(profile.personality || profile.strengths?.length), verify: (profile.certifications || []).length > 0 || (profile.earned_badges || []).length > 0, hired, work: worked, track: (profile.performance_score || 0) > 0 || (profile.attendance_score || 0) > 0 && worked, reputation: (profile.client_rating || 0) > 0 || (profile.supervisor_rating || 0) > 0 || (profile.krow_score || 0) >= 50, promoted: (profile.leadership_potential || 0) >= 40, leader: (profile.leadership_potential || 0) >= 70, train: (profile.leadership_potential || 0) >= 85 && (profile.completed_courses || []).length >= 3, repeat: false, }; return isDone; } export default function TalentLoop({ profile, applications = [] }) { const done = stepStatus(profile, applications); const reached = STEPS.filter(s => done[s.key]).length; const current = STEPS.find(s => !done[s.key]) || STEPS[STEPS.length - 1]; const progress = Math.round((reached / (STEPS.length - 1)) * 100); return (
The Talent Loop

Build your reputation. Not just your resume.

{reached}/{STEPS.length - 1} stages
{STEPS.map((s, i) => { const isDone = done[s.key]; const isCurrent = s.key === current.key && !s.loop; const Icon = s.icon; return (
{String(i + 1).padStart(2, '0')} {s.loop && }
{s.label} ); })}

UP NEXT

{current.label}

Continue
); }