---
title: "Match one candidate against multiple offers (max 20000)"
method: POST
path: "/v1/match-offers"
tags: ["matching"]
---

# Match one candidate against multiple offers (max 20000)

`POST /v1/match-offers`

## Request

- Base URL: `https://api.getyourjob.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getyourjob.pro/v1/match-offers`
- Auth: none declared

Match a single candidate against one or more job offers.

    **Fast mode**: Bypasses Pydantic validation on offers for large requests.
    Accepts raw JSON body, validates only candidate and options.

    **Pagination for large requests (> page_size offers):**
    - Layer 1 quick sorting is applied to ALL offers (no LLM)
    - Layer 2 deep analysis is run on the first page (page_size offers)
    - A `matching_session_id` is returned for fetching additional pages

    **Response type:**
    - <= page_size offers: Returns `MatchResultResponse` with direct deep analysis
    - > page_size offers: Returns `PaginatedMatchResultResponse` with session ID

## Response `200`

Successful match results

- unknown

## Other responses

- `400`: Validation error
- `401`: Authentication required
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/getyourjob/apis/matchingagent-api.md) · [All operations](https://skmtc.dev/getyourjob/apis/matchingagent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getyourjob/apis/matchingagent-api/revisions/3a2d9ceb7c84?raw)
