Skip to main content
Restricted Access: This documentation is only accessible to @tenzo.ai and @salv.ai email addresses.

Responsibility

AI Interview owns the durable lifecycle after Resume Review continues the workflow. Its work runner creates a module run, claims it in-process, and then uses the existing Tenzo writers for recruiter-visible stages. It is not a private hop executor. See Module and stage-orchestrator contract. The module does not own parks such as NO_CONSENT or COOLING_DOWN; those remain overlays on the compatibility stage. The coordinator described in Module-owned stage orchestration still returns START_AI_INTERVIEW. Resume Review continue_handoff is the only activate hook, including ingest that bypasses Resume Review scoring.

Work progress

Sit-able stages are on the compiled AI Interview module (OUTREACH through CALL_COMPLETED and parks inside the click-in). The values below are lease and work progress on the module run, not a second stage language. Parks (NO_CONSENT, COOLING_DOWN, DISPOSITIONED_IN_ATS, and similar) do not change the Interview local stage.

Fixed V1 flow

Every flag-on application that reaches continue_handoff gets one Interview run, including resume-only jobs. Those runs land on bypassed rather than remaining absent.

Activate

Activate is in-process. There is no Interview queue worker.
  1. Create-or-get the ai_interview run at pending.
  2. If the frozen snapshot has interviews disabled, publish bypassed and project SKIP_OUTREACH from that snapshot. Do not re-read the live job setting.
  3. Otherwise claim pendingoutreach and keep the existing OUTREACH plus pending-call writers.
Create-or-get is unique on (candidate_campaign_id, module_key). Re-running handoff does not insert a second row. If CCI is already OUTREACH or SKIP_OUTREACH, activate still ensures the run exists and does not repeat the Tenzo writer when the projection is already there.

Configuration snapshot

The orchestrator freezes whether interviews are enabled, the applicant call type (WEB / PHONE), and a source-version digest when the run is created. Retries read that snapshot. Later job-setting edits do not change an in-flight run.

Thin publishers

After the canonical Tenzo writers commit, a no-op-if-absent helper publishes the matching Interview stage:
  • AI_INTERVIEW_SCHEDULEDscheduled
  • CALL_COMPLETED / FAILED_KNOCKOUT (including reused interviews) → completed
  • SKIP_OUTREACHbypassed when the run is not already there
Flag-off applications have no Interview row, so the helper does nothing.

TenzoStage projection

Recruiters still read TenzoStage. Interview local stages do not change list columns, filters, or ATS automation. Transition validation never reads TenzoStage as its local source of truth.

Operational checks

When an Interview workflow appears stuck, inspect:
  1. the current local stage and latest module-history sequence;
  2. whether Resume Review has a continuing terminal and continue_handoff ran;
  3. the configuration-snapshot interviews_enabled value;
  4. the derived TenzoStage projection last.
Do not infer module progress from queue delivery count or repair it by editing the compatibility projection.