Faits :
A.
A._ s'est inscrite à l'Office cantonal de l'emploi du canton de Genève (ci-après: l'OCE) le 4 septembre 2019 et a sollicité des indemnités de chômage. Elle indiquait rechercher un emploi à un taux d'activité de 100 %.
Par décision du 28 janvier 2020, confirmée sur opposition le 23 juin 2020, l'OCE a suspendu le droit de l'intéressée à l'indemnité de chômage pour une durée de 34 jours à compter du 13 décembre 2019, au motif qu'elle avait refusé un emploi convenable.
B.
A._ a recouru contre la décision sur opposition devant la Chambre des assurances sociales de la Cour de justice de la République et canton de Genève. La cour cantonale a ordonné la comparution personnelle des parties le 2 novembre 2020.
Par arrêt du 29 mars 2021, la cour cantonale a admis le recours en ce sens qu'elle a ramené la durée de la suspension à 20 jours.
C.
Le Secrétariat d'État à l'économie (SECO) interjette un recours en matière de droit public contre cet arrêt, en concluant avec suite de frais et dépens à sa réforme dans le sens de la confirmation de la décision sur opposition.
A._ conclut implicitement au rejet du recours, tandis que l'OCE conclut à l'admission du recours.

Considérant en droit :
1.
D'après l'<ref-law>, ont notamment qualité pour interjeter un recours en matière de droit public au Tribunal fédéral la Chancellerie fédérale, les départements fédéraux ou, pour autant que le droit fédéral le prévoie, les unités qui leur sont subordonnées, si l'acte attaqué est susceptible de violer la législation fédérale dans leur domaine d'attributions. En l'occurrence, le SECO peut se prévaloir de la qualité pour recourir devant le Tribunal fédéral contre les jugements rendus par les tribunaux cantonaux des assurances, que lui confère l'<ref-law> (RS 837.0) dans le domaine de l'assurance-chômage.
Par ailleurs, le recours est dirigé contre un arrêt final (<ref-law>) rendu en matière de droit public (<ref-law>) par une autorité cantonale de dernière instance (art. 86 al. 1 let. d LTF). Il a été déposé dans le délai (<ref-law>) et la forme (<ref-law>) prévus par la loi. Il est donc recevable.
2.
Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si les faits ont été établis de façon manifestement inexacte - à savoir arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 2; <ref-ruling> consid. 5.1) - ou en violation du droit au sens de l'<ref-law> (<ref-law>), ce qu'il appartient à la partie recourante de démontrer par une argumentation répondant aux exigences de l'<ref-law>. Selon la jurisprudence, il y a arbitraire dans l'appréciation des preuves et l'établissement des faits lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables (<ref-ruling> consid. 2.3).
3.
Le litige porte sur le point de savoir si la cour cantonale était fondée à réduire de 34 à 20 jours la durée de la suspension du droit de l'intimée à l'indemnité de chômage prononcée par l'OCE en raison du refus d'un emploi convenable.
4.
4.1. Selon l'art. 30 al. 1 let. d LACI, le droit de l'assuré à l'indemnité est suspendu lorsqu'il est établi que celui-ci n'observe pas les prescriptions de contrôle du chômage ou les instructions de l'autorité compétente, notamment refuse un travail convenable. D'après la jurisprudence, l'art. 30 al. 1 let. d LACI trouve application non seulement lorsque l'assuré refuse expressément un travail convenable qui lui est assigné, mais également déjà lorsqu'il s'accommode du risque que l'emploi soit occupé par quelqu'un d'autre ou fait échouer la perspective de conclure un contrat de travail (<ref-ruling> consid. 3b; arrêt 8C_24/2021 du 10 juin 2021 consid. 3.1 et les références).
4.2. Selon l'<ref-law> (RS 837.02), la suspension dure de 1 à 15 jours en cas de faute légère (let. a), de 16 à 30 jours en cas de faute de gravité moyenne (let. b) et de 31 à 60 jours en cas de faute grave (let. c). Le refus d'un emploi réputé convenable sans motif valable constitue, selon l'<ref-law> en lien avec l'<ref-law>, une faute grave, laquelle est sanctionnée par une suspension du droit à l'indemnité de chômage d'une durée comprise entre 31 et 60 jours (art. 45 al. 3 let. c OACI). Même en cas de refus d'emploi, il est possible, exceptionnellement, de fixer un nombre de jours de suspension inférieur à 31 jours, en présence de circonstances particulières. Il faut cependant qu'il existe un motif valable, soit un motif qui fait apparaître la faute comme étant de gravité moyenne ou légère. Il peut s'agir, dans le cas concret, d'un motif lié à la situation subjective de la personne concernée (d'éventuels problèmes de santé, la situation familiale ou l'appartenance religieuse) ou à des circonstances objectives (par exemple la durée déterminée du poste) (<ref-ruling> consid. 3.5; BORIS RUBIN, Commentaire de la loi sur l'assurance-chômage, 2014, n° 117 ad <ref-law>).
5.
5.1. La cour cantonale a retenu que l'OCE avait, par courrier du 10 décembre 2019, invité l'intimée à présenter d'ici au 12 décembre 2019 une offre de service par internet pour un poste d'assistante à plein temps auprès de la Fondation B._. L'intimée avait toutefois mal recopié le lien internet permettant de postuler. Lorsqu'elle s'était rendu compte que le lien ne marchait pas, elle n'avait pas tenté d'atteindre sa conseillère en personnel pour le lui signaler et s'était bornée à envoyer une demande de contact LinkedIn à l'auteur de l'annonce du poste. L'intimée était en effet particulièrement occupée à rechercher un emploi dans le secteur bancaire et n'avait pas pris l'initiative de joindre la Fondation B._ par téléphone comme elle le faisait pour postuler auprès de banques. Selon les premiers juges, l'intimée avait commis une faute qui pouvait être qualifiée de "moyennement grave".
La cour cantonale a encore constaté qu'il s'agissait du premier manquement de l'intimée et que celle-ci s'était toujours montrée très active dans ses recherches d'emploi. En outre, l'intimée avait toujours respecté ses autres obligations de chômeuse. Partant, il convenait de réduire la sanction à 20 jours de suspension du droit à l'indemnité de chômage en application du principe de la proportionnalité.
5.2. Le SECO fait valoir qu'il n'existerait pas en l'occurrence de motif justifiant un écart par rapport à l'échelle de suspension en cas de faute grave (31 à 60 jours). Par conséquent, la cour cantonale aurait violé le droit fédéral (<ref-law> et <ref-law>) en réduisant la durée de suspension des indemnités de chômage de 34 à 20 jours.
5.3. En l'espèce, il n'est pas contesté par les parties que les conditions de l'art. 30 al. 1 let. d LACI sont remplies puisque l'intimée n'avait pas postulé à l'emploi assigné. A juste titre, la juridiction cantonale a retenu que l'envoi d'une requête LinkedIn à l'auteur de l'annonce du poste était une démarche largement insuffisante et que l'intimée aurait dû contacter sa conseillère en personnel pour lui signaler le problème.
L'arrêt attaqué ne fait pas état d'un motif valable qui ferait apparaître la faute de l'intimée comme étant de gravité moyenne ou légère. Les premiers juges ont motivé la réduction à 20 jours de suspension de l'indemnité de chômage uniquement par le fait que l'intimée prenait au sérieux ses obligations de chômeuse (premier manquement, chômeuse très active dans ses recherches d'emploi). Si le fait de prendre au sérieux ses obligations de chômeuse est une circonstance pertinente pour fixer la durée de la suspension, elle ne constitue pas pour autant un motif valable pour refuser un travail convenable (arrêt 8C_650/2017 du 25 juin 2018 consid. 7.4). Les circonstances prises en compte par les premiers juges ne sont pertinentes que pour fixer la durée de la suspension à l'intérieur du cadre légal. Or en réduisant la durée de la suspension à 20 jours, les premiers juges sont manifestement sortis de ce cadre, fixé entre 31 et 60 jours en cas de faute grave au sens de l'<ref-law> en lien avec l'<ref-law>. En outre, ils n'ont pas fait état d'un motif valable lié à la situation subjective de l'intimée ou à des circonstances objectives, étant précisé que de faibles chances d'obtenir le poste assigné - argument avancé par l'intimée au long de la procédure - ne constituent pas un motif valable (arrêt C 143/04 du 22 octobre 2004 consid. 3.2).
On relèvera finalement qu'en cas de faute grave sans motif valable, la valeur moyenne dans l'échelle de suspension de 31 à 60 jours prévue par l'art. 45 al. 3 let. c OACI doit être retenue comme point de départ pour l'appréciation individuelle de la faute (<ref-ruling> consid. 3c; arrêt 8C_24/2021 précité consid. 6 et les références). En l'espèce, en fixant à 34 jours la suspension du droit à l'indemnité de chômage, l'OCE s'était déjà écarté considérablement de la moyenne de 45 jours de suspension et avait ainsi dûment tenu compte, en faveur de l'intimée, des circonstances évoquées par les premiers juges.
6.
Vu ce qui précède, le recours se révèle bien fondé et l'arrêt attaqué doit être annulé.
7.
L'intimée, qui succombe, supportera les frais judiciaires (<ref-law>). Contrairement à ses conclusions, le recourant ne saurait prétendre à des dépens (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis. L'arrêt de la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, du 29 mars 2021 est annulé et la décision sur opposition de l'Office cantonal de l'emploi du 23 juin 2020 est confirmée.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de l'intimée.
3.
Le présent arrêt est communiqué aux parties, à l'Office cantonal de l'emploi et à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales.
Lucerne, le 3 août 2021
Au nom de la Ire Cour de droit social
du Tribunal fédéral suisse
Le Juge présidant : Wirthlin
La Greffière : Fretz Perrin