Docs
API reference

Draft candidate feedback again

POST
/api/v1/reports/{id}/candidate-kit/regenerate

Drafts the feedback again from the report: the items are picked and worded afresh, replacing the draft's items, sections and edits. The personal note and the practice-link choice are kept. Use it when the report has changed or you want new wording. Each call asks the AI to word the items again, so it is limited to a few calls a minute and a daily allowance for your organization (rate_limit_exceeded); drafting the first time falls back to the standard wording instead. Answers candidate_kit_not_found when none has been drafted. Released feedback can be drafted again; the candidate keeps reading the released revision until you release an update. The key's owner must be a member or admin. Answers candidate_feedback_disabled while an admin has turned candidate feedback off in the organization settings.

Required scope: reports:write.

Errors

  • 400: unknown_field
  • 401: authentication_required, invalid_api_key
  • 403: api_access_disabled, candidate_feedback_disabled, insufficient_scope, permission_denied
  • 404: candidate_kit_not_found, report_not_found
  • 422: candidate_kit_unsupported, invalid_parameter
  • 429: rate_limit_exceeded
  • 500: api_error
  • 503: maintenance_mode, service_unavailable

Authorization

ApiKey
headerAuthorizationBearer <probb_live_<id>_<secret>>

Path Parameters

id*string

The report's ID.

Length1 <= length <= 200

Response Body

Success.

application/json
  1. response
object*string
id*string

The draft's ID.

reportId*string

The report it was drafted from. A report has at most one.

candidateId*string

The candidate the feedback is for.

jobId*string

The job.

status*string

draft until a member releases it: nothing reaches the candidate while it is a draft. released while the candidate's link works, revoked once it was withdrawn.

Value in"draft""released""revoked"
revision*integer

How many times the feedback has been released: 0 until it is, then 1, and one more for each update. The candidate reads the latest released revision, not the draft.

Range-9007199254740991 <= value <= 9007199254740991
release*

Where the feedback stands with the candidate.

wordingSource*string

ai when the wording was written by AI and checked, template when the standard wording was used.

Value in"ai""template"
sections*

strengths (what came across strongly), resume (make it visible in the resume), interview (strengthen interview answers) and skills (skills worth building, off by default).

practice*

Whether the feedback links to a practice interview.

personalNote*|

A note from the team shown at the top, at most 500 characters, or null.

personalNoteWarnings*array<>
createdAt*string
Formatdate-time
updatedAt*string
Formatdate-time
Example Request
# Set PROBB_URL and PROBB_API_KEY. Replace any *_VALUE placeholder and any example ID (such as job_example) with a real one.curl --fail-with-body -X POST "$PROBB_URL/api/v1/reports/ID_VALUE/candidate-kit/regenerate" \  -H "Authorization: Bearer $PROBB_API_KEY"
Example Response
{  "object": "candidate_kit",  "id": "string",  "reportId": "string",  "candidateId": "string",  "jobId": "string",  "status": "draft",  "revision": -9007199254740991,  "release": {    "channel": "email",    "releasedAt": "2019-08-24T14:15:22Z",    "expiresAt": "2019-08-24T14:15:22Z",    "firstViewedAt": "2019-08-24T14:15:22Z",    "lastViewedAt": "2019-08-24T14:15:22Z",    "delivery": "not_requested",    "hasUnsentChanges": true  },  "wordingSource": "ai",  "sections": {    "strengths": {      "enabled": true,      "items": [        {          "id": "string",          "requirement": "string",          "requirementKey": "string",          "text": "string",          "quote": "string",          "removed": true,          "edited": true,          "warnings": [            {              "code": "banned_phrase",              "match": "string"            }          ]        }      ]    },    "resume": {      "enabled": true,      "items": [        {          "id": "string",          "requirement": "string",          "requirementKey": "string",          "text": "string",          "quote": "string",          "removed": true,          "edited": true,          "warnings": [            {              "code": "banned_phrase",              "match": "string"            }          ]        }      ]    },    "interview": {      "enabled": true,      "items": [        {          "id": "string",          "requirement": "string",          "requirementKey": "string",          "text": "string",          "quote": "string",          "removed": true,          "edited": true,          "warnings": [            {              "code": "banned_phrase",              "match": "string"            }          ]        }      ]    },    "skills": {      "enabled": true,      "items": [        {          "id": "string",          "requirement": "string",          "requirementKey": "string",          "text": "string",          "quote": "string",          "removed": true,          "edited": true,          "warnings": [            {              "code": "banned_phrase",              "match": "string"            }          ]        }      ]    }  },  "practice": {    "enabled": true  },  "personalNote": "string",  "personalNoteWarnings": [    {      "code": "banned_phrase",      "match": "string"    }  ],  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}