diff --git a/app/controllers/dataset_controller.rb b/app/controllers/dataset_controller.rb
index e67f6139822b56464d5e476082f25396e5e72802..53601074b18330fbf89bdc166f0a21f4ab0089ec 100644
--- a/app/controllers/dataset_controller.rb
+++ b/app/controllers/dataset_controller.rb
@@ -166,7 +166,11 @@ class DatasetController < ApplicationController
   def add_all_documents
     SearchToDatasetWorker.perform_async(current_user.id, session[:working_dataset], params[:search_params].to_unsafe_h)
     title = Dataset.find(session[:working_dataset]).title
-    message = "<p>Documents are being added to your dataset. You will be notified when the operation is done.</p>"
+    message = "<p>Documents are being added to your dataset.</p><div class=\"completion-rate mt-2\">
+        <div class=\"progress\" id=\"progress-#{session[:working_dataset]}\">
+            <div class=\"progress-bar progress-bar-striped\" role=\"progressbar\" style=\"width: 0%;\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\">0%</div>
+        </div>
+</div>"
     render partial: "shared/notification", locals: { notif_title: title, notif_content: message.html_safe }
   end
 
diff --git a/app/javascript/channels/notification_channel.js b/app/javascript/channels/notification_channel.js
index c820626d082438fe0d42f7be779401e376d1e6f5..7b32a094d08d496133393e1f3ffd66c1196de22e 100644
--- a/app/javascript/channels/notification_channel.js
+++ b/app/javascript/channels/notification_channel.js
@@ -41,6 +41,12 @@ consumer.subscriptions.create("NotificationChannel", {
                     progress_bar.attr("aria-valuenow", data.completion)
                     progress_bar.html(`${data.completion}%`)
                 }
+                if(window.location.pathname.endsWith("/search")) {
+                    const progress_bar = $("#progress-".concat(data.dataset_id)).find('.progress-bar')
+                    progress_bar.attr("style", `width: ${data.completion}%;`)
+                    progress_bar.attr("aria-valuenow", data.completion)
+                    progress_bar.html(`${data.completion}%`)
+                }
                 break
             case "experiment_finished":
                 // $("#experiment_status").html(data.message)
diff --git a/app/workers/search_to_dataset_worker.rb b/app/workers/search_to_dataset_worker.rb
index 231529423a761d68d8681ab4de63fc1c32fdf028..f1126cf4f2d99b4fa82f5ca7174fb4d3979a89d6 100644
--- a/app/workers/search_to_dataset_worker.rb
+++ b/app/workers/search_to_dataset_worker.rb
@@ -18,6 +18,12 @@ class SearchToDatasetWorker
       res = SolrSearcher.query search_params
       numFound = res["response"]["numFound"]
       doc_ids.concat res["response"]["docs"].map { |d| d["id"] }
+      completion = (100 * doc_ids.size / numFound).to_i
+      ActionCable.server.broadcast("notifications.#{user_id}", {
+        type: "completion_rate",
+        dataset_id: dataset_id,
+        completion: completion,
+      })
     end
     existing = dataset.add_documents doc_ids
     nb_docs_added = doc_ids.size - existing.size
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 5b0a95c2a3e43ddc27eb164e4f172b29ea2c4881..cbf6d9b61551deed23948796812ebbeee1ae1688 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -1,5 +1,9 @@
+redis = { url: ENV.fetch("REDIS_URL", "redis://localhost:6379/1") }
+
 Sidekiq.configure_server do |config|
-    config.redis = {
-      url: ENV.fetch("REDIS_URL", "redis://localhost:6379/1")
-    }
-  end
\ No newline at end of file
+  config.redis = redis
+end
+
+Sidekiq.configure_client do |config|
+  config.redis = redis
+end