diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a4ad26720e837d426627dbff932588bc21380cd9..e6147128deb80e83b7d606ad1c8bf4792ab090a3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -22,6 +22,7 @@ default:
       dotenv: juggler.env
 
 stages:
+  - status-pending
   - config
   - initialize
   - compile
@@ -31,6 +32,32 @@ stages:
   - process
   - collect
   - finish
+  - status-report
+
+.status:
+  before_script: []
+  script:
+    - |
+      if [ -n "${GITHUB_SHA}" ] ; then
+        curl \
+          -X POST \
+          -H "Accept: application/vnd.github+json" \
+          -H "Authorization: token ${GITHUB_REPO_STATUS_TOKEN}" \
+          "https://api.github.com/repos/${GITHUB_REPOSITORY}/statuses/${GITHUB_SHA}" \
+          -d '{"state":"'"${STATE}"'",
+               "target_url":"'"${CI_PIPELINE_URL}"'",
+               "description":"'"${DESCRIPTION}"'",
+               "context":"eicweb/reconstruction_benchmarks"
+              }' ;
+      fi
+
+benchmarks:reconstruction:pending:
+  stage: status-pending
+  extends: .status
+  variables:
+    STATE: "pending"
+    DESCRIPTION: "The reconstruction benchmarks are running..."
+  when: always
 
 common:setup:
   stage: config
@@ -95,3 +122,24 @@ final_report:
     - echo "It was a success!"
   allow_failure: true
 
+benchmarks:reconstruction:success:
+  stage: status-report
+  needs:
+    - ["final_report"]
+  extends: .status
+  variables:
+    STATE: "success"
+    DESCRIPTION: "The reconstruction benchmarks succeeded!"
+  when: on_success
+
+benchmarks:reconstruction:failure:
+  stage: status-report
+  needs:
+    - ["final_report"]
+  extends: .status
+  variables:
+    STATE: "failure"
+    DESCRIPTION: "The reconstruction benchmarks failed!"
+  when: on_failure
+
+