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

# Understand jobs

> What batch jobs are and when to use them on VESSL Cloud.

<Tip>
  **Create and manage jobs from the console or the CLI.** Click **Create Job** on the Jobs page for a guided form, or use `vesslctl job` to submit, monitor, terminate, and tag jobs entirely from your terminal — bring your own image, mount volumes, and set environment variables in a single command. See the [CLI cheat sheet](/cli/cheatsheet) for a one-page command reference, or [vesslctl job](/cli/commands/job) for the full flag reference.
</Tip>

A **[job](/guides/get-started/glossary#job)** runs a command to completion on a specified GPU or CPU resource. Unlike workspaces, jobs are non-interactive — submit a fine-tuning script or evaluation pipeline and let it run to completion.

Jobs are ideal for:

* Model training and fine-tuning
* Batch inference and evaluation
* Data preprocessing pipelines
* Hyperparameter sweeps (submit multiple jobs in parallel)

<div>
  <Frame>
    <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/dora/7JB7El29TavR1keb/images/vessl-cloud-jobs-list.jpg?fit=max&auto=format&n=7JB7El29TavR1keb&q=85&s=82c1993637c60f549d0cc1c4d1ccd3de" alt="VESSL Cloud Jobs list page showing job name, status, requested resources, duration, and creator" width="7680" height="4320" data-path="images/vessl-cloud-jobs-list.jpg" />
  </Frame>

  <small>Example: Jobs list page</small>
</div>

## Jobs vs Workspaces

|                 | Job                                     | Workspace                                                  |
| --------------- | --------------------------------------- | ---------------------------------------------------------- |
| **Interaction** | Non-interactive (runs a command)        | Interactive (SSH, JupyterLab)                              |
| **Lifecycle**   | Starts → runs → completes automatically | Stays running until you pause or terminate                 |
| **Billing**     | Only while running                      | While running (GPU + storage); while paused (storage only) |
| **Best for**    | Training, batch processing, sweeps      | Development, debugging, exploration                        |

## Job statuses

| Status       | Meaning                                                                                                            |
| ------------ | ------------------------------------------------------------------------------------------------------------------ |
| `scheduling` | Waiting for resources to become available. The job shows a reason like *Waiting for GPU capacity* while it queues. |
| `running`    | Your command is actively executing on the allocated resources.                                                     |
| `succeeded`  | The command exited successfully (exit code `0`). Output in mounted volumes is preserved.                           |
| `failed`     | The command exited with a non-zero code, or the container crashed (for example, `OOMKilled`). Check logs to debug. |
| `terminated` | You manually cancelled the job before it finished.                                                                 |

## Next steps

* [List batch jobs](/member/job/list) — browse, filter, and search jobs
* [Create a batch job](/member/job/create) — create from the console or CLI
* [Convert a workspace to a Job](/member/workspace/convert-to-job) — reuse a workspace's image, resources, and volumes
* [View job details](/member/job/details) — inspect command, image, environment, volumes, and tags
* [View logs](/member/job/logs) — stream container output in real time
* [Monitor metrics](/member/job/metrics) — track GPU, VRAM, CPU, and memory usage
* [Clean up jobs](/member/job/cleanup) — terminate a running job and hide finished ones from the list
* Full CLI reference: [`vesslctl job`](/cli/commands/job)
