The application page gets stuck on "Generating your application..." when the workflow is in "waiting_for_input" status.
The application page only handled two statuses:
"complete"→ Show data"processing"→ Poll again
But didn't handle:
"waiting_for_input"→ Interview required"processing_resume"→ Optimizer/Ghostwriter running
Added redirect logic in frontend/app/application/page.tsx (lines 49-54):
} else if (data.status === "waiting_for_input") {
// Interview required - redirect to AI-Help page
router.push(`/ai-help?session=${session_id}`);
} else if (data.status === "processing" || data.status === "processing_resume") {
// Still processing, poll again
setTimeout(fetchData, 2000);
}curl http://localhost:8000/api/workflow/status/<SESSION_ID> | python3 -m json.tool"processing" → Initial workflow running (Scout, Profiler, Decoder, Matchmaker)
↓
"waiting_for_input" → Interview required (match_score < 0.8)
↓
User completes interview
↓
"processing_resume" → Optimizer + Ghostwriter running
↓
"complete" → Ready to display on application page
Solution: Complete the interview at /ai-help?session=<ID>
Possible causes:
- Backend crashed
- Agent error
- ChromaDB not running
Check backend logs:
# Look for errors in the terminal running uvicornPossible causes:
- Optimizer agent error
- Ghostwriter agent error
- LLM API timeout
Check:
# Check if LLM client is working
# Check API keys in .envIf you want to bypass the interview for testing:
curl -X POST http://localhost:8000/api/workflow/resume \
-F "session_id=<SESSION_ID>" \
-F "bridge_story=Test story for debugging"If a session is stuck, start a new one:
- Go to http://localhost:3000/start
- Upload resume and scholarship URL again
- You'll get a new session ID
After the fix:
- Application page redirects to AI-Help if interview needed
- Application page polls while processing_resume
- Application page shows data when complete
- Matchmaker page loads correctly
- AI-Help page works correctly
- Start: Upload resume + URL
- Matchmaker: See match score, click "Continue to AI Help"
- AI-Help: Answer interview questions
- Processing: Wait for optimizer/ghostwriter (will show loading)
- Application: See essay + resume optimizations
Estimated time: 30-60 seconds for full workflow.