Run pre-screening on a plaintext resume
Stores a plaintext candidate resume, runs AI pre-screening against the position definition, records the result and returns the AI recommendation and analysis. If the candidate is not in the pre-screening candidate_action state, an early { decision_status, message } object is returned with HTTP 200.
Authorizations
Supabase JWT access token, passed as Authorization: Bearer <token>.
Body
Position (position_def_set) id the candidate is being screened against.
1"00000000-0000-0000-0000-000000000000"
Candidate full name.
1"Jane Doe"
Candidate email (normalised to trimmed lowercase).
1"jane.doe@example.com"
Candidate country code, used as default residency/nationality.
1"US"
Plaintext candidate resume.
1"Experienced software engineer with 8 years ..."
Optional external identifier stored on the candidate profile.
"ATS-12345"
Optional LinkedIn profile URL stored on the candidate profile.
"https://www.linkedin.com/in/jane-doe"
Optional structured pre-screening form used by the assessment rules. Custom fields (defined via form_fields) are also accepted.
Response
Pre-screening completed, or an early { decision_status, message } result when the candidate is not in the pre-screening candidate_action state.
- Option 1
- Option 2
Result of the pre-screening analysis. When the candidate is not in the pre-screening candidate_action state, a { decision_status, message } object is returned instead.
true
Applied decision status for the pre-screening step.
"recruiter_action"
AI recommendation derived from the pre-screening status.
ai_accept, ai_reject, recruiter_action "recruiter_action"
Candidate profile_interview id.
Inserted interview_result_pre_screening id.
Stored resume interview_file id.
AI match score.
AI resume analysis feedback.
AI-detected education level of the candidate.
AI-estimated years of relevant experience.
Whether the candidate is switching profession.
Reason the candidate failed screening, when applicable.