# Explain why found jobs fit their resume

Writes the AI's one-sentence reason each found job fits the resume it was found for (or its main gap), and returns the jobs. Jobs that already have a reason keep it; the rest are explained in one call that counts one AI action. Up to 20 jobs, all found for the same resume. Requires authentication.

```http
POST https://hiresweep.com/api/openapi/discovery/matches/explain
x-api-key: YOUR_API_KEY
```

## Request body

```json
{
  "type": "object",
  "properties": {
    "matchIds": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "The IDs of the Matches to explain; they must have been found for the same resume."
    },
    "clientId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "description": "The client whose data this is, for an operator applying on behalf of clients. Omit for your own."
    }
  },
  "required": [
    "matchIds"
  ]
}
```

## Responses

- `200`: The jobs, with their reasons.
