diff --git a/build/lint-jobs.py b/build/lint-jobs.py
new file mode 100644
index 0000000..3edfe12
--- /dev/null
+++ b/build/lint-jobs.py
@@ -0,0 +1,42 @@
+import sys
+import glob
+import yaml
+
+
+def main():
+    passed = True
+
+    for file in glob.glob("zuul.d/container-images/*.yaml"):
+        with open(file, "r") as file:
+            configs = yaml.safe_load(file)
+
+        for config in configs:
+            if "job" in config:
+                job = config["job"]
+
+                # Check if build or upload jobs are missing 'atmosphere-buildset-registry' dependency
+                if (
+                    "build-container-image-" in job["name"]
+                    or "upload-container-image-" in job["name"]
+                ):
+                    deps = job.get("dependencies", [])
+                    if not any(
+                        dep.get("name") == "atmosphere-buildset-registry"
+                        for dep in deps
+                    ):
+                        print(
+                            f"Job '{job['name']}' is missing 'atmosphere-buildset-registry' dependency."
+                        )
+                        passed = False
+
+    if passed:
+        print(
+            "All build and upload jobs have 'atmosphere-buildset-registry' dependency."
+        )
+    else:
+        print("Jobs missing 'atmosphere-buildset-registry' dependency.")
+        sys.exit(1)
+
+
+if __name__ == "__main__":
+    main()
