diff --git a/scipost_django/submissions/models/referee_invitation.py b/scipost_django/submissions/models/referee_invitation.py
index 15a8c7cce8a89e27812da23db6287c522b3325e1..3068c7db91fd9f7c2d8cd5542b509646c6ff926c 100644
--- a/scipost_django/submissions/models/referee_invitation.py
+++ b/scipost_django/submissions/models/referee_invitation.py
@@ -3,6 +3,7 @@ __license__ = "AGPL v3"
 
 
 import datetime
+from typing import TYPE_CHECKING
 
 from django.db import models
 from django.urls import reverse
@@ -14,6 +15,11 @@ from ..behaviors import SubmissionRelatedObjectMixin
 from ..managers import RefereeInvitationQuerySet
 from ..models import EditorialAssignment
 
+if TYPE_CHECKING:
+    from profiles.models import Profile
+    from scipost.models import Contributor
+    from submissions.models import Submission
+
 
 class RefereeInvitation(SubmissionRelatedObjectMixin, models.Model):
     """Invitation to an active professional scientist to referee a Submission.
@@ -25,15 +31,15 @@ class RefereeInvitation(SubmissionRelatedObjectMixin, models.Model):
 
     """
 
-    profile = models.ForeignKey(
+    profile = models.ForeignKey["Profile"](
         "profiles.Profile", on_delete=models.SET_NULL, blank=True, null=True
     )
-    submission = models.ForeignKey(
+    submission = models.ForeignKey["Submission"](
         "submissions.Submission",
         on_delete=models.CASCADE,
         related_name="referee_invitations",
     )
-    referee = models.ForeignKey(
+    referee = models.ForeignKey["Contributor"](
         "scipost.Contributor",
         related_name="referee_invitations",
         blank=True,