03 / EXTRACTION

Job Criteria Extraction

Extract explicit candidate-evaluable requirements from a job description, with a weight, is_mandatory flag, and concise French rationale for each criterion.

Endpoint

1

Input limit

50,000 chars

Input

JSON

Reference

Endpoints

1 endpoint
01

Endpoint

Extract criteria

Turn a job description into explicit, matchable criteria.

POST/api/v1/jobs/extract-criteria

Request

Content-Typeapplication/json
job_text
stringrequired

Full job description, up to 50,000 characters.

Errors

401

Missing or invalid API key. The public façade returns { error: "Missing API Key" } or { error: "Invalid API Key" }; direct HireLayer returns { success: false, error: "Unauthorized. Valid API key required." } when API_KEY is configured.

400

The request body is missing or invalid.

404

The requested endpoint does not exist.

502

Bedrock failed or returned an invalid response.

500

Unexpected server-side failure.

Example request

Request example
curl -X POST https://onlineresumeparser.com/api/v1/jobs/extract-criteria \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"job_text":"React required. Fluent English required. Paris-based."}'

Response

Every criterion contains a deterministic id, label, weight (1–3), is_mandatory, and rationale. Criteria are returned in descending weight order; label and rationale are generated in French.

{
  "matching_criteria": [
    {
      "id": "crit_1",
      "label": "Maîtrise de React",
      "weight": 3,
      "is_mandatory": true,
      "rationale": "React est explicitement requis pour le poste."
    },
    {
      "id": "crit_2",
      "label": "Anglais professionnel",
      "weight": 2,
      "is_mandatory": true,
      "rationale": "Un niveau d'anglais professionnel est explicitement demandé."
    },
    {
      "id": "crit_3",
      "label": "Localisation à Paris",
      "weight": 1,
      "is_mandatory": false,
      "rationale": "Le poste est basé à Paris, sans exigence explicite de résidence."
    }
  ]
}
Implementation notes. Only job_text is accepted in the body. job_text is trimmed before validation; it must be a non-empty string of at most 50,000 characters. Unknown top-level fields return HTTP 400. Criteria are returned in descending weight order. Criterion ids are generated deterministically as crit_1, crit_2, and so on, and can be sent unchanged to the matching endpoint. The extraction service returns only requirements that can be evaluated from a CV; it does not score candidates.