API reference navigation
POST /v1/search/jobs/{id}/feedback

Leave a thumbs verdict on a delivered developer

Access
Authenticated (self)
Cost
Free
Rate limit
60 / minute per account
Quota
None

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

  • id string required
    max 17 chars

Request body SearchJobFeedbackRequest

  • developerId string required

    A developer this job delivered.

    max 64 chars
  • verdict string required

    Thumbs up or thumbs down.

    updown
  • reason string | null

    Optional free-text reason, stored with the verdict.

    max 500 chars

Responses

  • 200 The updated result row
    • feedback object required
      • developerId string required

        The developer this row refers to. Hydrate the profile with `GET /v1/developers/{id}`.

      • round integer required

        The round that produced this row.

        min 0
      • rank integer required

        Position within its round, best first. Ranks are per round, so they repeat across rounds.

      • score number | null required

        The 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.

      • source string required

        Which lane produced this row: the agentic selector, or the deterministic pager it falls back to when the agent host is unreachable.

        repo_fanoutuser_entityinterestslinkedinbankedagent_select
      • delivered boolean required

        True when this developer was handed to you. False means banked: found and held for a later `/more` round.

      • why SearchJobResultWhy required

        Why 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.

        • summary string | null required

          One sentence on why this developer fits THIS role, in the judge’s own words.

          max 5000 chars
        • claims array of string required

          The supporting statements behind `summary`: the angle they came in on, the fit blurb, and the tags.

          max 8 items
        • repo object | null required

          The 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.

          • fullName string required

            GitHub `owner/name`.

            max 200 chars
          • url string required

            The public github.com URL of the repository.

            max 2048 chars
        • repoSummary string | null required

          A plain-English sentence about `repo`, written for a human to read or paste.

          max 5000 chars
      • feedback string | null required

        The thumbs verdict you recorded on this developer for this job, if any. Null when none.

        updown
    • steeringRecorded boolean required

      True 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.

  • 401 No or invalid credential
    • code string required

      Stable 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_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What 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_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 404 No such job, or the developer is not in its results
    • code string required

      Stable 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_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What 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_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.