diff --git a/src/app/features/preservation/job/components/dialogs/job-delete/job-delete.dialog.ts b/src/app/features/preservation/job/components/dialogs/job-delete/job-delete.dialog.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6de54c0be305bfd1cb06a0ee62469e5a34f7cd1f
--- /dev/null
+++ b/src/app/features/preservation/job/components/dialogs/job-delete/job-delete.dialog.ts
@@ -0,0 +1,37 @@
+import {
+  ChangeDetectionStrategy,
+  Component,
+  Inject,
+} from "@angular/core";
+import {
+  MAT_DIALOG_DATA,
+  MatDialogRef,
+} from "@angular/material";
+import {preservationJobActionNameSpace} from "@app/features/preservation/job/stores/preservation-job.action";
+import {PreservationJobStateModel} from "@app/features/preservation/job/stores/preservation-job.state";
+import {PreservationJob} from "@app/generated-api";
+import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
+import {TRANSLATE} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-job-delete-dialog",
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class JobDeleteDialog extends SharedAbstractDeleteDialog<PreservationJob, PreservationJobStateModel> {
+  public readonly KEY_TITLE: string = TRANSLATE("preservation.job.dialog.delete.title");
+  public readonly KEY_MESSAGE: string = TRANSLATE("preservation.job.dialog.delete.message");
+  public readonly KEY_CONFIRM_BUTTON: string = TRANSLATE("preservation.job.dialog.delete.confirm");
+  public readonly KEY_CANCEL_BUTTON: string = TRANSLATE("preservation.job.dialog.delete.cancel");
+
+  constructor(protected store: Store,
+              protected dialogRef: MatDialogRef<JobDeleteDialog>,
+              @Inject(MAT_DIALOG_DATA) public data: DeleteDialog) {
+    super(store, dialogRef, data, LocalStateEnum.preservation_job, preservationJobActionNameSpace);
+  }
+
+}
diff --git a/src/app/features/preservation/job/components/routables/job-list/job-list.routable.ts b/src/app/features/preservation/job/components/routables/job-list/job-list.routable.ts
index 898a85fffe1ab87116b926ae6808f3f7ad8944ba..3f3d7c4f40626952a56e10d0deb30746a324a52e 100644
--- a/src/app/features/preservation/job/components/routables/job-list/job-list.routable.ts
+++ b/src/app/features/preservation/job/components/routables/job-list/job-list.routable.ts
@@ -128,7 +128,7 @@ export class JobListRoutable extends SharedAbstractListRoutable<PreservationJob,
         field: "lastUpdate.when" as any,
         header: TRANSLATE("preservation.job.table.header.when"),
         type: FieldTypeEnum.datetime,
-        order: OrderEnum.none,
+        order: OrderEnum.descending,
         isFilterable: true,
         isSortable: true,
       },
diff --git a/src/app/features/preservation/job/preservation-job.module.ts b/src/app/features/preservation/job/preservation-job.module.ts
index 15e0eb27c2325350c915efb8ec2c6e11d2eb8e71..efd8ca744afed673a5c8604362d49700df8ab788 100644
--- a/src/app/features/preservation/job/preservation-job.module.ts
+++ b/src/app/features/preservation/job/preservation-job.module.ts
@@ -1,5 +1,6 @@
 import {NgModule} from "@angular/core";
 import {JobExecutionListContainer} from "@app/features/preservation/job/components/containers/job-execution-list/job-execution-list.container";
+import {JobDeleteDialog} from "@app/features/preservation/job/components/dialogs/job-delete/job-delete.dialog";
 import {JobExecutionDetailDialog} from "@app/features/preservation/job/components/dialogs/job-execution-detail/job-execution-detail.dialog";
 import {JobFormPresentational} from "@app/features/preservation/job/components/presentationals/job-form/job-form.presentational";
 import {JobCreateRoutable} from "@app/features/preservation/job/components/routables/job-create/job-create.routable";
