Matching crew candidates for a job
listCrewCandidatesFind ranked technician candidates to replace a scheduled job's crew. The smart-assignment engine matches by skills, availability, travel, and time off, returning lead options with scores and session plans.
Instructions
Matching crew candidates for a job
RE-STAFFING candidates for a CONFIRMED, SCHEDULED job (not yet completed/archived) — any earlier or later stage returns 409 JOB_REQUEST_INVALID_TRANSITION. This is the pool of technicians who could REPLACE the current crew: the currently assigned lead and buddies are deliberately excluded (they are the status quo, not an option), so on a small roster an empty leads list is a normal answer, not an error. For pre-booking discovery ("who could take this job before it is confirmed?") use listJobRequestBookingWindows / listMatchingSlots / the time-segments grid instead. Candidates are matched and ranked by the smart-assignment engine — skills per crew slot, weekly availability, existing schedule, time off and travel are all checked; each carries a score breakdown (distance, travel, matched skills) plus the exact on-site session plan they would work. NOT a raw roster list (use GET /technicians for that). Returns the ranked feasible LEAD pool by default; pass include_buddies=true to also return per-slot buddy pools, include_vehicle=true to include the available-vehicle list. force_lead_id checks one specific technician: returns only that lead (with their crew combo) if feasible, else 409 JOB_REQUEST_NO_TECHNICIAN_AVAILABLE.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job request ID or short_code | |
| force_lead_id | No | Check a specific technician as lead — returns only that lead if feasible, else 409 | |
| include_buddies | No | Also return buddy candidate pools | |
| include_vehicle | No | Also return the available-vehicle list |