The candidate pipeline that could not get stuck

Seed-stage talent platform · Startup

The business said

Candidate enrichment was not an API problem. It was a workflow reliability problem.

A Temporal workflow system for profile processing

The customer had a candidate enrichment pipeline that touched resumes, LinkedIn data, OpenAI batch jobs, embeddings, PostgreSQL writes, and worker deploys. Any one slow step could leave people in unclear processing states.

We moved the Person Profile Processor into Temporal. One workflow now claims the person, fetches profile data, runs LinkedIn enrichment when needed, routes urgent profiles through immediate processing, and sends normal priority profiles into batch processing.

The batch path waits durably for OpenAI parse and embedding jobs, falls back to polling when webhooks are silent, and finalizes every person status so failed work is visible instead of stuck.

We also added the FastAPI trigger endpoint, Temporal worker deployment pipelines, local and cloud Temporal configuration, Redis-backed coordination, and fixes for data persistence, retry behavior, and status transitions.

Temporal workflow run screenshot to be added