How divya-a10/hiro.ai works
Resume Matcher AI combines a React workflow for resume and job-description analysis with a FastAPI optimization service. Users enter through the landing page, upload a resume, provide a job description, and view match results; the UI also exposes profile and pitch-deck views. The backend endpoint initializes state and invokes an agent workflow, while the browser AI module can call that endpoint or Gemini. Supabase is documented as the persistence layer, but the sampled evidence does not show specific database operations. Some agent internals and view behavior were not sampled.
Main entry points: App.tsx App router · ai.ts AI analysis client · UploadResume.tsx Resume upload · JobDescription.tsx Job description
Components 18
User experience
- App router
src/App.tsx - Landing page
src/views/Landing.tsx - Resume upload
src/views/UploadResume.tsx - Job description
src/views/JobDescription.tsx - Match results
src/views/Results.tsx - Hiro dashboard
src/components/HiroDashboard.tsx - Pitch deck
src/views/PitchDeck.tsx - User profile
src/views/Profile.tsx
Identity and profile
- Auth context
src/contexts/AuthContext.tsx - Clerk adapter
src/clerk-wrapper.ts
Analysis and orchestration
- AI analysis client
src/lib/ai.ts - Optimize API
main.py - Agent workflow
agents_workflow.py - Workflow schemas
schemas.py - Hiro API client
src/services/hiroApi.ts
External services
- Supabase store
src/lib/supabase.ts - Gemini AI
Other components
- Candidate
Connections 20
- Candidate → App router: uses
src/App.tsx - App router → Landing page: routes to
src/App.tsx - App router → Resume upload: routes to
src/App.tsx - App router → Job description: routes to
src/App.tsx - App router → Match results: routes to
src/App.tsx - App router → Pitch deck: routes to
src/App.tsx - App router → User profile: routes to
src/App.tsx - App router → Auth context: provides auth
src/App.tsx - Auth context → Clerk adapter: uses
src/contexts/AuthContext.tsx - Match results → Hiro dashboard: renders
src/views/Results.tsx - Resume upload → Supabase store: may persist
src/views/UploadResume.tsx - Job description → Supabase store: may persist
src/views/JobDescription.tsx - Job description → AI analysis client: analyzes with
src/views/JobDescription.tsx - Resume upload → AI analysis client: extracts with
- AI analysis client → Gemini AI: requests generation
src/lib/ai.ts - AI analysis client → Optimize API: posts optimization
src/lib/ai.ts - Optimize API → Agent workflow: invokes
main.py - Agent workflow → Workflow schemas: validates with
agents_workflow.py - Hiro dashboard → Hiro API client: uses
src/components/HiroDashboard.tsx - Hiro API client → Optimize API: posts optimization
src/services/hiroApi.ts