diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index 872e4728f93dcb41179642b7d56fda4c66fef0da..28192ebd5c0331f046a2b1a3c64b321a6e7f3493 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -290,10 +290,19 @@ class Announcement(models.Model):
     recipient = GenericForeignKey("content_type", "recipient_id")
 
     @classmethod
-    def relevant_for(cls, obj: models.Model) -> models.QuerySet:
-        """ Get a QuerySet with all announcements relevant for a certain Model (e.g. a Group) """
+    def relevant_for(cls, obj: Union[models.Model, models.QuerySet]) -> models.QuerySet:
+        """ Get a QuerySet with all announcements relevant for a certain Model (e.g. a Group)
+        or a set of models in a QuerySet.
+        """
+
+        if isinstance(obj, models.QuerySet):
+            ct = ContentType.objects.get_for_model(obj.model)
+            pks = list(obj.values_list('pk', flat=True))
+        else:
+            ct = ContentType.objects.get_for_model(obj)
+            pks = [obj.pk]
 
-        return cls.objects.filter(content_type=ContentType.objects.get_for_model(obj), recipient_id=obj.id)
+        return cls.objects.filter(content_type=ct, recipient_id__in=pks)
 
     @property
     def recipient_persons(self) -> Union[models.QuerySet, Sequence[models.Model]]: