Reference

Candidates

People who applied to your jobs, with their submitted CV. API key only.

Get an application

GET/v1/candidates/{applicationId}

API keycandidates:read

Returns one application in full: the candidate identity and live profile, the CV document they submitted, any other CVs on their account, their cover letter, and a short-lived download link when they uploaded a resume file. The download link expires, so fetch it when you need it rather than storing it.

Path parameters

FieldTypeDescription
applicationIdrequiredstring

The Tabbio application id.

Response

These fields sit inside data.

FieldTypeDescription
applicationIdalwaysstring

The application id. Use it on detail.

jobIdalwaysstring

The job applied to.

companyIdalwaysstring

The company that owns the job.

statusalwaysstring

applied, reviewed, shortlisted, interview, offered, rejected or withdrawn.

appliedAtalwaysstring

When the application arrived.

updatedAtalwaysstring

When it last changed.

sourcealwaysstring or null

How the application arrived: tabbio_app, public_page or public_new_user.

screeningAnswersalwaysobject[]

Their answers to the job’s screening questions.

questionIdalwaysstring

Which screening question this answers.

typestring

The question type that was asked.

valuestring

The answer, typed to match the question.

statusHistoryalwaysobject[]

Every stage change, oldest first.

statusalwaysstring

The stage the application moved to.

atalwaysstring

When it moved.

candidatealwaysobject

Who applied.

userIdalwaysstring

The applicant’s Tabbio user id.

namealwaysstring

Their name.

usernamealwaysstring or null

Their Tabbio handle, when they set one.

imagealwaysstring or null

Profile photo.

emailalwaysstring

The email on their Tabbio account.

titlealwaysstring or null

The headline on their profile.

submittedCvalwaysobject or null

The CV they submitted, or null when they uploaded a file.

idalwaysstring

The CV id.

titlealwaysstring

What the candidate calls it.

updatedAtalwaysstring

When that CV last changed.

coverLetteralwaysstring or null

What they wrote with the application.

candidateProfilealwaysobject

Their live Tabbio profile, next to the CV they submitted.

bioalwaysstring or null

Their short bio.

aboutalwaysstring or null

Their longer About section.

skillsalwaysstring[]

Skills on their live profile.

interestsalwaysstring[]

Interests on their profile.

submittedCvDocumentalwaysobject or null

The CV as it was at the moment they applied.

idalwaysstring

The CV id.

titlealwaysstring

What the candidate calls it.

summaryalwaysstring or null

The CV summary paragraph.

createdAtalwaysstring

When the CV was created.

updatedAtalwaysstring

When it last changed.

snapshotboolean

False when this is the candidate’s live CV rather than the frozen submission.

additionalCvDocumentsalwaysobject[]

Other CVs on their account.

idalwaysstring

The CV id.

titlealwaysstring

What the candidate calls it.

summaryalwaysstring or null

The CV summary paragraph.

createdAtalwaysstring

When the CV was created.

updatedAtalwaysstring

When it last changed.

snapshotboolean

False when this is the candidate’s live CV rather than the frozen submission.

resumealwaysobject or null

A short-lived download for an uploaded resume file, when the application carried one.

downloadUrlalwaysstring

Presigned link. Fetch it, do not store it.

expiresAtalwaysstring

When the link stops working.

filenamealwaysstring or null

The file name they uploaded.

Status codes

  • 200

    The application.

  • 401

    The API key is missing, expired, or revoked.

  • 403

    The record belongs to a company your app does not manage, or the key is missing the candidates:read scope.

  • 404

    No application with this id.

Request
curl https://server.tabbio.com/v1/candidates/$APPLICATION_ID \
  -H "Authorization: Bearer $TABBIO_API_KEY"
Response 200
{
  "data": {
    "applicationId": "app_3e77b0",
    "jobId": "job_5c19d8",
    "companyId": "com_7b31c4",
    "status": "reviewed",
    "appliedAt": "2026-08-22T09:14:03.000Z",
    "updatedAt": "2026-08-24T12:40:18.000Z",
    "source": "tabbio_app",
    "screeningAnswers": [
      {
        "questionId": "q_experience_years",
        "type": "number",
        "value": 9
      }
    ],
    "statusHistory": [
      {
        "status": "applied",
        "at": "2026-08-22T09:14:03.000Z"
      },
      {
        "status": "reviewed",
        "at": "2026-08-24T12:40:18.000Z"
      }
    ],
    "candidate": {
      "userId": "usr_6d1904",
      "name": "Omar Nassar",
      "username": "omarnassar",
      "image": "https://cdn.tabbio.com/avatars/omar.jpg",
      "email": "omar.nassar@example.com",
      "title": "Operations Manager"
    },
    "submittedCv": {
      "id": "cv_8a1e42",
      "title": "Operations roles",
      "updatedAt": "2026-08-21T18:02:11.000Z"
    },
    "coverLetter": "I have run cold chain operations in Dubai for nine years and would like to bring that to Northwind.",
    "candidateProfile": {
      "bio": "Operations manager, cold chain and last mile.",
      "about": "Nine years running regional logistics operations in the UAE and Saudi Arabia.",
      "skills": [
        "Operations",
        "Cold chain",
        "Team leadership"
      ],
      "interests": [
        "Supply chain analytics"
      ],
      "experience": [
        {
          "id": "exp_5f10",
          "company": "Gulf Cold Stores",
          "title": "Operations Manager",
          "location": "Dubai, United Arab Emirates",
          "locationType": "On-site",
          "employmentType": "Full-time",
          "startDate": "2019-04-01T00:00:00.000Z",
          "endDate": null,
          "current": true,
          "description": "Run two cold stores and a fleet of 40 vehicles.",
          "achievements": [
            "Cut cost per shipment by 18 percent over two years."
          ]
        }
      ],
      "education": [],
      "certifications": [],
      "highlights": [],
      "projects": []
    },
    "submittedCvDocument": {
      "id": "cv_8a1e42",
      "title": "Operations roles",
      "summary": "Operations manager, cold chain and last mile.",
      "createdAt": "2026-06-02T08:44:15.000Z",
      "updatedAt": "2026-08-21T18:02:11.000Z",
      "snapshot": true,
      "sections": []
    },
    "additionalCvDocuments": [
      {
        "id": "cv_44b907",
        "title": "General CV",
        "summary": null,
        "createdAt": "2026-02-11T15:09:33.000Z",
        "updatedAt": "2026-05-30T11:47:02.000Z",
        "snapshot": false,
        "sections": []
      }
    ],
    "resume": {
      "downloadUrl": "https://tabbio.fra1.digitaloceanspaces.com/public-apply/usr_6d1904/omar-nassar-cv.pdf?X-Amz-Expires=900&X-Amz-Signature=8f1c",
      "expiresAt": "2026-08-30T09:27:04.000Z",
      "filename": "omar-nassar-cv.pdf"
    }
  },
  "error": null,
  "meta": null
}

