SkillSense is an intelligent career development application which transforms how you discover, manage, and showcase your professional skills. Using advanced AI analysis, it extracts skills from multiple sources, gamifies skill development through quests, and provides comprehensive career insights.
- Upload Resumes: Support for PDF, DOCX, and TXT formats
- Text Input: Paste resume content or job descriptions directly
- GitHub Integration: Automatically extract technical skills from repositories and activity
- Aggregate Extraction: Combine multiple sources (resume + GitHub + text) with smart deduplication
- AI-Powered Analysis: Extract both explicit and implicit skills with confidence scoring
- Evidence-Based Verification: Each skill includes source quotes and reasoning
- 3D Force-Directed Graph: Beautiful interactive visualization of skill relationships
- Skill Clustering: Automatic grouping by categories (Technical, Soft Skills, etc.)
- Color-Coded States: Visual distinction between unlocked and locked skills
- Micro-Stories: Narrative context for each skill showing real-world application
- Interactive Exploration: Click, drag, and explore your skill network
- Skill Unlocking Mechanism: Locked skills require quest completion to unlock
- Quest Categories: Verification, Content, Portfolio, Credentials, Social
- XP & Rewards: Earn experience points for completing quests
- Multiple Quest Types:
- Add GitHub profile validation
- Write skill reflections
- Add project demonstrations
- Upload certifications
- Get peer endorsements
- Create blog posts or tutorials
- Record demonstration videos
- Mentor others
- Progress Tracking: Visual dashboards showing completion stats and XP earned
4. Hidden Skill Discovery
- AI Inference Engine: Discover transferable skills based on existing competencies
- Meta-Skills Identification: Find high-level capabilities you likely possess
- Confidence Scoring: Each discovered skill rated for accuracy
- Reasoning Transparency: See why each skill was inferred and from which existing skills
- Confirm/Reject Workflow: Review and curate discovered skills
- Team Skill Analysis: Aggregate team member skills for organization-wide insights
- Skill Coverage Maps: Identify strengths and gaps across teams
- Collaborative Learning: Share quests and progress with team members
- Organizational Skill Inventory: Build comprehensive skill databases for teams
- Shareable Public Profiles: Create SEO-friendly public URLs
- Custom Display Names & Bios: Professional presentation of your skills
- Confirmed Skills Only: Share verified competencies with employers
- One-Click Sharing: Copy link for LinkedIn, email signatures, resumes
- Privacy Controls: Toggle between public and private modes
- Unlock Progress: Track ratio of unlocked vs locked skills
- Quest Completion Stats: Monitor active, completed, and total quests
- XP Leaderboards: Gamification metrics for motivation
- Category Breakdowns: Progress by quest category
- Visual Progress Bars: Real-time feedback on skill development journey
- Role Comparison: Compare your skills against target job roles
- Missing Skills Identification: Pinpoint gaps for career advancement
- Learning Recommendations: Personalized resource suggestions (courses, tutorials, articles)
- Practice Projects: Actionable project ideas to build missing skills
- AI-Generated Summaries: Professional profile summaries optimized for your skills
- Skills Section Optimization: Enhanced presentation of competencies
- Experience Improvements: Better bullet points highlighting achievements
- ATS Optimization: Improve applicant tracking system compatibility
- Export-Ready Format: Copy suggestions directly to your CV
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool and dev server
- Tailwind CSS - Styling framework
- Shadcn/UI - Component library
- React Router - Navigation
- Tanstack Query - Data fetching and caching
- Sonner - Toast notifications
- Lucide React - Icons
- Supabase - Database and authentication
- Edge Functions - Serverless backend logic
- PostgreSQL - Relational database
- Row Level Security (RLS) - Data protection
- PDF.js - PDF parsing
- Mammoth.js - DOCX parsing
- File API - Text file handling
- Lovable AI Gateway - AI model access
- Google Gemini 2.5 Flash - Natural language processing
- Structured Tool Calling - Reliable JSON responses
skillsense/
โโโ src/
โ โโโ components/
โ โ โโโ auth/
โ โ โ โโโ AuthForm.tsx # Authentication forms
โ โ โโโ ui/ # Shadcn UI components
โ โ โโโ CVEnhancement.tsx # CV enhancement interface
โ โ โโโ FileUpload.tsx # Drag-drop file upload
โ โ โโโ GapAnalysis.tsx # Skill gap analysis UI
โ โ โโโ GitHubIntegration.tsx # GitHub skill extraction
โ โ โโโ HiddenSkillDiscovery.tsx # AI skill inference
โ โ โโโ ProgressTracker.tsx # Unlock progress dashboard
โ โ โโโ QuestSystem.tsx # Gamified quest management
โ โ โโโ ShareProfileDialog.tsx # Public profile sharing
โ โ โโโ SkillCard.tsx # Individual skill display
โ โ โโโ SkillDetailModal.tsx # Skill detail viewer
โ โ โโโ SkillMap.tsx # 3D skill visualization
โ โ โโโ SkillVisualization.tsx # Skill overview charts
โ โ โโโ TeamIntelligence.tsx # Team collaboration features
โ โ โโโ TextInput.tsx # Manual text input
โ โ โโโ UnifiedDataImport.tsx # Multi-source aggregation
โ โโโ integrations/
โ โ โโโ supabase/
โ โ โโโ client.ts # Supabase client (auto-generated)
โ โ โโโ types.ts # Database types (auto-generated)
โ โโโ lib/
โ โ โโโ documentParser.ts # PDF/DOCX parsing logic
โ โ โโโ utils.ts # Utility functions
โ โโโ pages/
โ โ โโโ Index.tsx # Main application page
โ โ โโโ PublicProfile.tsx # Public profile viewer
โ โ โโโ NotFound.tsx # 404 page
โ โโโ main.tsx # App entry point
โโโ supabase/
โ โโโ functions/
โ โ โโโ extract-skills/ # Skill extraction endpoint
โ โ โโโ github-skill-extract/ # GitHub analysis endpoint
โ โ โโโ discover-skills/ # Hidden skill discovery endpoint
โ โ โโโ analyze-gap/ # Gap analysis endpoint
โ โ โโโ enhance-cv/ # CV enhancement endpoint
โ โโโ migrations/ # Database migrations
โ โโโ config.toml # Supabase configuration
โโโ README.md # This file
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Internet connection for AI processing
-
Sign Up / Login
- Create an account or login with existing credentials
- Email confirmation is auto-enabled for testing
-
Extract Skills from Multiple Sources
- Option A: Upload your resume (PDF, DOCX, or TXT)
- Option B: Paste your resume text directly
- Option C: Connect GitHub to analyze repositories and activity
- Option D: Use Aggregate Extraction to combine all sources
- Wait for AI processing (10-30 seconds per source)
- Review extracted skills with confidence scores and micro-stories
-
Explore Your Skill Map
- Navigate to "Skill Map" tab
- Interact with 3D visualization of skill relationships
- See skills grouped by clusters (Technical, Soft Skills, etc.)
- Click skills to view details and evidence
- Observe locked vs unlocked skill states
-
Complete Quests to Unlock Skills
- Navigate to "Quests" tab
- View locked skills requiring quest completion
- Choose from various quest types (verification, content, portfolio, etc.)
- Complete quests to earn XP and unlock skills
- Track progress with visual dashboards
-
Discover Hidden Skills
- Navigate to "Discover" tab
- Click "Discover Hidden Skills" (requires 5+ existing skills)
- Review AI-inferred transferable skills and meta-skills
- See reasoning and source skills for each discovery
- Confirm or reject discovered skills
-
Share Your Profile
- Click "Share Profile" button in header
- Toggle "Make Profile Public"
- Add display name and bio
- Copy your unique public URL
- Share on LinkedIn, resumes, or email signatures
-
Analyze Skill Gaps
- Navigate to "Gap Analysis" tab
- Enter target job title and description
- Click "Analyze Gap"
- Review matching and missing skills
- Explore learning recommendations with resources
-
Enhance Your CV
- Go to "CV Enhancement" tab
- Click "Generate Suggestions"
- Review AI-generated improvements:
- Professional summary
- Enhanced skills section
- Experience bullet improvements
- Additional CV tips
All backend logic runs as serverless Edge Functions with AI-powered processing via Lovable AI Gateway:
- Purpose: Extract skills from resume/document text
- AI Model: Google Gemini 2.5 Flash
- Method: Structured tool calling
- Input:
{ text: string } - Output:
{ skills: [ { skill_name: string, skill_type: 'explicit' | 'implicit', confidence_score: number, evidence: string[], cluster: string, microstory: string, state: 'locked' | 'unlocked' } ] }
- Purpose: Analyze GitHub activity to extract technical skills
- AI Model: Google Gemini 2.5 Flash
- Input:
{ githubUsername: string, githubToken?: string } - Process:
- Fetches user's repositories via GitHub API
- Analyzes languages, frameworks, and technologies
- Infers skills from commit patterns and project types
- Output: Same structure as extract-skills
- Purpose: Infer hidden/transferable skills from existing skills
- AI Model: Google Gemini 2.5 Flash
- Input:
{ existingSkills: Skill[], profileId: string } - Output:
{ discovered_skills: [ { skill_name: string, confidence_score: number, inferred_from: string[], reasoning: string } ] }
- Purpose: Compare user skills vs target role
- AI Model: Google Gemini 2.5 Flash
- Method: Structured tool calling
- Input:
{ userSkills: Skill[], targetRole: TargetRole } - Output:
{ matching_skills: string[], missing_skills: string[], recommendations: [ { skill: string, resources: [ { title: string, url: string, type: 'course' | 'tutorial' | 'article' } ], practice_suggestion: string } ] }
- Purpose: Generate CV improvement suggestions
- AI Model: Google Gemini 2.5 Flash
- Method: Structured tool calling
- Input:
{ skills: Skill[], originalText: string } - Output:
{ professional_summary: string, enhanced_skills_section: string[], experience_improvements: [ { original: string, enhanced: string } ], additional_suggestions: string[] }
skill_profiles
id(uuid, primary key)user_id(uuid, references auth.users)profile_name(text)display_name(text) - For public profilesbio(text) - For public profilespublic_slug(text, unique) - URL-friendly identifieris_public(boolean) - Public/private toggleavatar_url(text)raw_data(jsonb)created_at(timestamp)updated_at(timestamp)
skills
id(uuid, primary key)profile_id(uuid, references skill_profiles)skill_name(text)skill_type(text: 'explicit' | 'implicit')confidence_score(numeric)evidence(text[])cluster(text) - Skill categorymicrostory(text) - Narrative contextstate(text: 'locked' | 'unlocked') - Quest system stateis_confirmed(boolean)created_at(timestamp)updated_at(timestamp)
quests
id(uuid, primary key)skill_id(uuid, references skills)quest_type(text) - Type of quest (verification, content, etc.)quest_description(text)is_completed(boolean)completed_at(timestamp)created_at(timestamp)
discovered_skills
id(uuid, primary key)profile_id(uuid, references skill_profiles)skill_name(text)confidence_score(numeric)inferred_from(text[]) - Source skillsreasoning(text) - AI explanationis_confirmed(boolean)is_rejected(boolean)created_at(timestamp)
target_roles
id(uuid, primary key)user_id(uuid, references auth.users)role_title(text)role_description(text)required_skills(text[])created_at(timestamp)
skill_gaps
id(uuid, primary key)profile_id(uuid, references skill_profiles)target_role_id(uuid, references target_roles)matching_skills(text[])missing_skills(text[])recommendations(jsonb)created_at(timestamp)
public_skill_profiles
- Secure view exposing only public profiles
- Excludes
user_idfor privacy - Used for public profile sharing feature
- Filters to
is_public = trueonly
All tables have RLS policies ensuring users can only:
- View their own data (except public profiles)
- Create their own records
- Update their own records
- Delete their own records
Public profile view has special policies:
- Anyone can SELECT from public profiles
- Uses SECURITY INVOKER for proper RLS enforcement
- Authentication: Email/password with Supabase Auth
- Row Level Security: Database-level access control
- API Key Management: Secure secret storage
- CORS Protection: Configured CORS headers
- Input Validation: Backend request validation
- Error Handling: Graceful error responses
- Issue: PDF parsing failed with worker errors
- Fix: Updated to use
.mjsextension with HTTPS CDN - Result: Reliable PDF document parsing
- Issue: AI responses wrapped in code fences caused parsing failures
- Fix: Implemented structured tool calling with robust fallback parser
- Result: 100% reliable JSON extraction
- Issue: Non-2xx status codes from edge function
- Fix: Added tool calling + input validation + comprehensive logging
- Result: Reliable gap analysis with detailed error messages
- Issue: Similar JSON parsing problems
- Fix: Applied same tool-calling approach with validation
- Result: Consistent CV suggestions generation
- Added: GitHub API integration for extracting skills from repositories
- Features: Language detection, framework identification, project analysis
- Result: Comprehensive technical skill extraction from code activity
- Issue: User ID exposure in public profiles
- Fix: Created secure view excluding sensitive data
- Implementation: SECURITY INVOKER with proper RLS policies
- Result: Safe public profile sharing without data leakage
- Added: Multi-source skill extraction with deduplication
- Features: Combines resume + GitHub + text inputs intelligently
- Deduplication: Merges duplicate skills with averaged confidence
- Result: Comprehensive skill profiles from multiple data sources
- Added: Interactive force-directed graph using React Three Fiber
- Features: Clustered nodes, color-coded states, micro-stories
- Optimization: Efficient rendering for large skill networks
- Result: Beautiful, explorable skill relationship maps
- Added logging throughout all edge functions
- Implemented graceful error responses
- User-friendly error messages in UI
- Comprehensive error tracking
- Client-side document parsing - Reduces backend load and improves response times
- Tanstack Query caching - Minimizes database queries with intelligent cache invalidation
- Optimistic UI updates - Instant feedback for user interactions
- Lazy loading components - Faster initial page load with code splitting
- Structured AI responses - Faster parsing with guaranteed schema compliance
- Efficient 3D rendering - Optimized Three.js scene for smooth 60fps visualization
- Skill deduplication - Smart merging prevents duplicate entries across sources
- Progressive data loading - Staged loading for better perceived performance
- Database indexing - Optimized queries for large skill datasets
- Edge function caching - Reduced cold starts for frequently used functions
- Semantic color tokens - HSL-based design system for consistent theming
- Dark/light mode support - Full theme switching with smooth transitions
- Responsive design - Mobile-first approach with breakpoints for all devices
- Accessible components - ARIA labels and keyboard navigation throughout
- Consistent spacing - Tailwind spacing scale for visual harmony
- Typography system - Hierarchical text styles for clear information architecture
- Custom animations - Smooth transitions and micro-interactions
- Glassmorphism effects - Modern UI with backdrop blur and transparency
- Gradient backgrounds - Subtle color transitions for visual depth
- Icon system - Lucide React for consistent, scalable icons
The following environment variables are automatically configured via Lovable Cloud:
VITE_SUPABASE_URL=<your-supabase-url>
VITE_SUPABASE_PUBLISHABLE_KEY=<your-publishable-key>
VITE_SUPABASE_PROJECT_ID=<your-project-id>Backend secrets (managed securely in Supabase):
LOVABLE_API_KEY- AI gateway access for all edge functions- No external API keys required - uses Lovable AI Gateway
Unlocked Skills
- Skills you currently have available and confirmed
- Fully verified and can be used for gap analysis
- Appear in your public profile (if enabled)
- Displayed with green/unlocked indicators
- Can be immediately leveraged for career opportunities
Locked Skills
- Potential skills identified but requiring validation
- Hidden opportunities detected by AI
- Require quest completion to unlock
- Displayed with red/locked indicators in skill map
- Represent growth targets and development areas
The quest system creates a gamified journey where completing tasks (adding projects, certifications, reflections, etc.) unlocks these potential skills, transforming them into confirmed competencies.
- Click "Publish" button in Lovable
- Click "Update" to deploy frontend changes
- Access via
yourapp.lovable.app
- Edge functions deploy automatically
- No manual deployment needed
- Changes go live immediately
This project was built on Lovable. To make changes:
- Open project in Lovable
- Use chat interface for AI-assisted development
- Test in preview window
- Deploy via Publish button
This project is created with Lovable and follows standard terms of service.
- Lovable - No-code AI development platform
- Supabase - Backend infrastructure
- Google Gemini - AI language model
- Shadcn/UI - Beautiful component library
- PDF.js - PDF parsing capabilities
- Mammoth.js - DOCX parsing capabilities
For issues or questions:
- Open an issue in the project
- Contact via Lovable platform
- Check Lovable documentation at https://docs.lovable.dev
Lovable Project URL: https://lovable.dev/projects/c89409ca-c41f-4ac1-9581-560806326490
Use Lovable - Visit the project and start prompting for changes
Use Your IDE - Clone, edit locally, and push changes:
git clone <YOUR_GIT_URL>
cd <YOUR_PROJECT_NAME>
npm i
npm run devGitHub Codespaces - Edit directly in the browser
Built with โค๏ธ using Lovable - AI-powered full-stack development