diff --git a/submissions/forms.py b/submissions/forms.py
index f65ec848a6bd4079ba94c9ca06fe2cd57aae238b..6055a553ad48e67b3caf1b197b16403406443eca 100644
--- a/submissions/forms.py
+++ b/submissions/forms.py
@@ -7,6 +7,7 @@ import re
 
 from django import forms
 from django.conf import settings
+from django.contrib.postgres.search import TrigramSimilarity
 from django.db import transaction
 from django.db.models import Q
 from django.forms.formsets import ORDERING_FIELD_NAME
@@ -913,7 +914,9 @@ class RefereeSearchForm(forms.Form):
         'placeholder': 'Search for a referee in the SciPost Profiles database'}))
 
     def search(self):
-        return Profile.objects.filter(last_name__icontains=self.cleaned_data['last_name'])
+        return Profile.objects.annotate(
+            similarity=TrigramSimilarity('last_name', self.cleaned_data['last_name']),
+        ).filter(similarity__gt=0.3).order_by('-similarity')
 
 
 class ConsiderRefereeInvitationForm(forms.Form):
diff --git a/submissions/migrations/0051_auto_20181218_2201.py b/submissions/migrations/0051_auto_20181218_2201.py
new file mode 100644
index 0000000000000000000000000000000000000000..ba283d598ba89b96dd225f5b62ac40832e6a1837
--- /dev/null
+++ b/submissions/migrations/0051_auto_20181218_2201.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-12-18 21:01
+from __future__ import unicode_literals
+
+from django.db import migrations
+from django.contrib.postgres.operations import TrigramExtension
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('submissions', '0050_merge_20181207_1008'),
+    ]
+
+    operations = [
+        TrigramExtension(),
+    ]