@@ -22,6 +23,7 @@ const containers = [
 ];
 const dialogs = [
   JobExecutionDetailDialog,
+  JobDeleteDialog,
 ];
 const presentationals = [
   JobFormPresentational,
diff --git a/src/app/shared/utils/store-dialog.util.ts b/src/app/shared/utils/store-dialog.util.ts
index d3b3d3ad95f797c8c964f6f068b11c174d6bb5a5..25ed17285ed3e7d7f3313d9adf29e10c5665eda8 100644
--- a/src/app/shared/utils/store-dialog.util.ts
+++ b/src/app/shared/utils/store-dialog.util.ts
@@ -10,6 +10,7 @@ import {AdminPreservationPolicyDeleteDialog} from "@admin/preservation-policy/co
 import {AdminSubmissionPolicyDeleteDialog} from "@admin/submission-policy/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog";
 import {AdminUserDeleteDialog} from "@admin/user/components/dialogs/admin-user-delete/admin-user-delete.dialog";
 import {Component} from "@angular/core";
+import {JobDeleteDialog} from "@app/features/preservation/job/components/dialogs/job-delete/job-delete.dialog";
 import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {DepositDeleteDialog} from "@deposit/components/dialogs/deposit-delete/deposit-delete.dialog";
 import {StringUtil} from "solidify-frontend";
@@ -54,6 +55,9 @@ export class StoreDialogUtil {
     if (state === LocalStateEnum.admin_fundingAgencies) {
       return AdminFundingAgencyDeleteDialog as Component;
     }
+    if (state === LocalStateEnum.preservation_job) {
+      return JobDeleteDialog as Component;
+    }
     throw Error(StringUtil.format(StoreDialogUtil.messageNotFound, "Delete", state));
   }
 }
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index 0afb078b600c1a8f3a948554b6aa5ed435a41ab0..339ab17ded2bfd7a37a820ceec57428f1639a27b 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -1221,6 +1221,14 @@
         "new": "Create",
         "refresh": "Refresh"
       },
+      "dialog": {
+        "delete": {
+          "cancel": "Cancel",
+          "confirm": "Yes",
+          "message": "Are you sure you want to delete this job?",
+          "title": "Confirm deletion"
+        }
+      },
       "form": {
         "enable": "Enabled",
         "jobRecurrence": "Job recurrence",
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 0afb078b600c1a8f3a948554b6aa5ed435a41ab0..333990996d94d8b3da261e1e107e1812010f33c4 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -1221,6 +1221,14 @@
         "new": "Create",
         "refresh": "Refresh"
       },
+      "dialog": {
+        "delete": {
+          "cancel": "Cancel",
+          "confirm": "Yes",
+          "message": "Are you sure you want to delete this job?",
+          "title": "Confirm deletion"
+        }
+      },
       "form": {
         "enable": "Enabled",
         "jobRecurrence": "Job recurrence",
@@ -1259,11 +1267,11 @@
         },
         "resume": {
           "fail": "Unable to resume the job",
-          "success": "Job resumed with success"
+          "success": "Job resumed successfully"
         },
         "start": {
           "fail": "Unable to start the job",
-          "success": "Job started with success"
+          "success": "Job started successfully"
         }
       },
       "state": {
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
index ddeedd3d48edcbeec88d1243bc0b6c5a34ffb1c1..d548e45c1329d5a4d2eb072851d142a2bc73f1c6 100644
--- a/src/assets/i18n/fr.json
+++ b/src/assets/i18n/fr.json
@@ -1221,6 +1221,14 @@
         "new": "Créer",
         "refresh": "Rafraichir"
       },
+      "dialog": {
+        "delete": {
+          "cancel": "Annuler",
+          "confirm": "Oui",
+          "message": "Êtes-vous sûr de vouloir supprimer ce job ?",
+          "title": "Confirmation de suppression"
+        }
+      },
       "form": {
         "enable": "Actif",
         "jobRecurrence": "Récurrence du job",