HireLayer API

HireLayer API as documented publicly: 7 operations. Contract generated from the documentation by API Evangelist (2026-10-12); not the provider's own document.

Operations 7

POST /api/v1/jobs/extract-criteria POST /api/v1/jobs/extract-criteria #
POST /api/v1/matching/job-candidate POST /api/v1/matching/job-candidate #
POST /api/v1/matching/job-candidates/rank POST /api/v1/matching/job-candidates/rank #
POST /api/v1/skills/resolve POST /api/v1/skills/resolve #
GET /api/v1/{v1id} Check that the Job Extract, Match, Skills and Rank service is up. No API key needed. #
POST /api/v2/parser Legacy asynchronous contract: the request is accepted with `202` and the result is posted to `webhook_url`. (legacy) #
POST /api/v3/parser POST /api/v3/parser #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hirelayer:hirelayer-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hirelayer-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: HireLayer API
  version: '2026-10-12'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-12: 7 operation(s) read from 6 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; HireLayer has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 5
    documentation: 2
    pages-with-code: 6
    pages-read: 6
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-12'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://hirelayer.co/products/job-parsing-api
  - https://hirelayer.co/products/resume-parsing-api
  - https://hirelayer.co/products/skills-matching-api
  - https://hirelayer.co/products/candidate-ranking-api
  - https://hirelayer.co/products/candidate-job-matching-api
  - https://hirelayer.co/api-docs.md
