Prepare or change a final round
Prepares the final round for a report, or replaces the choices of the one that exists (a report has at most one; a cancelled one is prepared afresh). Repeating the same request leaves the same final round. Each interviewer other than the key's owner is told in the app, each outside interviewer in externals is emailed their private link, and the call is announced as final_round.created when it creates one. Changing the final round does not email an outside interviewer who stays on it; only people newly added get an invitation. A final round can be changed until an interviewer submits a scorecard (final_round_locked). The job must be open. The key's owner must be a member or admin; the final round is recorded under that person.
Required scope: reports:write.
Errors
- 400:
invalid_content_type,invalid_json,request_body_too_large,unknown_field - 401:
authentication_required,invalid_api_key - 403:
api_access_disabled,insufficient_scope,permission_denied - 404:
report_not_found - 409:
final_round_exists,final_round_locked,job_closed - 422:
external_is_member,final_round_invalid_selection,final_round_unsupported,interviewer_not_member,invalid_parameter - 429:
rate_limit_exceeded - 500:
api_error - 503:
maintenance_mode,service_unavailable
ApiKeyAuthorizationBearer <probb_live_<id>_<secret>>id*stringThe report's ID.
1 <= length <= 200application/json- body
includedKeys*array<>Keys of the requirements to cover, from the preview (at most 25). Items are frozen in priority order.
items <= 25customQuestions*array<>Questions of your own that belong to no requirement (at most 10, 500 characters each). A question that is already in the final round keeps its ID when its text is unchanged.
items <= 10assignments*array<>Who asks what, by user ID (at most 8 interviewers in all, outside interviewers included; any member, viewers included). itemKeys are requirement keys, IDs of questions already in the final round, or question:1, question:2 and so on for the first, second and later entries of customQuestions. Each item has at most one interviewer. Items nobody is given go to the person who owns the API key, who then joins the panel.
items <= 8externals?array<>People without a Probb seat, such as a client's hiring manager (at most 4). Each is emailed, from the name of your organization followed by via ProBB AI, a private link to their part only, which they use without an account. They never see other interviewers' scorecards. Include everyone who should stay on a final round you change: leaving an outside interviewer out removes them and ends their link, which is allowed only until a scorecard is submitted.
items <= 4[]Success.
application/json- response
object*stringid*stringThe final round's ID.
reportId*stringThe report it was prepared from. A report has at most one.
candidate*The candidate being interviewed.
job*The job.
status*stringactive, completed or cancelled.
"active""completed""cancelled"locked*booleanTrue once an interviewer has submitted a scorecard. A locked final round can no longer be changed.
items*array<|>What the panel will cover, in order: the requirements chosen, then the members' own questions.
interviewers*array<>Who asks what. Every item has exactly one interviewer, a member or an outside interviewer.
preparedBy*|Who prepared it, or null if that person was since deleted.
completedAt*|When every interviewer still in the organisation had submitted a scorecard, or null while the panel is still working.
createdAt*stringdate-timeupdatedAt*stringdate-time# 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 PUT "$PROBB_URL/api/v1/reports/ID_VALUE/final-round" \ -H "Authorization: Bearer $PROBB_API_KEY" \ -H 'Content-Type: application/json' \ --data-binary '{ "includedKeys": [ "distributed-systems", "stakeholder-management" ], "customQuestions": [ "Walk us through an outage you led the response to." ], "assignments": [ { "userId": "user_asha", "itemKeys": [ "distributed-systems" ] }, { "userId": "user_ben", "itemKeys": [ "stakeholder-management", "question:1" ] } ], "externals": []}'{ "object": "final_round", "id": "string", "reportId": "string", "candidate": { "id": "string", "name": "string" }, "job": { "id": "string", "title": "string" }, "status": "active", "locked": true, "items": [ { "kind": "requirement", "key": "string", "label": "string", "priority": "must_have", "hardConstraint": true, "resume": { "state": "shown", "summary": "string" }, "interview": { "state": "shown", "summary": "string" }, "followUpRecommended": true, "guidance": "string", "probes": [ "string" ] } ], "interviewers": [ { "assignmentId": "string", "kind": "member", "user": { "id": "string", "name": "string" }, "external": { "emailMasked": "string", "link": "queued", "linkExpiresAt": "2019-08-24T14:15:22Z" }, "itemKeys": [ "string" ] } ], "preparedBy": { "id": "string", "name": "string" }, "completedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}