diff --git a/aleksis/apps/resint/apps.py b/aleksis/apps/resint/apps.py
index cc51922c72bba0981accaac656535ed067adc4c0..25991708b9a64fe9f0c2daba58f643aaacaff427 100644
--- a/aleksis/apps/resint/apps.py
+++ b/aleksis/apps/resint/apps.py
@@ -1,5 +1,7 @@
 from django.apps import apps
-from django.utils.translation import gettext as _
+from django.db import models
+from django.db.models import functions
+from django.utils.translation import gettext_lazy as _
 
 from aleksis.core.util.apps import AppConfig
 
@@ -22,9 +24,17 @@ class ResintConfig(AppConfig):
     def get_all_scopes(cls) -> dict[str, str]:
         """Return all OAuth scopes and their descriptions for this app."""
         LiveDocument = apps.get_model("resint", "LiveDocument")
-        scopes = {}
-        for live_document in LiveDocument.objects.all():
-            scopes[live_document.scope] = _("Access PDF file for live document {}").format(
-                live_document.name
+        label_prefix = _("Access PDF file for live document")
+        scopes = dict(
+            LiveDocument.objects.annotate(
+                scope=functions.Concat(
+                    models.Value(f"{LiveDocument.SCOPE_PREFIX}_"),
+                    models.F("slug"),
+                    output_field=models.CharField(),
+                ),
+                label=functions.Concat(models.Value(f"{label_prefix}: "), models.F("name")),
             )
+            .values_list("scope", "label")
+            .distinct()
+        )
         return scopes
diff --git a/aleksis/apps/resint/models.py b/aleksis/apps/resint/models.py
index abf4b54c5eea893c07ba4963dd09f8b3230c3fe5..7c5973060ae0078b98cb4fc995f5eb2efccd4488 100644
--- a/aleksis/apps/resint/models.py
+++ b/aleksis/apps/resint/models.py
@@ -149,6 +149,8 @@ class Poster(ExtensibleModel):
 class LiveDocument(ExtensiblePolymorphicModel):
     """Model for periodically/automatically updated files."""
 
+    SCOPE_PREFIX = "live_document_pdf"
+
     slug = models.SlugField(
         verbose_name=_("Slug"),
         help_text=_("This will be used for the name of the current PDF file."),
@@ -196,7 +198,7 @@ class LiveDocument(ExtensiblePolymorphicModel):
     @property
     def scope(self) -> str:
         """Return OAuth2 scope name to access PDF file via API."""
-        return f"live_document_pdf_{self.slug}"
+        return f"{self.SCOPE_PREFIX}_{self.slug}"
 
     def save(self, *args, **kwargs):
         with reversion.create_revision():