diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 959bdad558d6be9bf1e3d58ad71a1ab77023455f..d54600b596d8c4d2e19249bc5d85645631ddb679 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -123,7 +123,7 @@ get_data:
     - mkdir "${DETECTOR_CONFIG}"
     - ln -s "${LOCAL_DATA_PATH}/sim_output" "${DETECTOR_CONFIG}/sim_output"
     - ln -s "../results" "${DETECTOR_CONFIG}/results"
-    # cache downloaded artifacts
+    - mkdir -p "$SNAKEMAKE_OUTPUT_CACHE"
     - ls -lrtha
   retry:
     max: 2
diff --git a/Snakefile b/Snakefile
index 76e03ec908efc11da6fa260b1dac2312ca27e5d8..d153297c64c2d0bb19bf544a67d875854045b6d5 100644
--- a/Snakefile
+++ b/Snakefile
@@ -24,6 +24,7 @@ def get_remote_path(path):
 rule fetch_epic:
     output:
         filepath="EPIC/{PATH}"
+    cache: True
     retries: 3
     shell: """
 xrdcp --debug 2 root://dtn-eic.jlab.org//work/eic2/{output.filepath} {output.filepath}