diff --git a/aleksis/apps/matrix/filters.py b/aleksis/apps/matrix/filters.py
index fe145bec6db2c98d03120f959eb8c10de3f19ae4..ead6207594379d2284704b4ff93d2e726ce8a50c 100644
--- a/aleksis/apps/matrix/filters.py
+++ b/aleksis/apps/matrix/filters.py
@@ -1,5 +1,22 @@
-from aleksis.core.filters import GroupFilter
+from django.utils.translation import gettext as _
 
+from django_filters import ModelChoiceFilter, ModelMultipleChoiceFilter
+from material import Layout, Row
 
-class GroupMatrixRoomFilter(GroupFilter):
+from aleksis.core.filters import MultipleCharFilter
+from aleksis.core.models import Group, GroupType, SchoolTerm
+
+
+class GroupMatrixRoomFilter:
     """Custom filter for groups on Matrix room overview."""
+
+    school_term = ModelChoiceFilter(queryset=SchoolTerm.objects.all())
+    group_type = ModelChoiceFilter(queryset=GroupType.objects.all())
+    parent_groups = ModelMultipleChoiceFilter(queryset=Group.objects.all())
+
+    search = MultipleCharFilter(["name__icontains", "short_name__icontains"], label=_("Search"))
+
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        self.form.layout = Layout(Row("search"), Row("school_term", "group_type", "parent_groups"))
+        self.form.initial = {"school_term": SchoolTerm.current}