Skip to main content

Extract criteria

POST /api/intake

Requires a signed-in session. Takes free text, returns structured CriteriaV2 JSON plus an entity-coverage breakdown the calibrate screen uses to light up chips.

Request body

string
required
The free-text description or pasted job description. Must be non-empty.

Response

CriteriaV2
The extracted criteria object. Every field is optional — an absent field means the model didn’t find or wasn’t confident about that slot, not that it was rejected.
object
One entry per calibrate-screen chip (location, job_title, years_experience, industry, skills). A chip is considered confirmed when resolved is true and confidence >= 0.7.
boolean
True if the model named a role family that isn’t one of the organization’s seeded families. When true, criteria.family is stripped from the response and familySuggestions lists the closest known families instead of guessing.

Errors

What it doesn’t do

This endpoint only extracts and validates criteria — it never calls Harvest, Serper, or any sourcing provider, and never produces a numeric score. Scoring is computed entirely in SQL once a scan actually runs (not yet wired up in the UI).