diff --git a/lava_helper/lava_create_jobs.py b/lava_helper/lava_create_jobs.py
index ce14d24..cfee0ed 100755
--- a/lava_helper/lava_create_jobs.py
+++ b/lava_helper/lava_create_jobs.py
@@ -22,15 +22,6 @@
 from lava_helper_configs import *
 
 
-def get_artifact_url(artifact_store_url, params, filename):
-    platform = params["platform"]
-    if params["device_type"] == "fvp":
-        platform = "fvp"
-
-    url = "{}/artifact/trusted-firmware-m/build/bin/{}".format(artifact_store_url.rstrip("/"), filename)
-    return url
-
-
 def get_recovery_url(recovery_store_url, recovery):
     return "{}/{}".format(recovery_store_url.rstrip('/'), recovery)
 
@@ -46,9 +37,6 @@
         print("No template found for config: %s" % config_key)
         sys.exit(1)
 
-    config["build_no"] = user_args.build_no
-    config["artifact_store_url"] = user_args.jenkins_build_url
-
     # Add the template folder
     config["templ"] = os.path.join(user_args.template_dir, config["templ"])
     return config
@@ -61,74 +49,58 @@
     template_loader = FileSystemLoader(searchpath=work_dir)
     template_env = Environment(loader=template_loader)
     recovery_store_url = config.get('recovery_store_url', '')
-    build_no = user_args.build_no
-    artifact_store_url = config["artifact_store_url"]
     template_file = config.pop("templ")
 
     definitions = {}
 
     for platform, recovery in config["platforms"].items():
-        if platform != user_args.platform:
+        if platform != os.getenv('TFM_PLATFORM'):
             continue
         recovery_image_url = get_recovery_url(recovery_store_url, recovery)
-        for compiler in config["compilers"]:
-            if compiler != user_args.compiler:
-                continue
-            for build_type in config["build_types"]:
-                if build_type != user_args.build_type:
-                    continue
-                for boot_type in config["boot_types"]:
-                    bl2_string = "BL2" if user_args.bl2 else "NOBL2"
-                    if boot_type != bl2_string:
-                        continue
-                    for test_name, test_dict in config["tests"].items():
-                        if "Config{}".format(test_name) != user_args.proj_config:
-                            continue
-                        params = {
-                            "device_type": config["device_type"],
-                            "job_timeout": config["job_timeout"],
-                            "action_timeout": config.get("action_timeout", ''),
-                            "monitor_timeout": config.get("monitor_timeout", ''),
-                            "poweroff_timeout": config.get("poweroff_timeout", ''),
-                            "compiler": compiler,
-                            "build_type": build_type,
-                            "build_no": build_no,
-                            "boot_type": boot_type,
-                            "name": test_name,
-                            "test": test_dict,
-                            "platform": platform,
-                            "recovery_image_url": recovery_image_url,
-                            "data_bin_offset": config.get('data_bin_offset', ''),
-                            "docker_prefix": vars(user_args).get('docker_prefix', ''),
-                            "license_variable": vars(user_args).get('license_variable', ''),
-                            "enable_code_coverage": user_args.enable_code_coverage == "TRUE",
-                            "coverage_trace_plugin": coverage_trace_plugin,
-                            "build_job_url": artifact_store_url,
-                            "cpu0_baseline": config.get("cpu0_baseline", 0),
-                            "cpu0_initvtor_s": config.get("cpu0_initvtor_s", "0x10000000"),
-                            "psa_api_suite": user_args.psa_suite,
-                        }
-                        for binary_type, binary_name in config["binaries"].items():
-                            params.update(
-                                {
-                                    "{}_url".format(binary_type): get_artifact_url(
-                                        artifact_store_url,
-                                        params,
-                                        binary_name
-                                    )
-                                }
-                            )
-                        params.update(
-                            {
-                                "job_name": "{}_{}_{}".format(os.getenv('CONFIG_NAME'), params['build_no'], params["device_type"]),
-                                "build_name": os.getenv('CONFIG_NAME')
-                            }
-                        )
+        if os.getenv("TEST_REGRESSION") == "True":
+            monitor_name = "reg_tests"
+        elif os.getenv("TEST_PSA_API") != "OFF":
+            monitor_name = "arch_tests"
+        else:
+            monitor_name = "no_reg_tests"
+        params = {
+            "job_name": "{}_{}_{}".format(os.getenv('CONFIG_NAME'), os.getenv("BUILD_NUMBER"), config["device_type"]),
+            "build_name": os.getenv('CONFIG_NAME'),
+            "device_type": config["device_type"],
+            "job_timeout": config["job_timeout"],
+            "action_timeout": config.get("action_timeout", ''),
+            "monitor_timeout": config.get("monitor_timeout", ''),
+            "poweroff_timeout": config.get("poweroff_timeout", ''),
+            "build_no": os.getenv("BUILD_NUMBER"),
+            "name": monitor_name,
+            "monitors": config['monitors'].get(monitor_name, []),
+            "platform": platform,
+            "recovery_image_url": recovery_image_url,
+            "data_bin_offset": config.get('data_bin_offset', ''),
+            "docker_prefix": vars(user_args).get('docker_prefix', ''),
+            "license_variable": vars(user_args).get('license_variable', ''),
+            "enable_code_coverage": user_args.enable_code_coverage == "TRUE",
+            "coverage_trace_plugin": coverage_trace_plugin,
+            "build_job_url": os.getenv("BUILD_URL"),
+            "cpu0_baseline": config.get("cpu0_baseline", 0),
+            "cpu0_initvtor_s": config.get("cpu0_initvtor_s", "0x10000000"),
+            "psa_api_suite": os.getenv("TEST_PSA_API") if os.getenv("TEST_PSA_API") == "IPC" else "",
+        }
+        for binary_type, binary_name in config["binaries"].items():
+            params.update(
+                {
+                    "{}_url".format(binary_type): "{}/artifact/trusted-firmware-m/build/bin/{}".format(params["build_job_url"], binary_name)
+                }
+            )
 