paths:
  /api/v1/jobs/extract-criteria:
    post:
      operationId: post_api_v1_jobs_extract_criteria
      tags:
      - Api
      summary: POST /api/v1/jobs/extract-criteria
      x-source: https://hirelayer.co/products/job-parsing-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1JobsExtractCriteriaRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1JobsExtractCriteriaResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://hirelayer.co/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 200 OK · application/json {\n \"matching_criteria\"\
          \ : [\n {\n \"id\" : \"crit_1\" ,\n \"label\" : \"Maîtrise de React\" ,\n \"weight\" : 3 ,\n \"is_mandatory\" : true ,\n \"rationale\"\
          \ : \"React est expliciteme"
  /api/v1/matching/job-candidate:
    post:
      operationId: post_api_v1_matching_job_candidate
      tags:
      - Api
      summary: POST /api/v1/matching/job-candidate
      x-source: https://hirelayer.co/products/candidate-job-matching-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1MatchingJobCandidateRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1MatchingJobCandidateResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://hirelayer.co/api/v1/matching/job-candidate  -H \"Content-Type: application/json\"  -H \"X-API-Key: YOUR_API_KEY\"\
          \  -d '{\n \"job_text\" : \"React required. Fluent English required. Paris-based.\" ,\n \"candidate_text\" : \"Senior React and TypeScript\
          \ developer based in Paris with professional English.\" ,\n \"matching_criteria\" : [\n { \"id\" : \"crit_1\" , \"label\" : \"React\"\
          \ , \"weight\" : 3 , \"is_m"
  /api/v1/matching/job-candidates/rank:
    post:
      operationId: post_api_v1_matching_job_candidates_rank
      tags:
      - Api
      summary: POST /api/v1/matching/job-candidates/rank
      x-source: https://hirelayer.co/products/candidate-ranking-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1MatchingJobCandidatesRankRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1MatchingJobCandidatesRankResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://hirelayer.co/api/v1/matching/job-candidates/rank  -H \"Content-Type: application/json\"  -H \"X-API-Key:\
          \ YOUR_API_KEY\"  -d '{\n \"job_text\" : \"React required. Fluent English required. Paris-based.\" ,\n \"candidates\" : [\n { \"id\"\
          \ : \"candidate_1\" , \"candidate_text\" : \"Senior React and TypeScript developer based in Paris with professional English.\" },\n\
          \ { \"id\" : \"candidate_2\" , \"candidate"
  /api/v1/skills/resolve:
    post:
      operationId: post_api_v1_skills_resolve
      tags:
      - Api
      summary: POST /api/v1/skills/resolve
      x-source: https://hirelayer.co/products/skills-matching-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1SkillsResolveRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1SkillsResolveResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://hirelayer.co/api/v1/skills/resolve  -H \"Content-Type: application/json\"  -H \"X-API-Key: YOUR_API_KEY\"\
          \  -d '{\"text\":\"Google Sheet/Excel\",\"language\":\"fr\"}' Response 200 OK · application/json {\n \"language\" : \"fr\" ,\n \"skills\"\
          \ : [\n {\n \"id\" : \"google_sheets\" ,\n \"name\" : \"Google Sheets\" ,\n \"type\" : \"software\" ,\n \"mention\" : \"Google Sheet\"\
          \ ,\n \"families\" : [\n { \"id\" : \"office_software\""
  /api/v1/{v1id}:
    get:
      operationId: get_api_v1_v1id
      tags:
      - Api
      summary: Check that the Job Extract, Match, Skills and Rank service is up. No API key needed.
      x-source: https://hirelayer.co/api-docs.md
      parameters:
      - name: v1id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1V1IdResponse'
      x-evidence:
        kind: documentation
        collapsed_from: 3 example path(s) differing only at v1Id
  /api/v2/parser:
    post:
      operationId: post_api_v2_parser
      tags:
      - Api
      summary: 'Legacy asynchronous contract: the request is accepted with `202` and the result is posted to `webhook_url`. (legacy)'
      x-source: https://hirelayer.co/api-docs.md
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV2ParserRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV2ParserResponse'
      x-evidence:
        kind: documentation
  /api/v3/parser:
    post:
      operationId: post_api_v3_parser
      tags:
      - Api
      summary: POST /api/v3/parser
      x-source: https://hirelayer.co/products/resume-parsing-api
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV3ParserResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://hirelayer.co/api/v3/parser  -H \"X-API-Key: YOUR_API_KEY\"  -F \"file=@/path/to/resume.pdf\"  -F \"application_id=app_123\"\
          \ Response 200 OK · application/json {\n \"status\" : \"success\" ,\n \"request_id\" : \"req_01J9R8M4Y2A6K7D9P3N5Q1T8\" ,\n \"info_candidate\"\
          \ : {\n \"full_name\" : \"Alex Morgan\" ,\n \"email\" : \"alex.morgan@example.com\" ,\n \"job_title\" : \"Senior Software Engineer\"\
          \ ,\n \"experience_le"
components:
  schemas:
    PostApiV1JobsExtractCriteriaRequest:
      type: object
      properties:
        job_text:
          type: string
    PostApiV1JobsExtractCriteriaResponse:
      type: object
      properties:
        matching_criteria:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              label:
                type: string
              weight:
                type: integer
              is_mandatory:
                type: boolean
              rationale:
                type: string
    PostApiV1MatchingJobCandidateRequest:
      type: object
      properties:
        job_text:
          type: string
        candidate_text:
          type: string
        matching_criteria:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              label:
                type: string
              weight:
                type: integer
              is_mandatory:
                type: boolean
              rationale:
                type: string
    PostApiV1MatchingJobCandidateResponse:
      type: object
      properties:
        score:
          type: number
        summary:
          type: string
        evaluated_criteria:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              label:
                type: string
              weight:
                type: integer
              match_status:
                type: string
              match_explanation:
                type: string
    PostApiV1MatchingJobCandidatesRankRequest:
      type: object
      properties:
        job_text:
          type: string
        candidates:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              candidate_text:
                type: string
    PostApiV1MatchingJobCandidatesRankResponse:
      type: object
      properties:
        rankings:
          type: array
          items:
            type: object
            properties:
              rank:
                type: integer
              candidate_id:
                type: string
              score:
                type: number
              rationale:
                type: string
    PostApiV1SkillsResolveRequest:
      type: object
      properties:
        text:
          type: string
        language:
          type: string
    PostApiV1SkillsResolveResponse:
      type: object
      properties:
        language:
          type: string
        skills:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              type:
                type: string
              mention:
                type: string
              families:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    domain_id:
                      type: string
              domains:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
              broader:
                type:
                - string
                - 'null'
        unresolved:
          type: array
          items: {}
        taxonomy_version:
          type: string
    GetApiV1V1IdResponse:
      type: object
      properties:
        status:
          type: string
          description: Health status, e.g., "ok".
    PostApiV2ParserRequest:
      type: object
      properties:
        file:
          type: string
          description: Resume file (multipart/form-data).
        webhook_url:
          type: string
          description: URL to receive the parsing result.
      required:
      - file
      - webhook_url
    PostApiV2ParserResponse:
      type: object
      properties:
        status:
          type: string
          description: Acknowledgement status, e.g., "accepted".
    PostApiV3ParserResponse:
      type: object
      properties:
        status:
          type: string
        request_id:
          type: string
        info_candidate:
          type: object
          properties:
            full_name:
              type: string
            email:
              type: string
            job_title:
              type: string
            experience_level:
              type: string
            education_level:
              type: string
            availability_now:
              type: boolean
            location:
              type: object
              properties:
                city:
                  type: string
                country_code:
                  type: string
        work_experiences:
          type: array
          items:
            type: object
            properties:
              company_name:
                type: string
              job_title:
                type: string
              contract_type:
                type: string
              start_date:
                type: string
                format: date
              currently_active:
                type: boolean
              experience_duration:
                type: integer
        languages:
          type: array
          items:
            type: object
            properties:
              language:
                type: string
              level:
                type: string
        skills:
          type: array
          items:
            type: object
            properties:
              skill_title:
                type: string
              skill_type:
                type: string
              status:
                type: string
              domain:
                type: string
              subcategory:
                type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
security:
- apiKey: []
tags:
- name: Api