> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tsenta.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Create a candidate, submit an application, and read the result. Three calls end to end against the Tsenta application API.

Three calls: create a candidate once, apply as often as you like, read the result.

## 1. Create a candidate

A candidate is the person you are applying for. Create them once and reuse the
returned `profile_id` on every application.

```bash theme={null}
curl -sX POST https://api.autojobs.me/v1/candidates \
  -H "Authorization: Bearer $TSENTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "profile": {
          "personalInformation": {
            "firstName": "Ada",
            "lastName": "Lovelace",
            "isOver18": true,
            "email": "ada@example.com",
            "phone": "+442079460958",
            "address": "1 Example Street",
            "city": "London",
            "state": "London",
            "country": "United Kingdom",
            "zipCode": "WC1E 6BT"
          },
          "workAuthorization": {
            "isAuthorizedToWork": true,
            "needsSponsorship": false
          },
          "workPreferences": {
            "canWorkInPerson": true,
            "canRelocate": false,
            "canStartImmediately": true,
            "hasTransportation": true,
            "hasAccommodations": false
          },
          "backgroundCheck": {
            "hasWorkedForCompanyBefore": false,
            "hasGovernmentClearance": false,
            "hasGovernmentTies": false
          },
          "education": [
            { "university": "University of London", "degree": "BSc Mathematics" }
          ]
        },
        "resume_url": "https://example.com/ada-resume.pdf"
      }'
```

```json 201 Created theme={null}
{
  "id": "cand_8f2a",
  "profile_id": "prof_4c1d",
  "email": "ada@example.com",
  "full_name": "Ada Lovelace",
  "email_mode": "managed",
  "created_at": "2026-08-06T11:59:00.000Z"
}
```

<Note>
  The profile above is the minimum accepted. Missing required fields return
  `422` with their dot paths and no candidate is created. Extra profile data
  helps answer more employer questions.
</Note>

## 2. Apply

```bash theme={null}
curl -sX POST https://api.autojobs.me/v1/applications \
  -H "Authorization: Bearer $TSENTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "profile_id": "prof_4c1d",
        "url": "https://jobs.lever.co/acme/123/apply"
      }'
```

```json 202 Accepted theme={null}
{
  "id": "9f1c",
  "candidate_id": "cand_8f2a",
  "candidate_name": "Ada Lovelace",
  "ats": "lever",
  "status": "queued",
  "price_usd": 0.09,
  "created_at": "2026-08-06T12:00:00.000Z"
}
```

## 3. Read the result

Poll the application, or receive a webhook and skip polling entirely.

```bash theme={null}
curl -s https://api.autojobs.me/v1/applications/9f1c \
  -H "Authorization: Bearer $TSENTA_API_KEY"
```

```json 200 OK theme={null}
{
  "id": "9f1c",
  "status": "submitted",
  "failure_reason": null,
  "price_usd": 0.09,
  "updated_at": "2026-08-06T12:01:12.000Z"
}
```

Every application ends as `submitted` or `failed`. You are charged only for
`submitted`.

<Card title="Full reference" icon="book" href="/developers/api-reference">
  Endpoints, statuses, failure reasons, review, webhooks and verification codes.
</Card>
