diff --git a/roles/rebuilderd_worker/files/clean-repro b/roles/rebuilderd_worker/files/clean-repro
index f07b3376942e8fbcdb1aa20fc437fdfc6e3ffa3f..89ee94a0a0cd95c6ea6af7a445942e5f71d8d320 100644
--- a/roles/rebuilderd_worker/files/clean-repro
+++ b/roles/rebuilderd_worker/files/clean-repro
@@ -1,3 +1,8 @@
 #!/bin/bash -e
 
+# remove leftover chroots that are more than a week old
 find /var/lib/repro -maxdepth 1 -name '*?_?*' -mtime +6 -exec rm -rf {} +
+
+# clean the package cache but keep recently accessed files
+flock /var/lib/rebuilderd-worker/cache.lock \
+  paccache -r -q -c /var/lib/rebuilderd-worker/cache --min-atime '2 weeks ago'
diff --git a/roles/rebuilderd_worker/files/clean-repro.service b/roles/rebuilderd_worker/files/clean-repro.service
index dc89c54f693f69902b7e0629cd6696882e9351ac..9050a35d904824f462ebf46ecb32f12b2e7b63d9 100644
--- a/roles/rebuilderd_worker/files/clean-repro.service
+++ b/roles/rebuilderd_worker/files/clean-repro.service
@@ -1,6 +1,7 @@
 [Unit]
-Description=Clean up stale repro chroots
+Description=Clean up rebuilderd-worker chroots and cache
 ConditionPathExists=/var/lib/repro
+ConditionPathExists=/var/lib/rebuilderd-worker/cache
 
 [Service]
 Type=oneshot
diff --git a/roles/rebuilderd_worker/files/clean-repro.timer b/roles/rebuilderd_worker/files/clean-repro.timer
index cfa6d2438ea80ad735acb51fb1b205ee1bae097a..f3903372ac417eab89421b8e9c82096c1d50414a 100644
--- a/roles/rebuilderd_worker/files/clean-repro.timer
+++ b/roles/rebuilderd_worker/files/clean-repro.timer
@@ -1,5 +1,5 @@
 [Unit]
-Description=Daily repro cleanup
+Description=Daily rebuilderd-worker chroot and cache cleanup
 
 [Timer]
 OnCalendar=daily