GetYourJob Matching Session API
The matching-session API from GetYourJob — 1 operation(s) for matching-session.
The matching-session API from GetYourJob — 1 operation(s) for matching-session.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/getyourjob-pro:getyourjob-pro-matching-session-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: MatchingAgent Matching Session API
description: 'AI-powered candidate-job matching API.
## Features
- **Match candidates against offers** - Get scored matches with detailed analysis
- **Explainable results** - Understand why a match is good or bad
- **Flexible input** - Accept various data formats
## MVP Endpoints
- `POST /v1/match` - Match a candidate against multiple offers
- `GET /v1/health` - Health check
## Coming Soon
- `POST /v1/enrich` - Enrich candidate profiles with external data
- `POST /v1/parse-document` - Parse CV/resume documents'
version: mvp-1.0.0
tags:
- name: matching-session
paths:
/v1/matching-session:
post:
tags:
- matching-session
summary: Get matching session results
description: 'Retrieve deeply analyzed results for a specific page of a matching session.
**Request body:**
- `session_id`: The matching session ID (returned from /match-candidates or /match-offers)
- `page`: Page number (1-indexed, default 1)
- `include_analysis`: Include detailed analysis (default true)
- `lang`: Translation language code (optional)
**Response type:**
- For match-candidates sessions: Returns `MatchingSessionPageResponse` with `CandidateMatchResponse` items
- For match-offers sessions: Returns `MatchOffersSessionPageResponse` with `OfferMatchResponse` items
**Cache behavior:**
- If the page has been analyzed before, returns cached results instantly
- If not cached, runs Layer 2 deep analysis on the page''s items (page_size items)
- Results are then cached for future requests
**Performance:**
- Cached page: ~50ms
- New page: ~8-12 seconds (depends on bulk extraction needs)'
operationId: get_session_page_v1_matching_session_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MatchingSessionRequest'
required: true
responses:
'200':
description: Page results retrieved successfully
content:
application/json:
schema: {}
'404':
description: Session not found or expired
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'400':
description: Invalid page number
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
MatchingSessionRequest:
properties:
session_id:
type: string
title: Session Id
description: Matching session ID (returned from /match-candidates when items > page_size)
examples:
- ms-a1b2c3d4-e5f6-7890-abcd-ef1234567890
page:
type: integer
minimum: 1.0
title: Page
description: Page number (1-indexed). Default is 1.
default: 1
include_analysis:
type: boolean
title: Include Analysis
description: Include detailed analysis in response
default: true
lang:
anyOf:
- type: string
maxLength: 5
minLength: 2
- type: 'null'
title: Lang
description: Target language code for analysis translation (e.g., 'fr', 'es'). Uses session's original language if not specified.
type: object
required:
- session_id
title: MatchingSessionRequest
description: Request body for fetching matching session results.
example:
include_analysis: true
lang: fr
page: 2
session_id: ms-a1b2c3d4-e5f6-7890-abcd-ef1234567890
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
ErrorResponse:
properties:
success:
type: boolean
title: Success
description: Always false for errors
default: false
error:
additionalProperties: true
type: object
title: Error
description: Error details
type: object
required:
- error
title: ErrorResponse
description: Error response format.
example:
error:
code: VALIDATION_ERROR
details:
- error: At least one skill is required
field: candidate.skills
message: Invalid request format
success: false