Ziyech pierwsze kroki stawiał w Reaal Dronten, a następnie trafił do ASV Dronten. W końcu jednak piłkarzem zainteresowało się Heerenveen. 2 sierpnia 2012 roku, Hakim zaliczył debiut dla tej drużyny, w meczu 3 rundy kwalifikacji Ligi Europy. Debiut w lidze przypadł na 12 sierpnia i mecz z NEC. W tym sezonie Hakim rozegrał jednak tylko kilka spotkań, a przełamaniem była kampania 2013/14, gdzie na jej zakończenie został on wybrany najlepszym graczem klubu. Łącznie dla SC Heerenveen rozegrał 36 meczów i zdobył 11 bramek.

17 sierpnia 2014 zadecydowano jednak o transferze do FC Twente. Hakim mógł pzejść do Feyenoordu, ale zadecydował jednak inaczej. Sezon 2014/15, Ziyech zakończył mając na koncie najwięcej asyst w całej lidze. W przygotowaniach do sezonu 2015/16, Ziyech otrzymał opaskę kapitana klubu, ale stracił ją szybko po wywiadzie jakiego udzielił De Volkskrant. Kariera w Twente i tak upłynęła jednak bardzo pozytywnie. Pomocnik rozegrał 68 meczów i zdobył w nich 30 bramek. Hakim był liderem drużyny i gwiazdą ligi, co sprawiło, że szybko zainteresowały się nim klubu z czołówki i za granicy.

30 sierpnia 2016 roku, Hakim trafił jednak do Amsterdamu, gdzie podpisał pięcioletni kontrakt. Swój debiut w Amsterdamie, gracz zaliczył w starciu z Vitesse. Od momentu transferu do klubu, Ziyech grał regularnie i nie opuszczał praktycznie żadnego spotkania. Mimo zaliczanych bramek i asysty, Ziyech nie był jednak tą postacią, którą był w Twente. Marokańczyk miał być liderem drużyny i playmakerem jakiego Joden nie mieli od czasu Christiana Eriksena. Presja jaka ciążyła na Hakimie była jednak chyba zbyt duża, co w jakiś sposób blokowało utalentowanego pomocnika. Nic nie zmieniło się w sezonie 2017/18. Ziyech dalej strzelał i asystował, ale miał również wiele słabszych spotkań, w których był niewidoczny, a to znowu przekładało się na fatalne mecze całej drużyny.