-                        definition = template_env.get_template(template_file).render(
-                            params
-                        )
-                        definitions.update({params["job_name"]: definition})
+        if len(params["monitors"]) == 0:
+            break
+
+        definition = template_env.get_template(template_file).render(
+            params
+        )
+        definitions.update({params["job_name"]: definition})
+
     return definitions
 
 
@@ -138,10 +110,10 @@
     # Evaluate current directory
     work_dir = os.path.abspath(os.path.dirname(__file__))
 
-    # If a single platform is requested and it exists in the platform
-    if user_args.platform and user_args.platform in config["platforms"]:
+    # If platform exists in the LAVA platforms
+    if os.getenv("TFM_PLATFORM") in config["platforms"]:
         # Only test this platform
-        platform = user_args.platform
+        platform = os.getenv("TFM_PLATFORM")
         config["platforms"] = {platform: config["platforms"][platform]}
     # Generate the output definition
     definitions = generate_test_definitions(config, work_dir, user_args)
@@ -186,13 +158,6 @@
         help="Select built-in configuration by name",
     )
     cmdargs.add_argument(
-        "--build-number",
-        dest="build_no",
-        action="store",
-        default="lastSuccessfulBuild",
-        help="JENKINS Build number selector. " "Default: lastSuccessfulBuild",
-    )
-    cmdargs.add_argument(
         "--output-dir",
         dest="lava_def_output",
         action="store",
@@ -200,18 +165,6 @@
         help="Set LAVA compatible .yaml output file",
     )
     cmdargs.add_argument(
-        "--platform",
-        dest="platform",
-        action="store",
-        help="Override platform.Only the provided one " "will be tested",
-    )
-    cmdargs.add_argument(
-        "--compiler",
-        dest="compiler",
-        action="store",
-        help="Compiler to build definitions for",
-    )
-    cmdargs.add_argument(
         "--jenkins-build-url",
         dest="jenkins_build_url",
         action="store",
@@ -225,12 +178,6 @@
         help="Set the jenkins job name",
     )
     cmdargs.add_argument(
-        "--proj-config", dest="proj_config", action="store", help="Proj config"
-    )
-    cmdargs.add_argument(
-        "--build-type", dest="build_type", action="store", help="Build type"
-    )
-    cmdargs.add_argument(
         "--docker-prefix", dest="docker_prefix", action="store", help="Prefix string for the FVP docker registry location"
     )
     cmdargs.add_argument(
@@ -239,10 +186,6 @@
     cmdargs.add_argument(
         "--enable-code-coverage", dest="enable_code_coverage", action="store", default="FALSE", help="Enable trace-base code coverage"
     )
-    cmdargs.add_argument("--bl2", dest="bl2", action="store_true", help="BL2")
-    cmdargs.add_argument(
-        "--psa-api-suite", dest="psa_suite", action="store", help="PSA API Suite name"
-    )
 
     device_type.add_argument(
         "--fvp-only",
