This plan organizes all remaining work into 8 parallel work streams that can be developed simultaneously using git worktrees.
Priority: Critical | Complexity: Medium | Est. Files: 3-4
Tasks:
-
Implement
parse_resume()inbackend/app/agents/tools/screening_tools.py- Use pypdf for PDF extraction
- Use python-docx for DOCX extraction
- Extract: contact info, experience, education, skills, certifications
- Return structured data matching current schema
-
Create resume parsing service
backend/app/services/resume_parser.py- Modular extraction functions
- Error handling for corrupt files
- Support for multiple formats
-
Update screening endpoint to use real parsing
backend/app/api/v1/screening.py- integrate parser in upload-cv
-
Add tests for resume parsing
Dependencies: pypdf, python-docx (already in pyproject.toml)
Priority: Critical | Complexity: High | Est. Files: 4-5
Tasks:
-
Implement
analyze_video_segment()inbackend/app/agents/tools/assessment_tools.py- Use Gemini Vision API for frame analysis
- Analyze: body language, eye contact, confidence
- Return structured behavioral analysis
-
Implement
transcribe_audio()in same file- Use Gemini for audio transcription
- Return timestamped transcript segments
-
Create video analysis service
backend/app/services/video_analyzer.py- Frame extraction from video URL
- Segment analysis orchestration
- Result aggregation
-
Update assessment endpoint
backend/app/api/v1/assessment.py- Wire up analyze_video_async with real implementation
- Store analysis results in database
-
Add comprehensive video analysis tests
Dependencies: google-generativeai (Gemini)
Priority: Critical | Complexity: Low | Est. Files: 3-4
Tasks:
-
Implement offer email sending in
backend/app/api/v1/offer.py:226- Use Resend service already created
- Create professional offer email template
- Include offer letter as attachment
-
Implement assessment invitation emails
backend/app/api/v1/assessment.py- send_assessment_invite- Create assessment invitation template
-
Create email templates directory
backend/templates/emails/- offer_letter.html
- assessment_invite.html
- campaign_outreach.html
-
Add email sending to campaign workflow
- Wire up
backend/app/api/v1/campaigns.pywith real sending
- Wire up
Dependencies: Resend SDK (configured)
Priority: Critical | Complexity: High | Est. Files: 5-6
Tasks:
-
Implement Apollo.io integration
backend/app/services/apollo.py- People search API
- Email enrichment
- Contact information retrieval
-
Implement GitHub profile search
backend/app/services/github_search.py- Search users by skills/location
- Fetch public profile data
- Extract contribution history
-
Update sourcing endpoint
backend/app/api/v1/sourcing.py:60- Integrate Apollo search
- Integrate GitHub search
- Combine and deduplicate results
-
Implement LinkedIn enrichment
backend/app/agents/tools/screening_tools.py:44- Via RapidAPI or Proxycurl
- Profile data extraction
-
Add sourcing service tests
Dependencies: Apollo API key, GitHub token, RapidAPI key
Priority: Critical | Complexity: Medium | Est. Files: 6-8
Tasks:
-
Create auth middleware
backend/app/middleware/auth.py- JWT validation with Supabase
- User context extraction
- Role-based access control
-
Protect all API routes
- Add dependency injection for authenticated routes
- Implement role checks (admin, recruiter, hiring_manager)
-
Frontend auth integration
frontend/lib/auth/- Supabase auth client setup
- Auth context provider
- Protected route wrapper
-
Update frontend layout with real user data
frontend/app/(dashboard)/layout.tsx- User avatar, logout button
-
Add login/logout pages
frontend/app/login/page.tsxfrontend/app/logout/page.tsx
-
Implement session management
Dependencies: @supabase/auth-helpers-nextjs
Priority: High | Complexity: Medium | Est. Files: 8-10
Tasks:
-
Complete Job Detail Page
frontend/app/(dashboard)/jobs/[id]/page.tsx- Full JD display with skills matrix editor
- Edit/update functionality
- Approval workflow buttons
- Candidate tab with screening results
-
Complete Offer Detail Page
frontend/app/(dashboard)/offers/[id]/page.tsx- Offer letter preview
- Negotiation interface
- Counter-offer form
- Status timeline
-
Complete Phone Screen Detail
frontend/app/(dashboard)/phone-screens/[id]/page.tsx- Call transcript viewer
- Analysis results display
- Audio playback if available
-
Complete Campaign Detail
frontend/app/(dashboard)/campaigns/[id]/page.tsx- Message sequence editor
- Recipient management
- Performance analytics
-
Complete Sourcing Detail
frontend/app/(dashboard)/sourcing/[id]/page.tsx- Candidate profile view
- Fit score breakdown
- Convert to application button
-
Implement global search functionality
- Search service
- Results dropdown
- Cross-entity search
Dependencies: None (UI only)
Priority: High | Complexity: Low | Est. Files: 4-5
Tasks:
-
Set up Supabase migrations
- Create
supabase/migrations/directory - Move 001_initial_schema.sql to migrations
- Move 002_v2_schema.sql to migrations
- Run migrations
- Create
-
Generate TypeScript types
npm run db:typesor manual generation- Update frontend/types/supabase.ts
-
Add structured logging
backend/app/utils/logging.py- JSON structured logs
- Correlation IDs
- Log levels configuration
-
Add rate limiting middleware
backend/app/middleware/rate_limit.py- Configure limits per endpoint
-
Update RLS policies for proper scoping
- Review and tighten permissions
Dependencies: Supabase CLI
Priority: High | Complexity: Medium | Est. Files: 15-20
Tasks:
-
Set up pytest structure
backend/tests/tests/conftest.py- fixturestests/unit/- unit teststests/integration/- API tests
-
Write agent tests
tests/unit/agents/test_jd_assist.pytests/unit/agents/test_screener.pytests/unit/agents/test_assessor.pytests/unit/agents/test_offer_gen.py
-
Write API endpoint tests
tests/integration/test_jd_api.pytests/integration/test_screening_api.pytests/integration/test_assessment_api.pytests/integration/test_offer_api.py
-
Set up frontend testing
- Jest configuration
- Component tests
- API mock tests
-
Create GitHub Actions CI/CD
.github/workflows/ci.yml- Run tests on PR
- Deploy on merge to main
Dependencies: pytest, pytest-asyncio, jest
# Create worktrees directory
mkdir -p /Users/hadihijazi/TCS/HR-Plus-worktrees
# Create worktrees for each stream
git worktree add ../HR-Plus-worktrees/resume-parsing -b feature/resume-parsing
git worktree add ../HR-Plus-worktrees/video-analysis -b feature/video-analysis
git worktree add ../HR-Plus-worktrees/email-integration -b feature/email-integration
git worktree add ../HR-Plus-worktrees/candidate-sourcing -b feature/candidate-sourcing
git worktree add ../HR-Plus-worktrees/auth-middleware -b feature/auth-middleware
git worktree add ../HR-Plus-worktrees/frontend-detail-pages -b feature/frontend-detail-pages
git worktree add ../HR-Plus-worktrees/database-setup -b feature/database-setup
git worktree add ../HR-Plus-worktrees/testing-ci -b feature/testing-ciPhase 1 (Critical - Parallel):
- Stream 1: Resume Parsing
- Stream 2: Video Analysis
- Stream 3: Email Integration
- Stream 7: Database Setup
Phase 2 (High Priority - After Phase 1 DB):
- Stream 4: Candidate Sourcing
- Stream 5: Auth Middleware
Phase 3 (After Phase 2):
- Stream 6: Frontend Detail Pages
- Stream 8: Testing & CI/CD
- Database Setup merges first (foundation)
- Resume Parsing, Video Analysis, Email merge in parallel
- Auth Middleware merges next
- Candidate Sourcing merges (depends on auth)
- Frontend Detail Pages merge
- Testing & CI/CD merges last
- All agents fully functional with real tool implementations
- All API endpoints complete with proper authentication
- All frontend pages fully implemented
- Database migrations tracked and applied
- Test coverage > 70%
- CI/CD pipeline operational