How mdasar2927/employ-ai works
Purpose and entry points
Employ-AI is a career-support application organized as static, task-specific frontend screens plus a Python backend API. User workflows cover profile creation, resume handling, skill analysis/gaps, internship recommendations, learning, and reporting.
Primary entry points:
• Frontend landing screen: 1. main screen/main_screen.html
• Backend application bootstrap: backend/app/main.py
• Shared browser API/auth integration: shared/api.js, shared/auth.js
Frontend workflow surfaces
The frontend is split into independent HTML screens rather than a single bundled web application. Each screen represents a major user-facing stage and likely calls the common shared API/auth layer.
Core screens:
• Profile: 2. profile/profile.html
• Resume: 3. resume/resume.html
• Skill analysis and gap views: 4. skill analysis/skill_analysis.html, 6. skill gap/skill_gap.html
• Internship recommendation: 5.internship recommendation/internship_recc.html
• Learning and report outputs: 7. learner/learner.html, 8. report/report.html
INTEGRATION_MAP.md is the likely contract map between these screens and backend endpoints.
API boundary and request organization
The backend is structured around routers, schemas, repositories, and services. Routers expose feature APIs; schemas define request/response models; repositories isolate persistence access; services hold analysis and generation logic.
Feature API modules:
• backend/app/routers/profile.py
• backend/app/routers/resume.py
• backend/app/routers/matching.py
• backend/app/routers/internships.py
• backend/app/routers/learning.py
• backend/app/routers/reports.py
Corresponding typed contracts live in backend/app/schemas/, including backend/app/schemas/profile.py, backend/app/schemas/resume.py, and backend/app/schemas/matching.py.
Career analysis pipeline
The principal control flow is profile/resume input into analysis, matching, learning-roadmap, and report outputs.
Key processing components:
• Resume parsing: backend/app/services/resume_parser.py
• AI-backed analysis: backend/app/services/ai_analyzer.py
• Candidate-to-opportunity matching: backend/app/services/matching_engine.py
• Learning/roadmap generation: backend/app/services/roadmap_generator.py
Likely flow: the resume and profile APIs persist user inputs, parsing/AI analysis derives skills or candidate attributes, matching evaluates internship fit, roadmap generation converts gaps into learning recommendations, and reporting aggregates these results.
Persistence and security boundary
Supabase is the explicit database integration and is accessed through a dedicated database module:
• backend/app/db/supabase.py
• backend/schema.sql
• backend/migrations/001_rls_security.sql
Repositories form the persistence boundary for domain data:
• backend/app/repositories/profiles.py
• backend/app/repositories/resumes.py
• backend/app/repositories/matches.py
• backend/app/repositories/internships.py
• backend/app/repositories/learning.py
• backend/app/repositories/reports.py
Row-level security is architecturally material because backend/migrations/001_rls_security.sql indicates database-enforced tenant/user access controls. Frontend authentication handling is centralized in shared/auth.js.
Runtime and configuration
The backend is a Python service with dependency and configuration layers:
• backend/requirements.txt
• backend/app/core/config.py
• backend/app/api/dependencies.py
• .env.example
Environment configuration should supply Supabase connectivity and any external AI-provider credentials consumed by backend/app/services/ai_analyzer.py. The frontend remains static HTML/JavaScript, using shared/api.js as its backend-service boundary.
Main entry points: api.js Shared API & auth · profiles.py Domain repositories · profile.py Feature routers · ai_analyzer.py AI skill analysis
Components 16
Static Frontend
Independent HTML workflow screens share browser integration.
- Landing screen
1. main screen/main_screen.html - Profile screen
2. profile/profile.html - Resume screen
3. resume/resume.html - Analysis, recommendations & outputs · Skill analysis, gaps, internships, learning, and reports.
- Shared API & auth · Centralizes backend calls and frontend authentication.
shared/api.js
Python API
Feature routers and typed contracts expose career workflows.
- API application
backend/app/main.py - Feature routers · Profile, resume, matching, internships, learning, and reports endpoints.
backend/app/routers/profile.py - Typed contracts · Request and response models shared across feature APIs.
backend/app/schemas/profile.py
Career Intelligence
Services derive skills, matches, learning plans, and reports.
- Resume parser
backend/app/services/resume_parser.py - AI skill analysis · Derives skills and candidate attributes using configured AI providers.
backend/app/services/ai_analyzer.py - Opportunity matching
backend/app/services/matching_engine.py - Learning roadmap generation
backend/app/services/roadmap_generator.py
Data & Security
Repositories mediate Supabase persistence under row-level security.
- Domain repositories · Profile, resume, match, internship, learning, and report data access.
backend/app/repositories/profiles.py - Supabase
backend/app/db/supabase.py - Row-level security · Database-enforced user and tenant access controls.
backend/migrations/001_rls_security.sql
Other components
- Integration contract map · Maps frontend screens to backend endpoint contracts.
INTEGRATION_MAP.md
Connections 18
- Landing screen → Profile screen: starts workflow
- Profile screen → Shared API & auth: uses
- Resume screen → Shared API & auth: uses
- Analysis, recommendations & outputs → Shared API & auth: uses
- Shared API & auth → API application: authenticated API requests
- Integration contract map → Shared API & auth: documents contracts
- API application → Feature routers: mounts
- Feature routers → Typed contracts: validates with
- Feature routers → Resume parser: resume intake
- Resume parser → AI skill analysis: parsed resume
- AI skill analysis → Opportunity matching: skills and attributes
- Opportunity matching → Learning roadmap generation: skill gaps
- Feature routers → Domain repositories: persists and retrieves
- AI skill analysis → Domain repositories: stores analysis
- Opportunity matching → Domain repositories: stores matches
- Learning roadmap generation → Domain repositories: stores learning plans
- Domain repositories → Supabase: data access
- Row-level security → Supabase: enforces access policy