Jenkins Lesson 7 – Jenkins Job Overview | Dataplexa
Section I · Lesson 7

Jenkins Jobs Overview

Every single thing Jenkins does is organised into a job. But there are five different job types — and picking the wrong one means rebuilding from scratch later. This lesson gives you the full map so you always know which type to reach for.

This lesson covers

Freestyle → Pipeline → Multibranch Pipeline → Organisation Folder → Multi-configuration — and exactly when each one belongs in your workflow

Think of a Jenkins job the way you think of a recipe card. It contains the instructions for a specific task — where to get the ingredients (your code), what steps to follow (test, build, deploy), and what to do when something goes wrong. Jenkins keeps a collection of those recipe cards and runs them on demand or automatically.

The difference between job types is how much structure and flexibility each recipe card gives you. A Freestyle job is a blank index card — write anything. A Pipeline job is a printed template with labelled sections. A Multibranch Pipeline is a whole recipe binder — one set of instructions that automatically adapts to every branch in your repo.

The Five Job Types

Type 1

Freestyle Job

The original Jenkins job type. You configure everything through the UI — checkboxes, dropdowns, text fields. No code required. It's flexible but hard to version-control, hard to review, and gets messy fast on complex workflows.

Best for: Simple one-off tasks, quick experiments, teams just getting started with Jenkins.

Type 2

Pipeline Job

Your pipeline is defined in a Jenkinsfile — a text file that lives in your code repository alongside your application. Because it's code, it can be reviewed, version-controlled, and tested like any other file. This is the modern standard.

Best for: Any real project. Single-branch workflows. Teams who want pipeline-as-code.

Type 3

Multibranch Pipeline

Jenkins scans your repository and automatically creates a separate pipeline for every branch it finds. Push a new feature branch — Jenkins notices and creates a pipeline for it automatically. Delete the branch — Jenkins removes the pipeline. Zero manual job creation per branch.

Best for: Teams using feature branches, pull request workflows, GitFlow.

Type 4

Organisation Folder

Takes the Multibranch concept up one level — Jenkins scans an entire GitHub Organisation, GitLab Group, or Bitbucket Team and automatically creates Multibranch Pipelines for every repository it finds. One job to rule dozens of repos.

Best for: Large engineering orgs managing many repositories under one GitHub org.

Type 5

Multi-configuration (Matrix) Job

Runs the same job across multiple combinations of variables — for example, testing your app on Python 3.9, 3.10, and 3.11 simultaneously, across Linux and Windows. Jenkins creates a matrix of combinations and runs them all in parallel.

Best for: Cross-platform testing, multi-version compatibility checks.

Picking the Right Job — A Decision Map

When someone asks "what job type should I use?" — run through this flow top to bottom. Stop at the first box that matches your situation.

?

Managing dozens of repositories under one org?

Organisation Folder

?

Working with multiple branches or pull requests?

Multibranch Pipeline

?

Testing across multiple OS or language versions?

Multi-configuration Job

?

Single repo, want pipeline-as-code?

Pipeline Job (this is the right answer for most teams)

?

Just learning, or need a quick one-off task?

Freestyle Job

The New Item Screen Up Close

When you click New Item in Jenkins, this is the screen you see. Every job type is listed here. Here's what it looks like and what to expect from each option:

Jenkins — New Item

Enter an item name

payment-service-build

📋

Freestyle project

This is the central feature of Jenkins. Jenkins will build your project, combining any SCM with any build system.

🔁

Pipeline

Orchestrates long-running activities that can span multiple build agents. Suitable for building pipelines and/or organising complex activities that do not easily fit in a freestyle job.

🌿

Multibranch Pipeline

Creates a set of Pipeline projects according to detected branches in one SCM repository.

🏢

Organisation Folder

Scans a GitHub Organisation (or similar) for repositories and automatically creates pipelines for each one.

Seeing Your Jobs From the Terminal

The scenario:

You've just taken over a Jenkins instance from a colleague who left the company. You have no idea what jobs are configured, what type they are, or when they last ran. Before you touch anything, you want a complete inventory. This command gives you the name and type of every job on the server in one shot.

Tools used:

  • curl — command-line tool for making web requests. We use it to query the Jenkins REST API.
  • Jenkins REST API — add /api/json to any Jenkins URL to get that page's data as JSON. The tree parameter lets you specify exactly which fields you want back — keeping the response small and readable.
  • python3 -m json.tool — built into Python, formats raw JSON into readable indented output. No installation needed.
# Query the Jenkins API for all jobs — requesting only name and class (type)
# 'tree=jobs[name,_class]' tells the API to return just those two fields
# without 'tree', Jenkins returns everything which can be hundreds of lines
curl \
  --user admin:your-api-token \
  "http://jenkins-master-01:8080/api/json?tree=jobs[name,_class]" \
  | python3 -m json.tool

Where to practice: If Jenkins is running locally via Docker from Lesson 5, run this against http://localhost:8080. Use your admin username and password. No extra tools needed — curl and Python 3 come pre-installed on Mac and most Linux distros. On Windows, use Git Bash or WSL. Full API docs at jenkins.io — Remote Access API.

{
  "_class": "hudson.model.Hudson",
  "jobs": [
    {
      "name": "api-gateway-deploy",
      "_class": "org.jenkinsci.plugins.workflow.job.WorkflowJob"
    },
    {
      "name": "frontend-test",
      "_class": "hudson.model.FreeStyleProject"
    },
    {
      "name": "checkout-service",
      "_class": "org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject"
    },
    {
      "name": "payment-service-build",
      "_class": "org.jenkinsci.plugins.workflow.job.WorkflowJob"
    }
  ]
}

What just happened?

  • _class is Jenkins' internal job type identifier — it's a Java class name, which is why it looks verbose. But once you know the pattern, it's easy to read.
  • hudson.model.FreeStyleProject — this is a Freestyle job. The hudson prefix is a leftover from Jenkins' original name (Hudson). Any class starting with hudson.model is a core Jenkins type.
  • workflow.job.WorkflowJob — this is a Pipeline job. The word workflow appears because Jenkins Pipelines are built on top of the Jenkins Workflow plugin.
  • workflow.multibranch.WorkflowMultiBranchProject — this is a Multibranch Pipeline. You can immediately see checkout-service is set up to track multiple branches automatically.
  • The tree parameter kept the output clean — without it, the API returns build history, URLs, descriptions, and dozens more fields per job. Always use tree when you just need a quick inventory.

Teacher's Note

If you're starting a new project today, skip Freestyle entirely and go straight to Pipeline. Freestyle jobs can't be code-reviewed, can't be rolled back, and can't be copied between Jenkins servers cleanly. Pipeline jobs can do all three.

Practice Questions

1. Which job type automatically creates a separate pipeline for every branch in your repository?



2. A Pipeline job stores its instructions in a file that lives in your repository. What is that file called?



3. Which job type scans an entire GitHub Organisation and creates pipelines for every repository automatically?



Quiz

1. In the Jenkins API response, which _class value identifies a Freestyle job?


2. What does the tree parameter do in a Jenkins API request?


3. A team starting a new single-repo project today wants the most maintainable job type. Which should they choose?


Up Next · Lesson 8

Freestyle Jobs

You know the job types — now let's build one. Freestyle jobs hands-on, from blank screen to first successful build.