diff --git a/opentech/apply/funds/blocks.py b/opentech/apply/funds/blocks.py
index 41f799aace417bf4009ebb262335ba4fd56b4acd..4a759e0ef7821d9eda48f0a9af9db5ba5fcd4386 100644
--- a/opentech/apply/funds/blocks.py
+++ b/opentech/apply/funds/blocks.py
@@ -1,5 +1,6 @@
 from collections import Counter
 
+import bleach
 from django import forms
 from django.core.exceptions import ValidationError
 from django.forms.utils import ErrorList
@@ -58,6 +59,9 @@ class RichTextFieldBlock(TextFieldBlock):
         label = _('Rich text field')
         icon = 'form'
 
+    def get_searchable_content(self, value, data):
+        return bleach.clean(data, tags=[], strip=True)
+
 
 class CustomFormFieldsBlock(FormFieldsBlock):
     rich_text = RichTextFieldBlock(group=_('Fields'))
diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py
index e625a4fe4602a4bdc316d59e2fded4d770e81a5f..e66a6cd43900c88b23a83f131cd8ec2f02823368 100644
--- a/opentech/apply/funds/models.py
+++ b/opentech/apply/funds/models.py
@@ -503,7 +503,7 @@ class ApplicationSubmission(WorkflowHelpers, AbstractFormSubmission):
 
     def render_answers(self):
         context = {'fields': list()}  # type: ignore
-        for data, field, block in self.data_and_fields():
+        for data, field in self.data_and_fields():
             data = self.prepare_value(field, data)
             context['fields'].append({
                 'field': field,
diff --git a/opentech/apply/funds/tests/factories/blocks.py b/opentech/apply/funds/tests/factories/blocks.py
index 57ad29c4f525cbce9bcee26fab7a7597fe68cb34..f8ab0e08eeb57ddc878b44c3deda5c95f5315098 100644
--- a/opentech/apply/funds/tests/factories/blocks.py
+++ b/opentech/apply/funds/tests/factories/blocks.py
@@ -40,9 +40,15 @@ class FullNameBlockFactory(FormFieldBlockFactory):
         model = blocks.FullNameBlock
 
 
+class RichTextFieldBlockFactory(FormFieldBlockFactory):
+    class Meta:
+        model = blocks.RichTextFieldBlock
+
+
 CustomFormFieldsFactory = wagtail_factories.StreamFieldFactory({
     'email': EmailBlockFactory,
     'full_name': FullNameBlockFactory,
     'char': CharFieldBlockFactory,
     'radios': RadioFieldBlockFactory,
+    'rich_text': RichTextFieldBlockFactory,
 })
diff --git a/opentech/apply/funds/tests/test_models.py b/opentech/apply/funds/tests/test_models.py
index ad0fb3a5ab2b4eca28fa79aa78be036dd62c1192..e586d166f4fcf2785c0b71d32902e7feb8c952b3 100644
--- a/opentech/apply/funds/tests/test_models.py
+++ b/opentech/apply/funds/tests/test_models.py
@@ -342,13 +342,20 @@ class TestApplicationSubmission(TestCase):
             submissions,
         )
 
-    def test_richtext_is_removed_for_search(self):
+    def test_richtext_in_char_is_removed_for_search(self):
         text = 'I am text'
         rich_text = f'<b>{text}</b>'
         submission = self.make_submission(form_data__char=rich_text)
         self.assertNotIn(rich_text, submission.search_data)
         self.assertIn(text, submission.search_data)
 
+    def test_richtext_is_removed_for_search(self):
+        text = 'I am text'
+        rich_text = f'<b>{text}</b>'
+        submission = self.make_submission(form_data__rich_text=rich_text)
+        self.assertNotIn(rich_text, submission.search_data)
+        self.assertIn(text, submission.search_data)
+
     def test_choices_added_for_search(self):
         choices = ['blah', 'foo']
         submission = self.make_submission(form_fields__radios__choices=choices, form_data__radios=['blah'])
diff --git a/opentech/apply/stream_forms/blocks.py b/opentech/apply/stream_forms/blocks.py
index c7920157e6f61f2cc72d46e791992d4ae671217b..bf2eeae469563110c70b254235475e9b9d7b4e6f 100644
--- a/opentech/apply/stream_forms/blocks.py
+++ b/opentech/apply/stream_forms/blocks.py
@@ -46,7 +46,7 @@ class FormFieldBlock(StructBlock):
             **self.get_field_kwargs(struct_value))
 
     def get_searchable_content(self, value, data):
-        return bleach.clean(data, tags=[], strip=True)
+        return str(data)
 
 
 class OptionalFormFieldBlock(FormFieldBlock):
@@ -74,6 +74,9 @@ class CharFieldBlock(OptionalFormFieldBlock):
             return forms.EmailField
         return super().get_field_class(struct_value)
 
+    def get_searchable_content(self, value, data):
+        return bleach.clean(data, tags=[], strip=True)
+
 
 class TextFieldBlock(OptionalFormFieldBlock):
     default_value = TextBlock(required=False, label=_('Default value'))
@@ -83,6 +86,9 @@ class TextFieldBlock(OptionalFormFieldBlock):
     class Meta:
         label = _('Text field (multi line)')
 
+    def get_searchable_content(self, value, data):
+        return bleach.clean(data, tags=[], strip=True)
+
 
 class NumberFieldBlock(OptionalFormFieldBlock):
     default_value = CharBlock(required=False, label=_('Default value'))
@@ -102,9 +108,6 @@ class CheckboxFieldBlock(FormFieldBlock):
         label = _('Checkbox field')
         icon = 'tick-inverse'
 
-    def get_searchable_content(self, value, data):
-        return data
-
 
 class RadioButtonsFieldBlock(OptionalFormFieldBlock):
     choices = ListBlock(CharBlock(label=_('Choice')))
@@ -123,9 +126,6 @@ class RadioButtonsFieldBlock(OptionalFormFieldBlock):
                              for choice in struct_value['choices']]
         return kwargs
 
-    def get_searchable_content(self, value, data):
-        return data
-
 
 class DropdownFieldBlock(RadioButtonsFieldBlock):
     widget = forms.Select
@@ -158,6 +158,9 @@ class CheckboxesFieldBlock(OptionalFormFieldBlock):
                              for choice in struct_value['checkboxes']]
         return kwargs
 
+    def get_searchable_content(self, value, data):
+        return data
+
 
 class DatePickerInput(forms.DateInput):
     def __init__(self, *args, **kwargs):