/v1/search/jobs/{id}/feedbackLeave a thumbs verdict on a delivered developer
Thumbs up/down a developer this job delivered. A down never resurfaces — every delivered developer is fenced from future rounds by the delivered-once gate. When the job pages a saved search the verdict is layered verbatim as a steering note for later rounds. Self-scoped and free.
Path parameters
idstring requiredmax 17 chars
Request body SearchJobFeedbackRequest
developerIdstring requiredA developer this job delivered.
max 64 charsverdictstring requiredThumbs up or thumbs down.
updownreasonstring | nullOptional free-text reason, stored with the verdict.
max 500 chars
Responses
200The updated result rowfeedbackobject requireddeveloperIdstring requiredThe developer this row refers to. Hydrate the profile with `GET /v1/developers/{id}`.
roundinteger requiredThe round that produced this row.
min 0rankinteger requiredPosition within its round, best first. Ranks are per round, so they repeat across rounds.
scorenumber | null requiredThe ordering key within this round, descending. Comparable only within the round, and not a statement of match quality. Null when the producing lane did not score.
sourcestring requiredWhich lane produced this row: the agentic selector, or the deterministic pager it falls back to when the agent host is unreachable.
repo_fanoutuser_entityinterestslinkedinbankedagent_selectdeliveredboolean requiredTrue when this developer was handed to you. False means banked: found and held for a later `/more` round.
whySearchJobResultWhy requiredWhy the agent selected this developer for THIS role, in its own words. Present on rows the agentic selector produced (the judgment you paid for); null on rows the deterministic pager produced, which does not reason about candidates.
summarystring | null requiredOne sentence on why this developer fits THIS role, in the judge’s own words.
max 5000 charsclaimsarray of string requiredThe supporting statements behind `summary`: the angle they came in on, the fit blurb, and the tags.
max 8 itemsrepoobject | null requiredThe ONE repository the judge picked as relevant to this role. Not their most-starred repo — that is a popularity artifact. Null when the judge found no role-relevant repo.
fullNamestring requiredGitHub `owner/name`.
max 200 charsurlstring requiredThe public github.com URL of the repository.
max 2048 chars
repoSummarystring | null requiredA plain-English sentence about `repo`, written for a human to read or paste.
max 5000 chars
feedbackstring | null requiredThe thumbs verdict you recorded on this developer for this job, if any. Null when none.
updown
steeringRecordedboolean requiredTrue when the verdict was also layered onto the underlying saved search as a steering note, so later rounds take it into account. False when this job is not attached to a saved search, in which case the verdict only annotates this job.
401No or invalid credentialcodestring requiredStable machine-readable error code. Branch on this, never on the numeric status.
bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errormessagestring requiredHuman-readable explanation of the refusal.
statusinteger requiredThe HTTP status code, repeated in the body.
remedyobjectA self-serve path forward, when one exists (a 402 points at the credit top-up).
kindstring requiredWhat kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.
topupconnect_mailboxurlstring requiredWhere to go to clear the condition: an API path, or a web app page when only a person can.
404No such job, or the developer is not in its resultscodestring requiredStable machine-readable error code. Branch on this, never on the numeric status.
bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errormessagestring requiredHuman-readable explanation of the refusal.
statusinteger requiredThe HTTP status code, repeated in the body.
remedyobjectA self-serve path forward, when one exists (a 402 points at the credit top-up).
kindstring requiredWhat kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.
topupconnect_mailboxurlstring requiredWhere to go to clear the condition: an API path, or a web app page when only a person can.