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.