One LangGraph workflow, one shared career state. Chunking, embeddings, retrieval, permissions and database work stay in ordinary services and tools — where they belong.
Coordinates the run: fans out independent work concurrently, waits for it to merge, and persists progress so a run is inspectable end to end.
PrepareState = {
user_id, workflow_id,
job_profile_id,
candidate_profile_id,
hiring_evaluation_id,
errors[]
}