List applications for a job

GET/v1/jobs/{jobId}/candidates

API keycandidates:read

Lists the people who applied to a job your app manages, newest first. Each row carries the candidate identity, their screening answers and the CV they submitted. Use GET /v1/candidates/{applicationId} for the full application.

Path parameters

FieldTypeDescription
jobIdrequiredstring

The Tabbio job id.

Query parameters

FieldTypeDescription
pageinteger

1-based page number. Defaults to 1.

pageSizeinteger

Items per page, 1 to 100. Defaults to 25.

statusstring

Filter by application status.

One of applied, reviewed, shortlisted, interview, offered, rejected, withdrawn

querystring

Free text search over the candidate name, email and CV title.

Response

These fields sit inside data.

FieldTypeDescription
applicationIdalwaysstring

The application id. Use it on detail.

jobIdalwaysstring

The job applied to.

companyIdalwaysstring

The company that owns the job.

statusalwaysstring

applied, reviewed, shortlisted, interview, offered, rejected or withdrawn.

appliedAtalwaysstring

When the application arrived.

updatedAtalwaysstring

When it last changed.

sourcealwaysstring or null

How the application arrived: tabbio_app, public_page or public_new_user.

screeningAnswersalwaysobject[]

Their answers to the job’s screening questions.

questionIdalwaysstring

Which screening question this answers.

typestring

The question type that was asked.

valuestring

The answer, typed to match the question.

statusHistoryalwaysobject[]

Every stage change, oldest first.

statusalwaysstring

The stage the application moved to.

atalwaysstring

When it moved.

candidatealwaysobject

Who applied.

userIdalwaysstring

The applicant’s Tabbio user id.

namealwaysstring

Their name.

usernamealwaysstring or null

Their Tabbio handle, when they set one.

imagealwaysstring or null

Profile photo.

emailalwaysstring

The email on their Tabbio account.

titlealwaysstring or null

The headline on their profile.

submittedCvalwaysobject or null

The CV they submitted, or null when they uploaded a file.

idalwaysstring

The CV id.

titlealwaysstring

What the candidate calls it.

updatedAtalwaysstring

When that CV last changed.

Status codes

  • 200

    One page of applications.

  • 401

    The API key is missing, expired, or revoked.

  • 403

    The record belongs to a company your app does not manage, or the key is missing the candidates:read scope.

  • 404

    No job with this id.

Request
curl https://server.tabbio.com/v1/jobs/$JOB_ID/candidates \
  -H "Authorization: Bearer $TABBIO_API_KEY"
Response 200
{
  "data": [
    {
      "applicationId": "app_3e77b0",
      "jobId": "job_5c19d8",
      "companyId": "com_7b31c4",
      "status": "reviewed",
      "appliedAt": "2026-08-22T09:14:03.000Z",
      "updatedAt": "2026-08-24T12:40:18.000Z",
      "source": "tabbio_app",
      "screeningAnswers": [
        {
          "questionId": "q_experience_years",
          "type": "number",
          "value": 9
        }
      ],
      "statusHistory": [
        {
          "status": "applied",
          "at": "2026-08-22T09:14:03.000Z"
        },
        {
          "status": "reviewed",
          "at": "2026-08-24T12:40:18.000Z"
        }
      ],
      "candidate": {
        "userId": "usr_6d1904",
        "name": "Omar Nassar",
        "username": "omarnassar",
        "image": "https://cdn.tabbio.com/avatars/omar.jpg",
        "email": "omar.nassar@example.com",
        "title": "Operations Manager"
      },
      "submittedCv": {
        "id": "cv_8a1e42",
        "title": "Operations roles",
        "updatedAt": "2026-08-21T18:02:11.000Z"
      }
    }
  ],
  "error": null,
  "meta": {
    "page": 1,
    "pageSize": 25,
    "total": 1,
    "totalPages": 1
  }
}

Base URL https://server.tabbio.com. Every response outside the token endpoint uses the { data, error, meta } envelope.