Faits :
A.
B._, née en 1976, a bénéficié de prestations de l'assurance-chômage. En février 2013, elle a été engagée par la société A._ SA en qualité de "responsable développement marketing et communication" à compter du 5 mars suivant. Les parties au contrat de travail ont déposé une demande d'allocations de retour en emploi (ARE) auprès de l'Office cantonal de l'emploi de la République et canton de Genève (ci-après: l'OCE). Selon le formulaire de demande, signé par l'employeur, celui-ci "s'engage à conclure avec l'employée un contrat de travail à durée indéterminée [...]. A l'issue de la période d'essai, le contrat de travail ne peut être résilié pendant la période de l'ARE ou dans les 3 mois suivants que sur présentation de justes motifs au sens de l'<ref-law>". Par décision du 11 mars 2013, l'OCE a accepté la demande et indiqué notamment que les allocations seraient versées pour une durée allant du 5 mars 2013 au 4 mars 2014.
Par lettre du 7 novembre 2013, A._ SA a résilié les rapports de travail la liant à B._, avec effet au 4 mars 2014. En réponse à un courrier de l'OCE, la société a précisé par lettre du 30 avril 2014 que le licenciement était uniquement motivé par des raisons économiques et que l'échéance avait été fixée au 4 mars 2014 "afin de respecter le délai de l'ARE". Par décision du 17 juin 2014, confirmée sur opposition le 12 septembre suivant, l'OCE a demandé à l'employeur le remboursement de la totalité des allocations perçues, soit 45'000 fr. En résumé, il a considéré que l'employeur avait contrevenu à son obligation de ne pas licencier B._ pendant la durée de la mesure et qu'aucun juste motif de licenciement n'avait été invoqué.
B.
Par jugement du 20 janvier 2015, la Chambre des assurances sociales de la Cour de justice de la République et canton de Genève a rejeté le recours formé par la société contre la décision sur opposition.
C.
A._ SA interjette un recours en matière de droit public contre ce jugement, dont elle demande l'annulation en concluant principalement à l'annulation des décisions de l'OCE des 17 juin et 12 septembre 2014. Subsidiairement, elle conclut au renvoi de la cause à l'instance précédente, pour nouvelle décision, le tout sous suite de frais et dépens.
L'OCE conclut au rejet du recours, tandis que la juridiction cantonale et le Secrétariat d'Etat à l'économie (SECO) ont renoncé à se déterminer.
Le 4 mai 2015, A._ SA a déposé des observations complémentaires.

Considérant en droit :
1.
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.
Selon l'<ref-law>, le Tribunal fédéral n'examine la violation de droits fondamentaux, ainsi que celle des dispositions de droit cantonal, que si ce grief a été invoqué et motivé par le recourant. L'acte de recours doit, sous peine d'irrecevabilité, contenir un exposé succinct des droits constitutionnels ou des principes juridiques violés et préciser en quoi consiste la violation (cf. <ref-ruling> consid. 3 p. 351 s.; <ref-ruling> consid. 1.4 p. 287).
3.
Aux termes de l'art. 30 al. 1, première phrase, de la loi [de la République et canton de Genève] du 11 novembre 1983 en matière de chômage (LMC; RSG J 2 20), les chômeurs ayant épuisé leur droit aux indemnités fédérales peuvent bénéficier d'une allocation de retour en emploi s'ils retrouvent un travail salarié auprès d'une entreprise active en Suisse. L'allocation de retour en emploi est versée pendant une durée de 12 mois consécutifs au maximum pour les chômeurs de moins de 50 ans au moment du dépôt de la demande (art. 35 al. 1 let. a LMC). L'autorité compétente verse l'allocation de retour en emploi sous forme d'une participation au salaire (art. 36 al. 1 LMC). L'allocation est versée par l'intermédiaire de l'employeur, lequel doit payer les cotisations usuelles aux assurances sociales sur l'intégralité du salaire et prélever la part du travailleur (art. 36 al. 3 LMC).
Selon l'art. 32 LMC, l'octroi de la mesure est subordonné à la production, avant la prise d'emploi, d'un contrat de travail à durée indéterminée (al. 1). Si l'employeur met un terme au contrat de travail avant la fin de la durée totale de la mesure au sens de l'article 35, il est tenu de restituer à l'Etat la participation au salaire reçue. Sont réservés les cas de résiliation immédiate du contrat de travail pour justes motifs au sens de l'article 337 du code des obligations (al. 2).
4.
La recourante se prévaut de son droit à la protection de la bonne foi (art. 5 al. 3 Cst. et 9 Cst.) en lien avec un établissement inexact des faits par la juridiction cantonale (<ref-law>). Elle fait valoir qu'elle avait déjà informé l'intimé des raisons du licenciement dans un courriel du 5 novembre 2013, et non en avril 2014 seulement, comme l'auraient retenu les premiers juges. Cela étant, l'appréciation de la cour cantonale, selon laquelle l'OCE n'a pas adopté de comportement contradictoire en continuant de verser les allocations jusqu'en mars 2014, devrait être réexaminé à la lumière de l'état de fait corrigé. A cet égard, elle soutient qu'elle a fait preuve de diligence et de transparence, et que l'inaction et le mutisme de l'intimé suite à son courriel du 5 novembre 2013, lui permettaient de conclure de bonne foi à la régularité de sa situation. Par ailleurs, la société soutient que sans l'allocation elle n'aurait pas été en mesure de maintenir le poste jusqu'au mois de mars 2014.
5.
5.1. 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 s'en écarter que si les faits ont été établis de façon manifestement inexacte - notion qui correspond à celle d'arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 2.3 p. 266) - ou en violation du droit au sens de l'<ref-law> (<ref-law>), et pour autant que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>).
Il ressort effectivement des pièces versées au dossier que la recourante avait adressé un courriel à l'intimé le 5 novembre 2013, dans lequel elle indiquait expressément les motifs de licenciement de B._, à savoir la suppression du poste pour des raisons économiques. L'intimé ne conteste d'ailleurs pas la réception de ce message dans sa réponse au recours du 30 avril 2015. Cela étant, la rectification demandée n'a pas d'incidence sur l'issue du litige, comme on le verra.
5.2. Aux termes de l'art. 5 al. 3 Cst., les organes de l'État et les particuliers doivent agir de manière conforme aux règles de la bonne foi. Cela implique notamment qu'ils s'abstiennent d'adopter un comportement contradictoire ou abusif (<ref-ruling> consid. 5.3 p. 261 et les arrêts cités). De ce principe général découle notamment le droit fondamental du particulier à la protection de sa bonne foi dans ses relations avec l'État, consacré à l'art. 9 in fine Cst. (<ref-ruling> consid. 8.3.1 p. 53 et les arrêts cités). Le principe de la bonne foi protège le citoyen, à certaines conditions, dans la confiance légitime qu'il met dans les assurances reçues des autorités, notamment lorsqu'il a réglé sa conduite d'après des décisions, des déclarations ou un comportement déterminé de l'administration et qu'il a pris sur cette base des dispositions qu'il ne saurait modifier sans subir de préjudice (<ref-ruling> consid. 3.2 p. 27; <ref-ruling> consid. 2.5.1 p. 73).
En l'espèce, la recourante ne saurait tirer argument du silence de l'intimé, suite au courriel du 5 novembre 2013. En effet, elle était dûment informée des conditions auxquelles l'octroi de l'ARE était subordonné. La décision du 11 mars 2013 renvoie aux dispositions applicables de la LMC et de son règlement d'exécution. Quant au formulaire de demande d'allocations, il indique expressément que l'employeur ne doit pas résilier le contrat de travail pendant la période de l'ARE ou les trois mois suivants. Par ailleurs, le total des allocations versées jusqu'en novembre 2013 représentait 39'975 fr. 80 (novembre compris). Même si à ce moment l'OCE avait cessé de verser les allocations restantes, la société aurait tout de même été tenue de restituer les prestations déjà reçues et de payer l'intégralité du salaire de l'employée jusqu'au terme du délai de congé. Dans ces conditions, on ne voit pas quelles dispositions elle aurait prises, qu'elle ne pouvait modifier sans subir de préjudice, en raison de l'absence de réaction de l'OCE à son courriel du 5 novembre 2013. La recourante ne dit d'ailleurs rien à ce sujet (cf. <ref-law>). Par conséquent, le grief soulevé doit être écarté.
6.
Vu ce qui précède, le jugement attaqué, qui confirme la décision de restitution, n'est pas critiquable et le recours se révèle mal fondé.
7. La recourante, qui succombe, supportera les frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué aux parties, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et au Secrétariat d'Etat à l'économie (SECO).
Lucerne, le 29 juin 2015
Au nom de la Ire Cour de droit social
du Tribunal fédéral suisse
La Présidente : Leuzinger
La Greffière : Castella