diff --git a/web/components/management/candidate-lists.js b/web/components/management/candidate-lists.js
index 77681d2a3113af9b845317f17c53da1f774e7917..d525bfe02832f0e9f43a9cf1f289cbcd5dadc1dd 100644
--- a/web/components/management/candidate-lists.js
+++ b/web/components/management/candidate-lists.js
@@ -96,7 +96,18 @@ class CandidateList {
               </button>
             </div>
           </nav>
-
+          <div class="field">
+            <p class="control has-icons-right">
+              <input
+                id="list-search"
+                class="input"
+                placeholder="Rechercher une liste"
+              />
+              <span class="icon is-small is-right">
+                <i class="fas fa-search"></i>
+              </span>
+            </p>
+          </div>
           <div id="candidate-lists-list"></div>
         </div>
         <div class="column is-two-thirds">
@@ -449,6 +460,10 @@ class CandidateList {
     document.getElementById("area-search").addEventListener("keyup", (e) => {
       this.displayAreas();
     });
+
+    document.getElementById("list-search").addEventListener("keyup", (e) => {
+      this.displayCandidateLists();
+    });
   }
 
   async displayAreas() {
@@ -565,12 +580,17 @@ class CandidateList {
   async updateCandidateLists() {
     let candidateListHandler = this;
     let candidateLists = await this.CandidateListModel.getCandidateLists();
-    return candidateLists.filter(function (candidateList) {
+    candidateLists = candidateLists.filter(function (candidateList) {
       return (
         candidateList.AreaID == candidateListHandler.area.ID &&
         candidateList.RoundID == candidateListHandler.round.ID
       );
     });
+    return candidateLists.filter((candidateList) =>
+      candidateList.Name.toLowerCase().includes(
+        document.getElementById("list-search").value.toLowerCase()
+      )
+    );
   }
 
   async updateCandidates() {