Faits:
Faits:
A. Au mois de février 1995, A._, agissant au nom de la Clinique Y._ SA (ci-après: la Clinique), s'est adressé à X._ Sàrl (ci-après: X._), société de services dont le but est la recherche et la sélection de personnel, le recrutement de cadres ainsi que l'organisation de congrès, afin qu'elle lui envoie des dossiers se rapportant à des personnes susceptibles d'occuper le poste de directeur financier au sein de l'établissement hospitalier de la Clinique.
Les 22 février et 5 mai 1995, X._ a fait parvenir à A._ des dossiers de candidature, dont celui de B._. Lors de l'examen du dossier de celle-ci, l'administrateur délégué de la Clinique a déclaré à A._ qu'il la connaissait et qu'il s'agissait d'une candidate valable. A._ et le directeur administratif de la Clinique ont reçu B._ pour discuter du poste à repourvoir. Après un court délai de réflexion, celle-ci a déclaré ne pas être intéressée par ce poste. Le dossier de B._ n'a pas été retourné à X._, contrairement à ceux d'autres candidats qui n'avaient pas été retenus.
Par la suite, la Clinique a engagé une tierce personne comme directrice des finances, qu'elle a rapidement licenciée. Au mois de novembre 1995, l'administrateur délégué de la Clinique a informé B._ de la prochaine vacance du poste. Celle-ci l'a accepté et est entrée en fonction le 1er avril 1996.
Le 3 juin 1996, au vu de l'engagement de B._, X._ a adressé à la Clinique une facture d'un montant total net de 19'170 fr. La Clinique refusant de payer la facture de X._ au motif qu'elle ne lui avait jamais donné mandat de lui trouver un chef financier, celle-ci a fait notifier à celle-là un commandement de payer les sommes de 19'170 fr. avec intérêt à 5% l'an dès le 15 juin 1996 ainsi que de 750 fr., auquel la poursuivie a fait opposition.
Le 3 juin 1996, au vu de l'engagement de B._, X._ a adressé à la Clinique une facture d'un montant total net de 19'170 fr. La Clinique refusant de payer la facture de X._ au motif qu'elle ne lui avait jamais donné mandat de lui trouver un chef financier, celle-ci a fait notifier à celle-là un commandement de payer les sommes de 19'170 fr. avec intérêt à 5% l'an dès le 15 juin 1996 ainsi que de 750 fr., auquel la poursuivie a fait opposition.
B. Le 6 novembre 1996, X._ a adressé une requête de conciliation préalable hors compétence au Juge de paix du cercle de .... Lors d'une audience du 12 décembre 1996, celui-ci a dressé un acte de non-conciliation qui a été envoyé aux parties le 16 décembre 1996.
Le 31 janvier 1997, X._ a saisi la Cour civile du Tribunal cantonal vaudois d'une demande tendant à ce que la Clinique soit reconnue sa débitrice des sommes de 19'170 fr. avec intérêt à 5% l'an dès le 15 juin 1996, 185 fr. avec intérêt à 5% l'an dès le dépôt de la demande ainsi que 2'574 fr. 90 avec intérêt à 5% l'an dès le dépôt de la demande et qu'en conséquence, il soit donné libre cours à la poursuite en capital, intérêts et frais, l'opposition totale formulée le 13 août 1996 étant définitivement levée.
Par jugement du 21 juillet 2003, la Cour civile du Tribunal cantonal vaudois a rejeté les conclusions prises par X._. En substance, elle a estimé que les parties étaient liées par un contrat de courtage et que les conditions pour le droit à la commission étaient réunies. Considérant que les parties n'avaient pas allégué, encore moins établi, le salaire de la personne engagée et qu'elle ne pouvait suppléer à l'absence d'allégation, la cour cantonale a cependant constaté qu'il manquait un élément déterminant pour le calcul du salaire, selon la convention, de sorte que la prétention de X._ devait être rejetée.
Par jugement du 21 juillet 2003, la Cour civile du Tribunal cantonal vaudois a rejeté les conclusions prises par X._. En substance, elle a estimé que les parties étaient liées par un contrat de courtage et que les conditions pour le droit à la commission étaient réunies. Considérant que les parties n'avaient pas allégué, encore moins établi, le salaire de la personne engagée et qu'elle ne pouvait suppléer à l'absence d'allégation, la cour cantonale a cependant constaté qu'il manquait un élément déterminant pour le calcul du salaire, selon la convention, de sorte que la prétention de X._ devait être rejetée.
C. Contre ce jugement, X._ a déposé un recours en nullité au Tribunal cantonal le 12 janvier 2004 et interjeté un recours de droit public ainsi qu'un recours en réforme au Tribunal fédéral le 28 janvier 2004.
Par ordonnance du 19 février 2004, le Président de la Cour de céans a suspendu la procédure relative au recours de droit public jusqu'à droit connu sur le recours en nullité cantonal, la procédure relative au recours en réforme étant suspendue de plein droit pour la même durée.
Par arrêt du 3 mars 2004, la Chambre des recours du Tribunal cantonal vaudois a rejeté le recours en nullité formé par X._ et maintenu le jugement entrepris.
Par arrêt du 3 mars 2004, la Chambre des recours du Tribunal cantonal vaudois a rejeté le recours en nullité formé par X._ et maintenu le jugement entrepris.
D. Dans son recours en réforme au Tribunal fédéral du 28 janvier 2004, dirigé contre le jugement de la Cour civile du 21 juillet 2003, X._ (la demanderesse) conclut à la réforme du jugement entrepris en ce sens que la Clinique est reconnue sa débitrice des sommes de 19'170 fr. avec intérêt à 5% l'an dès le 15 juin 1996, 185 fr. avec intérêt à 5% l'an dès le 31 janvier 1997, 2'574 fr. 90 avec intérêt à 5% l'an dès le 31 janvier 1997, 1'705 fr. avec intérêt à 5% l'an dès le dépôt du recours et 7'770 fr. avec intérêt à 5% l'an dès le dépôt du recours, qu'il peut être donné libre cours à la poursuite en capital, intérêts et frais, l'opposition totale formulée le 13 août 1996 étant définitivement levée et que les dépens de première instance sont mis à la charge de la Clinique.
La Clinique (la défenderesse) conclut au rejet du recours dans la mesure où il est recevable, avec suite de frais et dépens.
Le recours de droit public parallèlement interjeté par X._ a été rejeté dans la mesure de sa recevabilité par arrêt de ce jour.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. 1.1 Interjeté par la demanderesse qui a été entièrement déboutée de ses conclusions en paiement et dirigé contre un jugement final rendu en dernière instance cantonale par un tribunal supérieur (art. 48 al. 1 OJ) sur une contestation civile (cf. <ref-ruling> consid. 1.1; <ref-ruling> consid. 2.1) dont la valeur litigieuse dépasse le seuil de 8'000 fr. (art. 46 OJ), le présent recours en réforme est en principe recevable, puisqu'il a été déposé en temps utile (art. 34 al. 1 let. c et 54 al. 1 OJ) et dans les formes requises (art. 55 OJ).
1.2 Saisi d'un recours en réforme, le Tribunal fédéral doit conduire son raisonnement juridique sur la base des faits contenus dans la décision attaquée, à moins que des dispositions fédérales en matière de preuve n'aient été violées, qu'il y ait lieu de rectifier des constatations reposant sur une inadvertance manifeste (art. 63 al. 2 OJ) ou qu'il faille compléter les constatations de l'autorité cantonale parce que celle-ci n'a pas tenu compte de faits pertinents et régulièrement allégués (art. 64 OJ).
Dans la mesure où une partie recourante présente un état de fait qui s'écarte de celui contenu dans la décision attaquée, sans se prévaloir avec précision de l'une des exceptions qui viennent d'être rappelées, il n'est pas possible d'en tenir compte (<ref-ruling> consid. 2.2 p. 106, 136 consid. 1.4). Il ne peut être présenté de griefs contre les constatations de fait, ni de faits ou de moyens de preuve nouveaux (art. 55 al. 1 let. c OJ). Le recours en réforme n'est pas ouvert pour remettre en cause l'appréciation des preuves et les constatations de fait qui en découlent (<ref-ruling> consid. 1.4; <ref-ruling> consid. 3).
Dans la mesure où une partie recourante présente un état de fait qui s'écarte de celui contenu dans la décision attaquée, sans se prévaloir avec précision de l'une des exceptions qui viennent d'être rappelées, il n'est pas possible d'en tenir compte (<ref-ruling> consid. 2.2 p. 106, 136 consid. 1.4). Il ne peut être présenté de griefs contre les constatations de fait, ni de faits ou de moyens de preuve nouveaux (art. 55 al. 1 let. c OJ). Le recours en réforme n'est pas ouvert pour remettre en cause l'appréciation des preuves et les constatations de fait qui en découlent (<ref-ruling> consid. 1.4; <ref-ruling> consid. 3).
2. La demanderesse reproche à la cour cantonale d'avoir violé les <ref-law> et 414 CO en ce sens qu'elle aurait mis à sa charge d'une part un fardeau supplémentaire de preuve qui n'est pas retenu par la loi, d'autre part la preuve d'un fait qui n'avait pas à être prouvé.
2.1 Pour toutes les prétentions relevant du droit privé fédéral, l'<ref-law>, en l'absence d'une disposition spéciale contraire, répartit le fardeau de la preuve et détermine, sur cette base, laquelle des parties doit assumer les conséquences de l'échec de la preuve (<ref-ruling> consid. 3.1 p. 323; <ref-ruling> consid. 2.6 p. 24; <ref-ruling> consid. 2a p. 522). Il confère à la partie chargée du fardeau de la preuve la faculté de prouver ses allégations, pour autant qu'elle ait formulé un allégué régulier selon le droit de procédure, que les faits invoqués soient juridiquement pertinents au regard du droit matériel et que l'offre de preuve correspondante satisfasse, quant à sa forme et à son contenu, aux exigences du droit cantonal (<ref-ruling> consid. 4a p. 317; <ref-ruling> consid. 3c p. 223 et les arrêts cités).
2.2 En l'espèce, au contraire de ce que la demanderesse a également vainement plaidé dans le cadre de son recours de droit public (cf. arrêt 4P.22/2004 de ce jour), c'est à juste titre que la Cour civile a retenu que le salaire de la personne engagée n'avait pas été régulièrement allégué selon le droit de procédure. Dans la mesure où la demanderesse tente de faire admettre que cet élément pouvait être déduit de certains éléments du dossier, soit en particulier des pièces produites, elle s'en prend à l'application du droit cantonal de procédure, ce qui n'est pas admissible dans le cadre d'un recours en réforme. Cela étant, à défaut d'allégation régulière, une discussion relative au fardeau de la preuve tel qu'il découle de l'<ref-law> n'entre pas en considération. Pour le surplus, l'on ne voit aucune trace de violation du droit fédéral dans le raisonnement de la Cour civile. Le moyen de la demanderesse est ainsi mal fondé et son recours doit être rejeté.
3. Compte tenu de l'issue du litige, les frais et dépens seront mis à la charge de la demanderesse (art. 156 al. 1 et 159 al. 1 OJ).

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
1. Le recours est rejeté.
2. Un émolument judiciaire de 2'000 fr. est mis à la charge de la demanderesse.
2. Un émolument judiciaire de 2'000 fr. est mis à la charge de la demanderesse.
3. La demanderesse versera à la défenderesse une indemnité de 2'500 fr. à titre de dépens.
3. La demanderesse versera à la défenderesse une indemnité de 2'500 fr. à titre de dépens.
4. Le présent arrêt est communiqué en copie aux mandataires des par-ties et à la Cour civile du Tribunal cantonal vaudois.
Lausanne, le 6 octobre 2004
Au nom de la Ire Cour civile
du Tribunal fédéral suisse
Le président: La greffière: