System and method for providing enhanced recommendation based on third-party opinion

The matching tool integrates friends' participation in the online dating process by allowing them to select and suggest profiles for single users, improving recommendation accuracy and efficiency.

JP2025011199AActive Publication Date: 2025-01-23MATCH GROUP LLC
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2024176986
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-01-17
Filing Date
2024-10-09
Publication Date
2025-01-23
Estimated Expiration
2041-01-05

AI Technical Summary

Technical Problem

Traditional online matching systems rely solely on individual users to choose mates from presented recommendations, neglecting the influence of friends in the dating lives of individuals in relationships, who often participate in or advise on their friends' dating experiences.

Method used

A matching tool that allows both single and relationship-status users to participate in the online matching process, enabling friends of single users to select, suggest, or edit profiles on their behalf, and facilitates interactions based on user permissions and activity within the system.

Benefits of technology

Enhances matching recommendations by incorporating friends' preferences and activities, reducing processing and bandwidth resources while providing more personalized and effective dating suggestions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025011199000001_ABST
    Figure 2025011199000001_ABST
Patent Text Reader

Abstract

To provide an apparatus for providing enhanced recommendations based on third-party opinions.SOLUTION: An apparatus includes an interface, a memory and a processor. The processor is configured to: transmit, through the interface, a profile of a third user to a second user; receive, through the interface, a selection from the second user for the profile of the third user; in response to receiving the selection for the profile of the third user, transmit, through the interface, to the first user, a message indicating that the profile of the third user has been selected by the second user for the first user.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates generally to the field of communications, and more particularly to a system and method for providing improved recommendations based on third party opinions. [Background technology]

[0002] Network architectures developed in communication environments have become increasingly complex in recent years. Numerous protocols and configurations have been developed to cater to a diverse group of end users with different networking needs. Many of these architectures have gained significant notoriety because they can provide benefits of automation, convenience, control, and increased consumer choice. The use of computer platforms in conjunction with network architectures has enabled increased communication, collaboration, and / or interaction. For example, certain network protocols may be used to enable end users to connect online with other users who meet certain search requirements. These protocols may relate to job searches, personal search services, real estate searches, or online dating. Summary of the Invention [Problem to be solved by the invention]

[0003] The present disclosure contemplates a matching tool designed to allow both singles and those in relationships to participate in the online matching process. Users of the matching tool may register as either single or in a relationship. Users who register as single may participate in the full experience offered by the matching tool, while users who register as in a relationship may participate in the matching process by attempting to generate matches for their single friends and / or by providing suggestions to their single friends. Particular embodiments of the matching tool are described below. [Means for solving the problem]

[0004] According to one embodiment, the apparatus includes an interface and a hardware processor communicatively coupled to the interface. The interface transmits and receives data over a network. The hardware processor uses the interface to transmit a first set of profiles to a first user. The first set of profiles includes recommended profiles for a second user. The processor uses the interface to receive a selection of a profile corresponding to a third user from the first user. Additionally, the processor uses the interface to transmit a second set of profiles to a third user. The second set of profiles includes recommended profiles for the third user. The processor further uses the interface to receive a selection of a profile corresponding to the second user from the third user. In response to receiving the selection of the profile corresponding to the third user from the first user and receiving the selection of the profile corresponding to the second user from the third user, the processor enables an interaction between the second user and the third user.

[0005] According to another aspect, a method includes transmitting a first set of profiles to a first user. The first set of profiles includes recommended profiles for a second user. The method also includes receiving a selection of a profile corresponding to a third user from the first user. In addition, the method includes transmitting a second set of profiles to a third user. The second set of profiles includes recommended profiles for the third user. The method further includes receiving a selection of a profile corresponding to the second user from the third user. In response to receiving the selection of a profile corresponding to the third user from the first user and receiving the selection of a profile corresponding to the second user from the third user, the method includes enabling an interaction between the second user and the third user.

[0006] According to another embodiment, at least one computer readable medium includes a plurality of instructions, which when executed by at least one processor, cause the at least one processor to send a first set of profiles to a first user. The first set of profiles includes a recommended profile for a second user. The plurality of instructions, when executed by the at least one processor, cause the at least one processor to receive from the first user a selection of a profile corresponding to a third user. The plurality of instructions, when executed by the at least one processor, cause the at least one processor to send a second set of profiles to a third user. The second set of profiles includes a recommended profile for the third user. The plurality of instructions, when executed by the at least one processor, cause the at least one processor to receive from the third user a selection of a profile corresponding to the second user. The plurality of instructions, when executed by the at least one processor, cause the at least one processor to determine that the second user has authorized the first user to select a profile on behalf of the second user. In response to receiving from the first user a selection of a profile corresponding to a third user, receiving from the third user a selection of a profile corresponding to a second user, and determining that the second user has authorized the first user to select a profile on behalf of the second user, the instructions, when executed by the at least one processor, cause the at least one processor to enable interaction between the second user and the third user.

[0007] According to another embodiment, an apparatus includes an interface and a hardware processor communicatively coupled to the interface. The interface transmits and receives data over a network. The hardware processor uses the interface to transmit a first set of profiles to a first user. The first set of profiles corresponds to user recommendations for a second user. The processor uses the interface to receive from the first user a selection of a first profile in the first set of profiles. In response to receiving from the first user the selection of the first profile in the first set of profiles, the processor determines a second set of profiles based at least in part on the selection of the first profile from the first user. Additionally, the processor uses the interface to transmit the second set of profiles to the second user.

[0008] According to yet another embodiment, the method includes transmitting a first set of profiles to a first user. The first set of profiles corresponds to a user recommendation for a second user. The method also includes receiving a selection of a first profile of the first set of profiles from the first user. In response to receiving the selection of the first profile of the first set of profiles from the first user, the method includes determining a second set of profiles based at least in part on the selection of the first profile from the first user. The method further includes transmitting the second set of profiles to the second user.

[0009] According to a further embodiment, at least one computer-readable medium includes a plurality of instructions, which when executed by the at least one processor, cause the at least one processor to send a first set of profiles to a first user, the first set of profiles corresponding to user recommendations for a second user. The plurality of instructions, when executed by the at least one processor, cause the at least one processor to receive from the first user a selection of a first profile of the first set of profiles. In response to causing the at least one processor to receive from the first user a selection of the first profile of the first set of profiles, the plurality of instructions, when executed by the at least one processor, cause the at least one processor to determine a second set of profiles corresponding to user recommendations for the second user based at least in part on the first weight assigned to the first user and the selection of the first profile from the first user. The plurality of instructions, when executed by the at least one processor, further cause the at least one processor to send the second set of profiles to the second user. In response to causing the at least one processor to further transmit the second set of profiles to the second user, the instructions, when executed by the at least one processor, cause the at least one processor to further receive from the second user a selection of a profile from the second set of profiles. In response to causing the at least one processor to further receive from the second user a selection of a profile from the second set of profiles, the instructions, when executed by the at least one processor, cause the at least one processor to determine a third set of profiles corresponding to user recommendations for the second user based at least in part on the second weights assigned to the second user and the selection of a profile from the second set of profiles from the second user. The instructions, when executed by the at least one processor, cause the at least one processor to further transmit the third set of profiles to the second user.

[0010] Certain embodiments provide one or more technical advantages. For example, an embodiment dynamically updates a profile recommended to a user based on the activity of the user as well as the activity of the user's friends acting on the user's behalf. As another example, an embodiment provides enhanced recommendations for a user by considering not only the user's preferences but also the preferences of the user's friends acting on the user's behalf. In this manner, certain embodiments may reduce processing and bandwidth resources expended by the system in providing recommendations to a user before the user matches with other users and establishes a good relationship offline. As a further example, an embodiment allows a user's friends to provide recommendations for the user and / or select a profile on behalf of the user without downloading an application or registering with the matching system by providing the friends access to the system through rich media components embedded in text messages. Certain embodiments may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to one skilled in the art from the drawings, specification, and claims contained herein. [Brief description of the drawings]

[0011] For a more complete understanding of the present disclosure, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which: [Figure 1] FIG. 1 shows an example system. [Figure 2A] FIG. 2A illustrates a registration page of a graphical user interface generated by a profile generator of the matching tool of the system of FIG. [Figure 2B] FIG. 2B shows an example of the behavior of the profile generator of the matching tool of the system of FIG. [Diagram 3] 3A-3C show examples of behavior of a recommendation engine of a matching tool of the system of FIG. 1 in response to receiving a profile selection from a dater or one of the dater's friends. [Figure 4]4A-4C show examples of the behavior of a matching engine of a matching tool of the system of FIG. 1 in response to receiving a profile selection from a dater or one of the dater's friends. [Diagram 5] FIG. 5 shows an example of an activity feed generated by a feed generator of a matching tool of the system of FIG. [Figure 6] FIG. 6 illustrates an example of a graphical user interface generated by a chat engine of the matching tool of the system of FIG. 1 and used by a user of the system to share another user's profile in a group chat. [Figure 7] FIG. 7 shows a flowchart illustrating an example way in which a matching tool of the system of FIG. 1 may generate matches between pairs of daters within the system. [Figure 8] FIG. 8 shows a flowchart illustrating an example manner in which the matching tool of the system of FIG. 1 may generate recommendations of profiles belonging to users who are potentially compatible with a given dater who has registered with the tool. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] Embodiments of the present disclosure and its advantages can be understood by reference to FIGS. 1-8 of the drawings, in which like reference numerals are used for like and corresponding parts of the various drawings.

[0013] In a typical online matching system, a profile may be used that includes a particular set of specific attributes associated with the participants of the system to facilitate matching. As an example, in the context of online dating, a profile may include attributes such as age, education, and interests. A typical online matching system may use such attributes to identify pairs of potentially compatible daters and recommend such daters to each other. For example, a typical online matching system may generate recommendations by comparing various attributes from each dater's profile to calculate an algorithmic estimate of a compatibility score between the pair of daters. As another example, an online matching system may generate recommendations of potentially compatible profiles for a dater based on the similarity of the recommended profile to profiles that have been previously recommended to the dater and that the dater has indicated a preference for.

[0014] Although traditional online matching systems may rely on many different algorithms to generate recommendations, a common feature of such systems is the fact that daters are ultimately responsible for choosing a mate from the recommendations presented to them. For example, traditional matching systems will match a first dater with a second dater only if the first dater indicates a positive preference for the second dater and the second dater indicates a positive preference for the first dater.

[0015] However, in the real world, individuals in long-term relationships often participate in the dating lives of their friends. For example, individuals in relationships often organize blind dates for their friends, and single people often ask their friends for their opinions on dating prospects. Indeed, single people may even attempt to include non-single friends in the traditional online dating experience by sharing screen captures of profile pictures they viewed on traditional online dating systems with those non-single friends, outside of the online matching system.

[0016] Thus, the present disclosure contemplates a matching tool that adds to the experience provided by traditional online matching systems by allowing both singles and people in relationships to participate in the online matching process. Users of the matching tool may register as either single or in a relationship. Users who register as single may participate in the full experience provided by the matching tool, including activities such as receiving profile recommendations, selecting matching profiles, chatting with matches, among others. Single users invite other users, such as those who register as in a relationship, to connect with the single user, thereby becoming his / her friends in the tool. The single user may then grant various permissions to their friends, including, among others, for example, permission to select profiles on behalf of the single user, permission to chat with potential matches on behalf of the single user, and / or permission to edit the single user's profile. In certain embodiments, users may grant friend-specific permissions to their friends. For example, a user may assign a first set of permissions to a first friend and a second set of permissions to a second friend, where the second set of permissions may be different from the first set of permissions. In some embodiments, a user may assign his friends to a team or group and set group-specific permissions for the team / group. For example, a user may assign each of his friends to a group and. assign a set of permissions to all members of the group. A user who has registered with the tool as "in relationships" may connect with multiple single friends and participate in the online matching system according to the permissions set by his single friends. For example, a user who has registered with the tool as "in relationships" may participate in the online matching system by attempting to generate matches for his single friends and / or providing profile suggestions to his single friends.

[0017] FIG. 1 illustrates an example system 100. As shown in FIG. 1, the system 100 includes a matching tool 105, a user 110, a device 115, a network 120, and a database 125. As used throughout this disclosure, each of the users 110a-110e may correspond to a dater, a friend of a dater, or a user who is a dater and acts as a friend of one or more other daters. Thus, when describing actions taken by a given user 110a, this disclosure refers to the role of the user 110a at the time the user 110a performed each action. For example, this disclosure refers to the user 110a as a dater 110a if the user 110a is seeking a match for himself, interacting with potential matches, and / or performing other actions related to a dater. As another example, this disclosure refers to the user 110a as a friend 110a if the user 110a is performing actions on behalf of a single friend. Such reference to a particular role for user 110 is not intended to limit in any way the potential roles of user 110. While this disclosure contemplates any number of users 110 acting as daters and / or friends of daters, for simplicity, FIG. 1 illustrates users 110 as including a first dater 110a, a first friend 110b of first dater 110a, a second dater 110c, a first friend 110d of second dater 110c, and a second friend 110e of second dater 110c.

[0018] In general, matching tool 105 generates recommendations for first dater 110a and second dater 110c comprised of profiles 130 of other potentially compatible daters and transmits such recommendations to the daters and their registered friends for selection. In this manner, matching tool 105 enables both daters 110a and 110c and friends 110b, 110d, and 110e to participate in the online dating process for daters 110a and 110c.

[0019] As an example, consider dater 110a. Matching tool 105 generates recommendations of other potentially compatible daters and presents a set of profiles 130 belonging to potentially compatible daters to dater 110a and / or friend 110b of dater 110a for selection. For example, in a particular embodiment, friend 110b may receive a set of recommendations for first dater 110a, including profile 130c belonging to second dater 110c. In response to viewing profile 130c, friend 110b may believe that second dater 110c is likely to be a good match for first dater 110a (e.g., friend 110b may believe that first dater 110a and second dater 110c could potentially develop an offline relationship). Thus, friend 110b may select profile 130c belonging to second dater 110c in the hopes of creating a match in the system between first dater 110a and second dater 110c. If second dater 110c, friend 110d of second dater 110c, and / or friend 110e of second dater 110c similarly select profile 130a belonging to first dater 110a as a potential match for second dater 110c, matching tool 105 will create a match between first dater 110a and second dater 110c and allow for communication between the two daters. In this way, matching tool 105 allows both dater 110a and friend 110b of dater 110a to participate in the matching process for dater 110a.

[0020] As another example, in certain embodiments, rather than generating matches for first dater 110a, friends 110b of first dater 110a may be able to suggest to first dater 110 profiles that they believe first dater 110a should attempt to match with. For example, in response to receiving a set of recommendations for first dater 110a that includes profile 130c belonging to second dater 110c, friend 110b may select profile 130c, thereby generating an indication to dater 110a that friend 110b believes first dater 110a should select profile 130c (e.g., friend 110b believes first dater 110a and second dater 110c are likely to be a good match). In certain embodiments, an indication to the first dater 110a that the friend 110b believes the first dater 110a should select profile 130c may correspond to reordering the set of recommendations presented to the first dater 110a such that profile 130c is ranked higher than the set of recommendations that would have been made if the friend 110b had not selected profile 130. For example, the matching tool 105 may reorder the set of recommendations such that profile 130c is the first profile presented to the dater 110a. In some embodiments, an indication to the first dater 110a that the friend 110b believes the first dater 110a should select profile 130c may correspond to an indication placed on profile 130c presented to the first dater 110a. For example, the profile 130c presented to the first dater 110a may include an icon or a statement such as "Friend 110b thinks you and dater 110c would be a good match" or similar representation indicating that friend 110b is suggesting profile 130c to the first dater 110a. The manner in which the matching tool 105 generates recommendations for users 110 and matches users 110 with each other is described in further detail below in the description of Figures 3 and 4.

[0021] The device 115 may be used by the user 110 to receive incoming messages 185 and to send outgoing messages 190. Although FIG. 1 illustrates incoming messages 190 passing directly from the matching tool 105 to the device 115 and outgoing messages 190 passing directly from the device 115 to the matching tool 105, the present disclosure contemplates cases where the exchange of messages 185 and 190 between the matching tool 105 and the device 115 is facilitated by the network 120. For example, the matching tool 105 may send incoming messages 185 to the device 115 over the network 120. Similarly, the device 115 may send outgoing messages 190 to the matching tool 105 over the network 120.

[0022] This disclosure contemplates that input message 185 may include any message received by device 115. Similarly, output message 190 may include any message transmitted by device 115. As an example, input message 185 may include a set of profiles 130 recommended for dater 110a and received by device 115a of dater 110a and / or device 115b of friend 110b of dater 110a. In this example, output message 190 may include a selection of one or more profiles 130 transmitted by device 115a of dater 110a and / or device 115b of friend 110b of dater 110a and selected from the set of profiles 130 recommended for dater 110a. This form of input message 185 and output message 190 is described in further detail below in the description of Figures 3 and 4.

[0023] As another example, input message 185 may include a request for information from user 110 that is used by matching tool 105 to generate profile 130. Output message 190 may then include information submitted by user 110 in response to request 185. For example, input message 185 may include a request for the user's name, gender, age, birth date, and / or any other personal information, and output message 190 may include a response that includes such personal information. The manner in which matching tool 105 generates request 185 for personal information and uses response 190 to create user profile 130 is described in further detail below in the discussion of Figures 2A and 2B.

[0024] As another example, the incoming message 185 and the outgoing message 190 may include a message originating from a first user 110a or 110b and directed to a second user 110c, 110d, and / or 110e (or vice versa), and the matching tool 105 is used to facilitate interactions between the first user 110a or 110b and the second user 110c, 110d, and / or 110e. For example, the first user 110a may send a message 190 to the matching tool 105 for eventual receipt by the second user 110c. The matching tool 105 may then transmit the contents of the message 190 to the second user 110c as a message 185. Similarly, the message 190 may include a message originating from a first dater 110a and directed to a friend 110b (or vice versa). For example, input message 185 and output message 190 may include part of a chat session between any combination of a first dater 110a, a first friend 110b of first dater 110a, a second dater 110c, a first friend 110d of second dater 110c, and a second friend 110e of second dater 110c, as described in more detail below in the description of FIG. 6.

[0025] As a further example, the incoming message 185 may include information regarding the activity of the first dater 110a and / or the first dater's friends 110b with respect to the matching tool 105. For example, the incoming message 185 may include an activity feed, as described in further detail below in the description of FIG.

[0026] Device 115 includes any suitable device for communicating with components of system 100 over network 120. For example, device 115 may be or may be associated with a telephone, mobile phone, computer, laptop, tablet, server, automated assistant and / or virtual or augmented reality headset or sensor or other device. The present disclosure contemplates that device 115 may be any suitable device for receiving and sending communications over network 120. For example, device 115 may include any suitable device for receiving input messages 185 and sending output messages 190. By way of example and not limitation, device 115 may be a computer, laptop, wireless or cellular phone, electronic notebook, personal digital assistant, tablet or any other device capable of receiving, processing, storing and / or communicating information with other components of system 100. Device 115 may also include a user interface, such as a display, microphone, keypad or other suitable terminal device usable by user 110. In some embodiments, applications executed by device 115 may perform the functions described herein. In certain embodiments, the device 115 may communicate with the matching tool 105 over the network 120 via a web interface.

[0027] Network 120 facilitates communication between the various components of system 100. This disclosure contemplates network 120 to be any suitable network operable to facilitate communication between the components of system 100. Network 120 may include any interconnected system capable of transmitting voice, video, signals, data, messages, or any combination thereof. Network 120 may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), the Internet, a local, regional or global communications or computer network, such as a wired or wireless network, a corporate intranet, or any other suitable communications link operable to facilitate communication between the components.

[0028] The database 125 may store a set of user profiles 130. The database may include any number of user profiles 130a, 130b, 130c-130n. The user profile 130 defines or represents the characteristics of the user 110. The profile 130 may be available to the general public, members of the online dating system, and / or specific categories of members of the online dating system. The profile 130 may include information collected from the user 110 when the user 110 set up their online dating account or information otherwise entered into their profile by such user, as further detailed below in the description of FIG. 2B. The profile 130 may include general information such as age, height, sex, and occupation, as well as detailed information that may include the user's interests, likes / dislikes, personal feelings, and / or outlook on the world. The present disclosure contemplates that, in certain embodiments, profiles 130a and 130c assigned to daters 110a and 110c, respectively, may contain more detailed information than profiles 130b, 130d, and 130e assigned to friends 110b, 110d, and 110e of daters 110a and 110c. Profiles 130a and 130c may contain more detailed information than profiles 130b, 130d, and 130e because the information contained in profiles 130a and 130c may be used by matching tool 5 to facilitate matching between daters 110a and 110c. The information contained in profiles 130b, 130d, and 130e may also be used by daters 110a and 110c to locate and identify their friends in the online dating system.

[0029] As shown in FIG. 1, the matching tool 105 includes a processor 135, a memory 140, and an interface 142. The present disclosure contemplates that the processor 135, the memory 140, and the interface 142 are configured to perform any of the functions of the matching tool 105 described herein. In general, the matching tool 105 implements a profile generator 160, a recommendation engine 165, a matching engine 170, a feed generator 175, and a chat engine 180. The profile generator 160 is used to generate a user profile 130 stored in the database 125, as described in further detail below in the description of FIG. 2. The recommendation engine 165 may be used to generate recommendations of other potentially compatible daters 110c for a given dater 110a, as described in further detail below in the description of FIG. 3. The matching engine 170 is used to receive feedback from the user 110 of the recommendations of daters 110a and 110c provided to the user 110 by the recommendation engine 165, and to match the daters 110a and 110c based on this feedback, as described in further detail below in the description of Figure 4. The feed generator 175 is used to generate an activity feed based on the activity of the user 110 with respect to the matching tool 105, as described in further detail below in the description of Figure 5.

[0030] Chat engine 180 is used to facilitate interactions between users 110 of matching tool 105. This disclosure contemplates that chat engine 180 may be configured to facilitate any suitable type of interaction between users 110. As an example, chat engine 180 may be configured to facilitate interactions between first dater 110a and second dater 110c in response to matching engine 170 generating a match 425 between first dater 110a and second dater 110c. For example, chat engine 180 may be configured to receive a message 190 sent by dater 110a for eventual receipt by dater 110c. In response to receiving message 190, chat engine 180 may be configured to transmit the contents of message 190 to dater 110c as message 185. In certain embodiments where the second dater 110c has given the friend 110d permission to chat on his / her behalf with the second dater's 110c counterpart, the chat engine 180 may be configured to facilitate an interaction between the first dater 110a and the friend 110d of the second dater 110c in response to the matching engine 170 generating a match 425 between the first dater 110a and the second dater 110c. In some embodiments, the first dater 110a may realize that he / she is chatting with the friend 110d of the second dater 110c and not the second dater 110c. In certain embodiments, the first dater 110a may not realize that he / she is chatting with the friend 110d of the second dater 110c and not the second dater 110c.

[0031] As another example, chat engine 180 may be configured to facilitate an interaction between first dater 110a, second dater 110b, and first friend 110b who selected profile 130c belonging to second dater 110c instead of first dater 110a. For example, first friend 110b may use chat engine 180 to make an introduction between first dater 110a and second dater 110c. Here, chat engine 180 may be configured to receive message 190 sent by friend 110b to be ultimately received by both daters 110a and 110c. In response to receiving message 190, chat engine 180 may be configured to transmit the contents of message 190 as message 185 to both first dater 110a and second dater 110c. As a particular example, first friend 110b may use chat engine 180 in this manner to pose ice-breaking questions to first dater 110a and second dater 110b. In particular embodiments, friend 110b of first dater 110a may be allowed to interact with second dater 110c only if first dater 110a has set permissions 150b belonging to friend 110b to allow such interaction.

[0032] As another example, chat engine 180 may be configured to facilitate interactions between dater 10a and his / her friends 110 or a subset of his / her friends 110. For example, in certain embodiments, chat engine 180 may be configured to generate a group chat among members of a team or group of friends 110 created by dater 110a. The group chat may be accessible to members of dater 110a's team / group via a graphical user interface that may be generated by chat engine 180 and displayed on devices 115 belonging to members of dater 110a's team / group. In certain embodiments, chat engine 180 may be configured to facilitate interactions among a subset of members of the team / group belonging to dater 110a. For example, team / group members 110b, 110f, and 110g may generate a chat session with each other to discuss a profile 130 that one or more of the team / group members are considering sharing with dater 110a prior to sharing the profile 130 with dater 110a.

[0033] As another example, in certain embodiments, in response to dater 110a inviting friend 110b to connect with dater 110a in matching tool 105 (e.g., inviting friend 110b to join dater 110a's friends list), dater 110a may add friend 110b to a group chat. The present disclosure contemplates that dater 110a may create any number of group chats and assign friends to such group chats in any manner. For example, dater 110a may create a first group chat for his / her college friends, a second group chat for his / her work friends, and a third group chat for his / her closest friends. In this case, the membership of the third group chat may overlap with the membership of the first and / or second group chat. In certain embodiments, members of the group chats may share profiles 130 with each other using the group chats. This aspect of chat engine 180 is described in further detail below in the discussion of FIG. 6.

[0034] In certain embodiments, chat engine 180 may be further configured to facilitate interactions between groups of users 110 with common interests. Such groups may be created autonomously by users 110 or may be moderated groups created by a system administrator. As an example, user 110 may create a group for dachshund lovers that any other user may join. The formation of such groups may be desirable because they may provide an additional means for dater 110a and friends 110b of dater 110a to find potential matches for dater 110a.

[0035] Chat engine 180 may be a software module stored in memory 140 and executed by processor 135. An example algorithm for chat engine 180 is as follows: (1) receive message 190 sent by user 110a and directed to user 110d, (2) determine that user 110a is allowed to interact with user 110d (e.g., user 110a is a member of a team or group created by user 110d (or vice versa), user 110a and user 110d were matched by matching tool 105, user 110d is a member of a team or group belonging to user 110c matched with user 110a (or vice versa), and / or user 110a and user 110d are members of a group chat based on a common interest), and (3) send the contents of message 190 in message 185 to user 110d. While the above example provides one possible algorithm for chat engine 180, this disclosure contemplates that chat engine 180 may use any algorithm operable to facilitate interactions between users 110. For example, the algorithm used by chat engine 180 may include modifications, additions, or omissions of the example algorithms presented above. Additionally, the algorithm used by chat engine 180 may include more, fewer, or other steps as compared to the example algorithms presented above, and these steps may be performed in parallel or in any suitable order.

[0036] The processor 135 may be any electronic circuit including, but not limited to, a microprocessor, an application specific integrated circuit (ASIC), an application specific instruction set processor (ASIP), and / or a state machine that is communicatively coupled to the memory 140 and the interface 142 to control the operation of the matching tool 105. The processor 135 may be 8-bit, 16-bit, 32-bit, 64-bit, or any other suitable architecture. The processor 135 may include an arithmetic logic unit (ALU) for performing arithmetic and logical operations, processor registers that provide operands to the ALU and store results of the ALU operations, and a control unit that retrieves instructions from memory and executes them by directing the cooperative operation of the ALU, registers, and other components. The processor 135 may include other hardware and software that operate to control and process information. The processor 135 executes software stored in the memory 140 to perform any of the functions described herein. Processor 135 controls the operation and management of matching tool 105 by processing information received from network 120, devices 115, interface 142, and memory 140. Processor 135 may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the above. Processor 135 is not limited to a single processing device, but may include multiple processing devices.

[0037] Memory 140 may store data, operating software, or other information for processor 135, permanently or temporarily. Memory 140 may include any one or combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory 140 may include random access memory (RAM), read-only memory (ROM), magnetic storage, optical storage, or any other suitable information storage device or combination of these devices. Software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, software may be embodied in memory 140, a disk, a CD, or a flash drive. In certain embodiments, software may include applications executable by processor 135 to perform one or more of the functions described herein.

[0038] In certain embodiments, memory 140 may also store recommendation algorithm 145, a set of friend permissions 150, and / or a set of algorithm weights 155. Recommendation algorithm 145 is an algorithm configured to generate recommendations for dater 110a of profiles 130 belonging to other daters 110c that may be potentially compatible with a given dater 110a. This disclosure contemplates that recommendation algorithm 145 may determine potential compatibility in any suitable manner. As an example, recommendation algorithm 145 may determine that a first dater 110a and a second dater 110c are potentially compatible based on a similarity between a profile 130a belonging to the first dater 110a and a profile 130c belonging to the second dater 110c. As another example, the recommendation algorithm 145 may determine that the first dater 110a and the second dater 110c are potentially compatible based on previous profile preferences expressed by the first dater 110a and / or the second dater 110c. As a further example, the recommendation algorithm 145 may determine that the first dater 110a and the second dater 110c are potentially compatible by calculating an attractiveness score for each of the first dater 110a and the second dater 110c and determining that the first dater 110a and the second dater 110c have similar attractiveness scores under the assumption that humans are more likely to match with people of similar attractiveness. Additional details and examples of the recommendation algorithm 145 are further detailed below in the description of FIG. 3.

[0039] The set of algorithm weights 155 may include one or more weights assigned to each of the users 110a-110e. For example, a first weight 155a may be assigned to the first dater 110a, a second weight 155b may be assigned to the first friend 110b of the first dater 110a, a third weight 155c may be assigned to the second dater 110c, a fourth weight 155d may be assigned to the first friend 110d of the second dater 110c, and a fifth weight 155e may be assigned to the second friend 110e of the second dater 110c. Each weight 155a-155d may indicate the relative importance the matching algorithm 145 should place on previous profile priorities expressed by the user 110. As an example, a value of 1.0 for first weight 155a and a value of 0.5 for second weight 155b indicate that matching algorithm 145 should place twice the importance on previous profile priorities received from first dater 110a, indicating that first dater 110a would like to be matched with dater 110 associated with profile 110f, compared to previous profile priorities received from first dater 110a's friend 110b, and that friend 110b would like first dater 110a to be matched with dater 110 associated with profile 110i, when determining future profile recommendations for first dater 110a. As another example, a value of 0.8 for fourth weight 155d and a value of 0.4 for fifth weight 155e may indicate that in determining future profile recommendations for second dater 110c, matching algorithm 145 should place more weight on previous profiles received from first friend 110d of second dater 110c than previous profiles received from second friend 110e of second dater 110c. The use of weights 155 is described in further detail below in the discussion of FIG. 3.

[0040] Friend permissions 150 may include permissions granted by dater 110 to a friend indicating acceptable actions the friend may take when acting on behalf of dater 110. For example, a first dater 110a may grant permission 150b to friend 110b indicating that friend 110b may attempt to match with other users on behalf of dater 110a and interact with other daters 110c on behalf of first dater 110a. This disclosure contemplates that friend permissions 150 may include any suitable permissions that dater 110a may grant to its friends. For example, permissions 150 may include permission to select profiles 130 in an attempt to match dater 110a with other daters, to suggest profiles 130 to dater 110a, to edit profiles 130a assigned to dater 110a, to suggest editing profiles 130a assigned to dater 110a, to interact with contacts generated for dater 110a on behalf of dater 110a, to interact with contacts generated for dater 110a as friends of dater 110a, to view the behavior of dater 110a while interacting with matching tool 105, and / or any other suitable permission that dater 110a grants to friends. Use of friend permissions 150 is described in further detail below in the discussion of Figures 2-5.

[0041] Interface 142 represents any suitable device capable of receiving information from network 120, transmitting information via network 120, performing suitable processing of information, communicating with other devices, or any combination of the foregoing. For example, interface 142 may transmit messages 185 to device 115 and receive messages 190 from device 115. As another example, interface 142 may facilitate messaging between users 110, for example, by receiving a message sent by user 110a and then transmitting the message to user 110c for eventual receipt by user 110c. Interface 142 represents any port or connection, real or virtual, including any suitable hardware and / or software including protocol conversion and data processing capabilities for communicating via a LAN, WAN, or other communication system or other communication system that allows matching tool 105 to communicate with device 115 and / or other components of system 100 via network 120.

[0042] Modifications, additions, or omissions may be made to the systems described herein without departing from the scope of the invention. For example, system 100 may include any number of users 110, devices 115, networks 120, and databases 125. Components may be integrated or separated. Further, the operations described above may be performed by more, fewer, or other components. Additionally, operations may be performed using any suitable logic, including software, hardware, and / or other logic. As used herein, "each" means each member of a set or each member of a subset of a set.

[0043] 2A and 2B illustrate the process by which a matching tool 105 registers a user 110 and generates a profile 130 for the user 110. In particular embodiments, a user 110 (including both a dater and friends of the dater) registers with the matching tool 105 before receiving recommendations from the tool. The registration process may involve submitting information to the matching tool 105, which is then used by the tool to generate a profile 130 for the user.

[0044] 2A illustrates an example graphical user interface 205 that is displayed on the device 115 of the user 110 and that is used by the user 110 to initiate the process of registering with the matching tool 105. The matching tool 105 may present the graphical user interface 205 to the user 110 in response to a number of different scenarios. As an example, a user 110 interested in participating in an online dating experience may access the Internet via the device 115 and navigate to a website managed by the matching tool 105. The website may then present the graphical user interface 205 to the user 110. As another example, the user 110 may download an application to the device 115 through which the user 110 interacts with the matching tool 105. In response to accessing the application for the first time, the application may present the graphical user interface 205 to the user 110.

[0045] As another example, the matching tool 105 may send a message 185 to an existing user (e.g., 110a) requesting that the user 110a invite their friends to participate in the online dating experience. For example, the matching tool 105 may first send a message 185 to the user 110a requesting that the user 110a provide the matching tool 105 with access to the contacts stored in the device 115 of the user 110a. If the user 110a sends a response 190 to the matching tool 105 to grant the matching tool 105 access to the contacts stored in the device 115, the matching tool 105 may send a list of contacts to the device 115 from which the user 110a may select one or more of the listed acquaintances to invite to participate in the online dating experience. For example, in response to receiving the list of contacts, the user 110a may indicate to the matching tool 105 that he or she wishes to invite a first acquaintance (e.g., 110b) to register with the matching tool 105. In certain embodiments, upon receiving an indication from the user 110a indicating to invite the first contact 110b to register with the matching tool 105, the matching tool 105 may automatically generate and send to the first contact 110b a sign-up request 250 in the form of an SMS and / or email message that includes a link for the first contact 110b to access the graphical user interface 205 and begin the registration process. In some embodiments, rather than automatically sending the SMS and / or email message, the matching tool 105 may access an SMS and / or email application on the device 115 of the user 110a and auto-populate an SMS and / or email message for the first contact 110b with a link for the first contact 110b to access the graphical user interface 205. The user 110a may then select to send the auto-populated SMS and / or email message to the first contact 110b.

[0046] In certain embodiments, in addition to or instead of requesting access to the contacts stored on the device 115 of the user 110a, the matching tool 105 may request access to one or more applications installed on the device 115 through which the user 110a communicates with other individuals. For example, the matching tool 105 may request access to one or more applications such as WECHAT, WHATSAPP, LINE, FACEBOOK, INSTAGRAM, LINKEDIN, or any other application through which the user 110a communicates with other individuals. If the user 110a grants the matching tool 105 access to any of these communication applications, the matching tool 105 may access the friend list of the user 110a stored in the application and generate invitations as described above for one or more individuals stored in the friend list. These invitations are then communicated to the individuals via the application.

[0047] 2A , in certain embodiments, prior to receiving recommendations from the matching tool 105, the matching tool 105 may require the user 110 to identify themselves as either single or in a relationship. For example, the graphical user interface 205 may include a pair of interactive buttons 210 and 215, via which the user 110 may identify themselves as single or in a relationship. The user 110 may select button 210 to indicate that they are single, or the user 110 may select button 215 to indicate that they are in a relationship.

[0048] If the user 110a registers as "single," the matching tool 105 may treat the user 110a as an active dater and provide the user 110a with access to a set of features provided by the online dating experience created by the matching tool 105. For example, the dater 110a may receive profile recommendations, select profiles for matching, and chat with matches, among other things. The dater 110a may perform any of these functions on behalf of his or her single friends, if the single friends have given permission to the dater 110a. Additionally, the profile 130a belonging to the dater 110a may be viewable and selectable by other users 110.

[0049] If user 110b registers as "in a relationship," matching tool 105 may limit the activities user 110b may perform while interacting with the tool to only those activities that may be performed by friends of daters. For example, in certain embodiments, friend 110b may not receive profile recommendations for himself or herself or match himself or herself with any other user 110 (e.g., profile 130b belonging to friend 110b may not be selectable by other users 110 attempting to generate matches for daters 110a and 110c). Instead, friend 110b may act on behalf of dater 110a who has given permission 150b to friend 110b. For example, dater 110a may grant friend 110b permissions 150b including: (1) selecting a profile 130 in an attempt to match dater 110a with another user 110; (2) suggesting a profile 130 to dater 110a; (3) editing the profile 130a assigned to dater 110a; (4) suggesting edits to profile 130a to dater 110a; (5) interacting on behalf of dater 110a with matches created for dater 110a; (6) interacting as friend 110b of dater 110a with matches created for dater 110a; (7) viewing the behavior of dater 110a while interacting with matching tool 105a; and / or (8) any other appropriate permissions that dater 110a may grant to friend 110b.

[0050] The present disclosure contemplates cases where single user 110c may grant permission to friend 110d to act on his / her behalf in any suitable manner. As an example, in certain embodiments, in response to inviting friend 110d to participate in an online dating experience generated by matching tool 105 (e.g., inviting friend 110d to connect through matching tool 105 and be listed as one of user 110c's friends), single user 110c may grant friend 110d permission 150d to act on his / her behalf. The present disclosure contemplates cases where permission 150 may be friend-specific. For example, a dater 110c may grant a first friend 110d permission 150d, which may include permission to select a profile 130 in an attempt to match the dater 110c with another user 110, while the dater 110c may grant a second friend 110e permission 150e, which may include permission not to select a profile 130 in an attempt to match the dater 110c with another user 110, but to suggest the profile 130 to the dater 110c.

[0051] As another example, in certain embodiments, single user 110c may grant friend 110d permission to act on his / her behalf by inviting friend 110d to join a team and / or friend group belonging to user 110c. For example, in certain embodiments, in addition to or instead of connecting with user 110c via the matching tool 105 and inviting friend 110d to be listed as a friend in a friend list belonging to user 110c, user 110c may invite friend 110d to join a team and / or group belonging to user 110c. In certain embodiments, in response to user 110c inviting friend 110d to connect with user 110c via the matching tool 105, matching tool 105 may automatically assign friend 110d to a team / group belonging to user 110c. In certain embodiments, joining a team and / or group of user 110c may automatically grant friend 110d permission 150d to act on behalf of user 110c. For example, in certain embodiments, user 110c's team / group membership may permit friend 110d to receive recommendations of profiles 130 belonging to daters 110 who are potentially compatible with user 110c and to select from among the recommended profiles. In some embodiments, user 110c's team / group membership may permit friend 110d to act according to additional permissions 150d granted to friend 110d by user 110c. For example, as described above, dater 110c may grant friend 110d permissions 150d including: (1) selecting a profile 130 in an attempt to match dater 110c with another user 110; (2) suggesting a profile 130 to dater 110c; (3) editing the profile 130c assigned to dater 110c; (3) interacting with matches generated for dater 110c; (4) viewing the behavior of dater 110c while interacting with matching tool 105a; and / or (5) any other appropriate permissions that dater 110c may grant to friend 110d.In certain embodiments, the permissions 150 may be group specific such that all members of a user's team and / or group may be given the same permissions 150. For example, single user 110c may give first friend 110d the same permissions 150d as given to second friend 110e in response to inviting both first friend 110d and second friend 110e to join his team and / or group. In some embodiments, single user 110c may create multiple teams and / or groups and assign each team and / or group a different set of permissions 150. For example, single user 110c may assign first friend 110d to a first group and second friend 110e to a second group. Single user 110c may then assign permission 150d to the first group and permission 150e to the second group, where permission 150d and permission 150e may be different from each other.

[0052] This disclosure contemplates that daters 110a and 110c may add friends 110b, 110d, and / or 110e to their friends lists, teams, and / or groups in any suitable manner. For example, in certain embodiments, in response to user 110b receiving and accepting an invitation from dater 110a to register with matching tool 105, the tool may automatically add user 110b to dater 110a's friends list and / or team / group. Similarly, in response to dater 110a receiving and accepting an invitation from friend 110b to register with matching tool 105, the tool may automatically add friend 110b to dater 110a's friends list and / or team / group.

[0053] As another example, in certain embodiments, dater 110a may add existing user 110b to his / her friends list, team, and / or group, and existing user 110b is identified by matching tool 105 as already registered with dater 110a. For example, in response to dater 110a granting permission to matching tool 105 to access contacts stored on dater 110a's device 115a, matching tool 105 may identify contacts stored on device 115a that are already registered with matching tool 105. Similarly, in response to dater 110a granting permission to matching tool 105 to access friends lists stored in applications installed on device 115a, matching tool 105 may identify friends listed on the friends list that are already registered with matching tool 105. Matching tool 105 may identify these acquaintances / friends in any suitable manner. For example, matching tool 105 may identify a contact stored on device 115a as already registered with matching tool 105 by determining that the phone number listed for the contact is the same as the phone number provided by registered user 110. Matching tool 105 may also identify potential friends 110 of dater 110a based on the current membership of dater 110a's friends list, team, and / or group. As a specific example, matching tool 105 may determine that multiple members of dater 110a's friends list and / or team / group are also members of dater 110c's friends list and / or team / group. Based on this information, matching tool 105 may determine that dater 110c is likely a friend or acquaintance of dater 110a. Thus, matching tool 105 may suggest to dater 110a that dater 110c be added to his friends list and / or team / group.As another example, in certain embodiments, dater 110a may add existing user 110b to his / her friends list and / or team / group by searching the list of users 110 registered with matching tool 105 and inviting users 110 he / she recognizes and / or wants to add to his / her friends list and / or team / group. As a further example, in certain embodiments, dater 110a may add existing user 110b to his / her team / group by looking at the member lists of other teams / groups to which dater 110a may belong (e.g., teams / groups in which dater 110a serves as a friend of another dater) and / or by looking at the friend lists of users who belong to dater 110a's friends list (e.g., by looking at friends of friends of dater 110a).

[0054] The present disclosure contemplates the case where a given dater 110a may form any number of teams and / or groups for himself / herself. For example, dater 110a may place his / her high school friends in a first team / group and his / her college friends in a second team / group. Similarly, a given friend 110b may be placed in any number of teams / groups and / or given permission to act on behalf of any number of daters 110. For example, both dater 110a and dater 110c may place friend 110b in their respective teams / groups and / or give friend 110b permission to act on their behalf. Friend 110b may then choose to either act for dater 110a or for dater 110c when interacting with matching tool 105. The present disclosure contemplates the case where user 110b is a dater in addition to being a friend of both dater 110a and dater 110c. Thus, user 110b may choose to act on behalf of either dater 110a, dater 110c, or himself when interacting with matching tool 105. During a singles online dating session, user 110b may switch between acting on behalf of dater 110a, dater 110c, and himself. Switching between acting on behalf of dater 110a, dater 110c, or user 110b himself may be configured by simply selecting one of dater 110a, dater 110c, and user 110b from a drop-down menu displayed on device 115b by matching tool 105.

[0055] After a user 110 registers with the matching tool 105 as either "single" or "in a relationship," the matching tool 105 may send a request 185 to the user 110 requesting personal information from the user 110. Figure 2B illustrates the process by which the profile generator 160 of the matching tool 105 requests personal information from the user 110, receives the personal information from the user 110, and generates a profile 130 with the personal information.

[0056] In response to receiving an indication 220 from the dater 110a indicating that the dater 110a wishes to register as “single” with the matching tool 105, the profile generator 160 may send a request 225 to the dater 110a requesting personal information from the dater 110a. This disclosure contemplates that the request 225 may request any personal information from the dater 110a suitable for generating a profile 130a for the dater 110a and / or for identifying the dater 110a in the online dating system generated by the matching tool 105. For example, the personal information requested by the request 225 may include the dater's 110a's (1) name, (2) birth date, (3) gender, (4) height, (5) political views, (6) physical activity level, (7) religion, (8) occupation, and / or (9) star sign. The personal information requested by the request 225 may include whether the dater 110a has children or pets, whether the dater 110a smokes or drinks alcohol, and / or any other personal information suitable for identifying the dater 110a and / or facilitating matching the dater 110a with other daters 110. In certain embodiments, the request 225 may also request one or more photos of the dater 110a. In some embodiments, the request 225 may additionally ask the dater 110a to introduce himself / herself by providing one or more free-form descriptions of himself / herself. For example, the request 225 may ask the dater 110a to introduce himself / herself by using (1) text only, (2) emoji only, (3) GIF only, and / or (4) any combination of text, emoji, and / or GIF. In response to receiving the request 225, the dater 110a may transmit the personal information 230 to the matching tool 105 for use by the profile generator 160.

[0057] In certain embodiments, the profile generator 160 may use the request 225 to discover what the dater 110a is looking for in a potential mate. For example, the request 225 may ask the dater 110a to identify his or her preferences for the gender and age range of a potential mate. As another example, the request 225 may ask the dater 110a to identify the distance the dater 110a prefers potential mates to be located within. As a further example, the request 225 may ask the dater 110a to indicate how important certain factors are in finding a mate. In response to receiving such a request 225, the dater 110a may provide information 230 indicating the relative importance placed on such factors. For example, the information 230 may indicate that the dater 110a places a high importance on the religion of a potential mate and a low importance on the political views of the potential mate.

[0058] As shown in FIG. 2B, in response to receiving information 230 from dater 110a, profile generator 160 may use information 230 to generate profile 130a to be assigned to dater 110a. For example, profile generator 160 may store the responses provided by dater 110a to each request 225 for information in profile 130a. Profile generator 160 may store one or more lists of members of any team / group to which dater 110a belongs in profile 130a, in addition to dater 110a's friend list and / or dater 110a's team / group. For example, in certain embodiments, profile 130a may indicate that friend 110b belongs to dater 110a's team / group, and dater 110a is a member of dater 110c's team / group. As another example, in certain embodiments, profile 130a may indicate that friend 110b is a friend of dater 110a.

[0059] In certain embodiments, the profile generator 160 may generate the same type of profile 130 for a user 110b who has registered with the matching tool 105 as “in a relationship” as a user 110a who has registered as “single”. For example, in certain embodiments, in response to receiving an indication 235 from the friend 110b indicating that the friend 110b wishes to register with the matching tool 105 as “in a relationship”, the profile generator 160 may send a request 240 to the friend 110b requesting the same type of personal information from the friend 110b as the request 225 requested from the dater 110a. On the other hand, in some embodiments, the profile generator 160 may generate a less detailed profile 130 for the user 110b who has registered with the matching tool 105 as “in a relationship” as compared to the user 110a who has registered with the matching tool 105 as “single”. For example, in response to receiving an indication 235 from friend 110b that friend 110b wishes to be registered as “in a relationship,” profile generator 160 may send a request 240 to friend 110b requesting basic personal information from friend 110b. For example, request 240 may ask friend 110b for his / her (1) name, (2) birth date, (3) geographic location, (4) phone number, and / or (5) other personal information suitable for identifying friend 110b to other users 110. Profile generator 160 may request more detailed personal information from dater 110a compared to friend 110b because matching tool 105 may be configured to generate recommendations of other potentially compatible daters 110 for dater 110a based at least in part on information contained in profile 130a of dater 110a. On the other hand, the information contained in friend's 110b profile 130b may simply be used to help dater 110a identify friend 110b as an individual that dater 110a knows outside of the online dating experience generated by matching tool 105 and who dater 110a would like to have join his or her friends list and / or team / group.

[0060] In particular embodiments, the profile generator 160 may add information to the profile 130b belonging to the friend 110b in response to activities performed by the friend 110b on behalf of the dater 110a. For example, the profile generator 160 may determine the number of times that the friend 110b has selected a profile on behalf of the dater 110a, (2) the number of matches generated for the dater 110a as a result of the friend 110b's selections, (3) how frequently the friend 110b selects profiles for the dater 110a (e.g., number of selections per day), (4) how picky the friend 110b is in selecting profiles (e.g., a high selectivity factor indicates that the friend 110b selects only a small portion of the profiles 130 presented to the dater, and (5) the number of matches generated for the dater 110a as a result of the friend 110b's selections), and (6) how picky the friend 110b is in selecting profiles (e.g., a high selectivity factor indicates that the friend 110b selects only a small portion of the profiles 130 presented to the dater, and (7) the number of matches generated for the dater 110a as a result of the friend 110b's selections). (5) based on the selection made by the friend 110b, information may be added to the profile 130b to indicate the number of positive interactions the dater 110a has experienced (which may be automatically determined based on data captured by the matching tool 105 or may be manually entered by the dater 110a), and / or (6) any other information regarding the activity of the friend 110b during interactions with the matching tool 105. For example, the profile generator 160 may add badges to the profile 130b to indicate achievements achieved by the friend 110b. For example, the profile generator 160 may add a “super-setter-upper” badge to the profile 130b to indicate that the number of matches the friend 110b has generated for the dater 110a has exceeded a given threshold.

[0061] Profile generator 160 may be a software module stored in memory 140 and executed by processor 135. An example algorithm for profile generator 160 is as follows: (1) receive an indication 220 that dater 110a wishes to register as “single” in matching tool 105; (2) send a request 225 to dater 110a for personal details from dater 110a; (3) receive personal details 230 from dater 110a; (4) in response to receiving personal details 230 from dater 110a, generate profile 130a based on personal details 230; and (5) add profile 130a to database 125. (5) store profile 130a in database 125, (6) receive an indication 235 that friend 110b wishes to register as “in a relationship” with matching tool 105, (7) send request 240 to friend 110b for basic personal information from friend 110b, (8) receive basic personal information 245 from friend 110b, (9) generate profile 130b based on basic personal information 245 in response to receiving basic personal information 245 from friend 110b, and (10) store profile 130b in database 125. While the above example presents one possible algorithm for profile generator 160, this disclosure contemplates that profile generator 160 may use any algorithm operable to receive information from user 110 and generate profile 130 based on such information. For example, the algorithm used by profile generator 160 may include modifications, additions, or omissions to the example algorithm presented above. Additionally, the algorithms used by profile generator 160 may include more, fewer, or other steps than the exemplary algorithms presented above, and these steps may be performed in parallel or in any suitable order.

[0062] While FIG. 2B illustrates dater 110a interacting with profile generator 160 to generate a profile 130a for himself and friend 110b interacting with profile generator 160a to generate a profile 130b for himself, in certain embodiments friend 110b may interact with profile generator 160 to generate a profile 130a for dater 110a. For example, in certain embodiments, dater 110a may give friend 110b permission to edit and / or complete his profile 130a. In some embodiments, dater 110a may give friend 110b permission to suggest additions to dater 110a's profile 130a. Dater 110a may then choose whether to accept the suggested additions. As another example, after registering with matching tool 105 as "in a relationship," friend 110b may be permitted to generate a profile 130 for one or more of his friends who have not yet registered with matching tool 105. In this manner, friend 110b may be able to receive recommendations and select potential matches for his / her single friends before the single friends interact with matching tool 105. This may be desirable because it allows friend 110b to participate in an online dating experience even if none of his / her single friends have completed the registration process at the time friend 110b registers with the system. This may also be desirable because the single friends for whom friend 110b creates a profile may be more inclined to register with matching tool 105 if they know that they have already been matched with one or more daters 110a and / or 110c in the system before they sign up.

[0063] In certain embodiments, for privacy reasons, friend 110b may only be permitted by matching tool 105 to create a profile 130 for one of his or her single friends who is not yet registered with matching tool 105 if friend 110b and / or matching tool 105 first obtains the single friend's permission. For example, in certain embodiments, in response to friend 110b creating a profile 130a for his or her single friend, matching tool 105 may send a message (e.g., an email or SMS message) to the single friend requesting that the single friend approve the profile. If the single friend declines to approve the profile 130a, the profile may not be viewable, searchable, or selectable by user 110 of matching tool 105.

[0064] In certain embodiments, friend 110b may not be required to register with matching tool 105 or provide any profile information to matching tool 105 prior to interacting with matching tool 105. For example, in certain embodiments, dater 110a may allow friend 110b to select a profile 130 on behalf of dater 110a by providing friend 110b with access to an online dating system generated by matching tool 105 via a rich media component embedded in an email and / or SMS message. This rich media component provides friend 110b with one access to matching tool 105 where friend 110b is granted access to the tool as dater 110a (e.g., matching tool 105 may attribute actions taken by friend 110b to dater 110a). Allowing friends 110b to participate in the dater's 110a online matching experience without registering with or providing any profile information to the matching tool 105 may be desirable for individuals who are in a relationship and do not want to download and / or register for an online dating tool for fear of misconduct.

[0065] In certain embodiments, the matching tool 105 may enable the user 110 to share profile information on one or more social media networks. As an example, the matching tool 105 may enable the dater 110a to share his / her profile picture on the social media network. The dater 110a may wish to share his / her profile picture on the social media network to get feedback from his / her connections on the social media network and / or to have his / her connections on the social media network join the matching tool 105 to become members of the dater 110a's friends list and / or team / group. As another example, the matching tool 105 may enable the friend 110b of the dater 110a to share profile information belonging to the dater 110a on one or more social media networks. For example, the friend 110b may share a profile picture belonging to the dater 110a on the social media network to advertise that the dater 110a is looking to meet and encourage members of the social media network to join the matching tool 105 in an attempt to match with the dater 110a. In particular embodiments, friend 110b may be permitted to share profile information belonging to dater 110a on the social media network only if dater 110a has given friend 110b permission to do so (e.g., dater 110a has set permissions 150b to allow friend 110b to share profile information of dater 110a).

[0066] In particular embodiments, matching tool 105 may enable users 110 to publish and / or share links to their own profiles 130 and / or the profiles 130 of their friends. For example, matching tool 105 may enable dater 110a to publish and / or share a link to his / her profile 130a on one or more social networks, websites, email, SMS message, or any other suitable manner. As another example, matching tool 105 may enable friend 110b of dater 110a to publish and / or share a link to dater 110a's profile on one or more social networks, websites, email, SMS message, or any other suitable manner.

[0067] In certain embodiments, the matching tool 105 may charge users 110 a subscription fee. This subscription fee may be limited to users who register with the matching tool 105 as “single” and who become daters within the system, or may be charged to both users who register with the matching tool 105 as “single” and users who register with the matching tool 105 as “in a relationship.”

[0068] In certain embodiments, the matching tool 105 may enable one or more of the dater's friends list and / or team / group members to pay their own subscription fees. As an example, in certain embodiments, an interactive option may be present on the dater's profile 130, prompting the dater's friends to pay all or a portion of the cost of the dater's subscription fee. For example, the option may allow friends to pay the dater's subscription fee for a certain period of time (e.g., two months) or may allow friends to pay a portion of the dater's subscription fee (e.g., $5 of the total subscription fee). In certain embodiments, the option for friends to pay all or a portion of the dater's subscription fee cost on the matching tool 105 may be present on all dater profiles 130. In other embodiments, the dater 110 may choose to add the option to his or her profile 130. In some embodiments, the matching tool 105 may enable the dater 110 to solicit subscription contributions from his / her friends by adding a personalized message to his / her profile 130 and / or sending messages to his / her team / group members requesting contributions. In particular embodiments, if the dater 110 misses one or more payments for his / her subscription, the matching tool 105 may ask the dater's 110's friends for the missed payments. For example, the matching tool 105 may send the dater's 110's friends a message asking the friends to "help the dater 110 continue to find love" or any other suitable request for monetary contributions from the dater's 110's friends.

[0069] In certain embodiments, in addition to paying a subscription fee, the matching tool 105 may allow the dater 110 and / or friends of the dater 110 to pay for any number of a la carte features. For example, the user 110 may purchase a "power-up" to increase the visibility of his / her own profile 130 or a profile 130 belonging to one of his / her friends. As another example, by default, the connections of the user 110a (e.g., a list of friends and / or team / group members) may not be visible to another user 110d who does not have a connection with the user 110a without the payment of a fee. The user 110d may wish to pay such a fee to see the connections of the user 110a to help the user evaluate the user 110a when trying to match with the user 110a or determining whether to select the user 110a instead of one of the user 110d's friends.

[0070] 2B illustrates the profile generator 160 generating profiles 130 for daters 110a and friends 110b, the present disclosure contemplates that the profile generator 160 may generate profiles 130 for any number of users 110. Additionally, the present disclosure contemplates that modifications, additions, or omissions may be made to the profile generator 160 without departing from the scope of the present invention. For example, the present disclosure contemplates that some or all of the operations described above as being performed by the profile generator 160 may be performed by other components of the matching tool 105. Such components may be integrated or separate. Additionally, the operations may be performed using any suitable logic, including software, hardware, and / or other logic.

[0071] In certain embodiments, once dater 110a registers with matching tool 105, recommendation engine 165 may generate recommendations of other potentially compatible daters 110 for dater 110a. Figures 3A-3C show examples of the behavior of recommendation engine 165 of matching tool 105 in response to submitting a recommendation of a profile 130 and receiving a profile selection from dater 110a and / or one or more friends 110b and 110f of dater 110a. Figure 3A shows the behavior of recommendation engine 165 when presenting profile recommendations 310 for dater 110a to dater 110a, and Figures 3B and 3C show examples of the behavior of recommendation engine 165 when presenting profile recommendations 310 for dater 110a to friends of dater 110a.

[0072] As shown, Figures 3A-3C represent scenarios that may occur at a given time when recommendation algorithm 145 is configured to generate a first set of profile recommendations 310 for dater 110a. The scenario illustrated in Figure 3A may occur if, in response to sending the first set of profile recommendations 310, recommendation engine 165 receives a selection 315a from dater 110a before receiving any selections 315b and / or 315c from friends 110b and / or 110f of dater 110a. The scenario illustrated in Figure 3B may occur if, in response to sending the first set of profile recommendations 310, recommendation engine 165 receives a selection 315b from a first friend 110b before receiving any selections 315a from dater 110a or any selections 315c from a second friend 110f. The scenario shown in FIG. 3C may occur if, in response to sending a first set of profile recommendations 310, the recommendation engine 165 receives a selection 315b from a first friend 110b and a selection 351c from a second friend 110f before receiving any selection 315a from the dater 110a.

[0073] As discussed above, FIG. 3A illustrates an example operation of recommendation engine 165 in response to receiving a request 305a from dater 110a for recommendations of profiles 130 belonging to other daters 110 who are potentially compatible with dater 110a. As shown in FIG. 3A, in response to receiving request 305a, recommendation engine 165 uses recommendation algorithm 145 to generate a set of profile recommendations for dater 110a. For example, recommendation engine 165 may generate a first set of profile recommendations 310. First set of profile recommendations 310 may include any number of profiles 130 belonging to daters 110 that recommendation engine 165 has determined to be potentially compatible with dater 110a. For example, in particular embodiments, first set of profile recommendations 310 may include an ordered set of dater profiles {130g, 130h, 130i, 130j, 130k} belonging to daters 110g, 110h, 110i, 110j, and 110k, respectively, ordered according to the predicted compatibility between each dater and dater 110a (e.g., profile 130g appearing earlier in set of profiles 310 than profile 130h may indicate that dater 110a is more likely to be compatible with dater 110g than with dater 110h).

[0074] In response to receiving the first set of profile recommendations 310, dater 110a may transmit one or more selections 315a from first set of profile recommendations 310 that identify profiles 130 belonging to daters 110 with whom dater 110a would like to match. For example, after viewing profiles 130g, 130h, 130i, 130j, and 130k, dater 110a may respond favorably to the information contained in profile 130h and therefore may wish to match and / or interact with dater 110h. Thus, dater 110a may transmit selection 315a of profile 130h to matching tool 105. This disclosure contemplates that dater 110a may transmit selection 315a to matching tool 105 in any suitable manner. For example, in certain embodiments, dater 110a may submit selection 315a to matching tool 105 by interacting with a button displayed by matching tool 105 on the display of device 115a belonging to dater 110a. As another example, in certain embodiments, dater 110a may submit selection 315a to matching tool 105 by gesturing on the display of device 115a.

[0075] In response to receiving the selection 315a, the recommendation algorithm 145 may be configured to use the selection 315a to update profile recommendations that the recommendation engine 165 may send to the dater 110a in the future. For example, in response to receiving the selection 315a, the recommendation algorithm 145 may be configured to send a second set of profile recommendations 320a to the dater 110a, the second set of profile recommendations 320a being different from the first set of profile recommendations 310. As an example, in certain embodiments, the second set of profile recommendations 320a does not include profiles 130 selected by the dater 110a via the selection 315a. As another example, in certain embodiments, the second set of profile recommendations 320a does not include profiles 130 from the first set of profile recommendations 310 for which the dater 110a may have indicated a negative preference. As a further example, in certain embodiments, the second set of profile recommendations 320a may include new profiles 130 that were not presented in the first set of profile recommendations 310. The second set of profile recommendations 320a may also include a reordering of profiles 130 previously presented in the first set of profile recommendations 310. This disclosure contemplates that differences between the first set of profile recommendations 310 and the second set of profile recommendations 320a may arise as a result of selections 315a made by the dater 110a.

[0076] The present disclosure contemplates that recommendation algorithm 145 may be any algorithm configured to generate recommendations of profiles 130 belonging to other daters 110 that are potentially compatible with dater 110a. As an example, in certain embodiments, recommendation algorithm 145 may be configured to generate profile recommendations 310 and 320a based at least in part on a comparison between characteristics of profile 130a belonging to dater 110a and characteristics of profiles 130 belonging to other daters 110. For example, recommendation algorithm 145 may be configured to determine that dater 110a and dater 110g are likely to be compatible based at least in part on a high similarity between profile information 230 provided by dater 110a and profile information provided by dater 110g. Such profile information may indicate, for example, that both dater 110a and dater 110g are non-smokers who own dogs and enjoy hiking.

[0077] As another example, the recommendation algorithm 145 may be configured to generate profile recommendations 320a based at least in part on previous selections 315a made by the dater 110a. For example, the recommendation algorithm 145 may be configured to learn from previous selections 315a to identify profile characteristics that the dater 110a considers desirable in a potential mate. As a specific example, the recommendation algorithm 145 may determine that the dater 110a is prone to select profiles 130 belonging to daters 130 who indicate that the dater 130 is over 6 feet tall, is not religious, and likes cats. Thus, the recommendation algorithm 145, in determining daters 110 who are potentially compatible with the dater 110a, may place more weight on profiles 130 belonging to other daters 130 who also indicate through their profiles 130 that they are over 6 feet tall, are not religious, and like cats. As another example, recommendation algorithm 145 may be configured to analyze photos provided in profiles previously selected by dater 110a to identify the physical attributes of other daters 110 that dater 110a finds most attractive. For example, recommendation algorithm 145 may determine that dater 110a tends to select profiles 130 that include photos of daters who have dark hair and play guitars. Thus, recommendation algorithm 145 may place more weight on profiles 130 that include photos of daters who have dark hair and play guitars relative to other profiles 130 when determining daters 110 that are potentially compatible with dater 110a.

[0078] As another example, recommendation algorithm 145 may be configured to generate recommendations 320a based at least in part on previous selections 315a made by dater 110a as well as previous selections 315a made by other daters 110. For example, recommendation algorithm 145 may be configured to generate recommendation profile 320a by identifying other daters 110 with similar matching preferences as dater 110a. For example, recommendation algorithm 145 may determine that selections 315a made by dater 110a tend to be similar to selections made by different daters 110m. Thus, recommendation algorithm 145 may determine that dater 110a and dater 110m have similar preferences in profile 130. Thus, if dater 110m selects a profile 130 that dater 110a has not yet seen, recommendation algorithm 145 may present such profile to dater 110a under the assumption that there is a high probability that dater 110a will also select that profile.

[0079] As a further example, recommendation algorithm 145 may be configured to generate profile recommendations 320a based at least in part on the relative popularity of profile 130a belonging to dater 110a compared to the popularity of other profiles 130 belonging to other daters 110. For example, recommendation algorithm 145 may group users 110 based on the number of times their profiles 130 have been selected by other users. Such number may correspond to a relative attractiveness score (e.g., a profile 130 that has been selected more times may be assigned a higher attractiveness score than a profile 130 that has been selected less times). Recommendation algorithm 145 may then generate profile recommendations 310 and 320a by recommending to dater 110a profiles 130 that belong to the same attractiveness group as profile 110a belonging to dater 110a, under the assumption that people are more likely to match people with similar attractiveness.

[0080] Recommendation engine 165 may be configured to send recommendations 310 not only to dater 110a, but also to friends of dater 110a for selection from. Figure 3B shows an example of the behavior of recommendation engine 165 when presenting profile recommendations 310 for dater 110a to friends 110b of dater 110a.

[0081] 3B, in response to receiving a request 305b from a first friend 110b requesting recommendations of profiles 130 belonging to other daters 110 with potential compatibility with dater 110a, recommendation engine 165 uses recommendation algorithm 145 to generate a first set of profile recommendations 310. The present disclosure contemplates that recommendation engine 165 may send the same first set of profile recommendations 310 to friend 110b as it sends to dater 110a. As discussed above, first set of profile recommendations 310 may include an ordered set of dater profiles {130g, 130h, 130i, 130j, 130k}, each belonging to dater 110g, 110h, 110i, 110j, 110k, ordered according to the predicted compatibility between each dater and dater 110a. (For example, the recommendation engine 165 may present to friend 110b a recommendation of a dater 110 that the recommendation algorithm 145 determines is most likely to be compatible with dater 110a before presenting recommendations of other daters 110 that the recommendation algorithm 145 determines are less compatible with dater a).

[0082] In response to receiving the first set of profile recommendations 310, first friend 110b may send one or more selections 315b from first set of profile recommendations 310 that identify profiles 130 belonging to daters 110 with whom he or she believes dater 110a would like to be matched. For example, after viewing profiles 130g, 130h, 130i, 130j, and 130k, first friend 110b may believe that dater 110a and dater 110i would be a good match for each other. Thus, dater 110a may send selection 315b of profile 130i to matching tool 105.

[0083] In response to receiving a selection 315b from a friend 110b, the behavior of the recommendation algorithm 145 may depend on the permissions that the dater 110a has given to the friend 110b. As an example, the permissions 150b may indicate to the first friend 110b that the dater 110a may select the profile 130 as a suggestion for the dater 110a, but may not select the profile 130 as a potential match for the dater 110a. Thus, in response to receiving the selection 315b, the recommendation algorithm 145 reorders the first set of profile recommendations 310 to form a third set of profile recommendations 320b such that the profile 130 associated with the selection 315b comes earlier in the third set of profile recommendations 320b than it did in the first set of profile recommendations 310. For example, if a first friend 110b sent a selection 315b of profile 130i to the recommendation engine 165, the recommendation algorithm 145 may send to the dater 110a a third set of profile recommendations 320b that includes the same dater profiles 130 (i.e., profiles 130g, 130h, 130i, 130j, 130k) as in the first set of profile recommendations 310, but reordered so that profile 130i comes first (e.g., the next time the dater 110a requests that the recommendation engine 165 send profile recommendations for the dater 110a, the recommendation engine 165 may present to the dater 110a the profiles 130 suggested to the dater 110a by the friend 110b before presenting other profiles 130 that have not been suggested to the dater 110a).

[0084] In certain embodiments, in response to receiving a selection 315b from the friend 110b, the recommendation engine 165 may be configured to send a third set of profile recommendations 320b to the dater 110b, including an indication on the profile 130 selected as a selection 315b by the friend 110b indicating that the friend 110b has suggested the profile 130 to the dater 110a. For example, the recommendation engine 165 may be configured to include a comment on the recommended profile 130 such as "Friend 110b thinks you two are a great match" or a similar wording indicating that the friend 110b has suggested the profile 130 to the dater 110a. If multiple friends 110b have suggested a given profile 130 to the dater 110a, the recommendation engine 165 may be configured to include an indication on the profile of the number of friends who recommended the profile.

[0085] In some embodiments, the permission 150b may indicate that the dater 110a has given the first friend 110b permission to select the profile 130 as a potential match for the dater 110a. Thus, in response to receiving the selection 315b, the recommendation engine 145 may be configured to use the selection 315b to update the profile recommendations generated for the dater 110a, similar to the scenario of FIG. 3A, described above, in which the recommendation engine receives the selection 315a from the dater 110a. For example, in response to receiving the selection 315b, the recommendation algorithm 145 may be configured to send a third set of profile recommendations 320b to the dater 110a, the third set of profile recommendations 320b being different from the first set of profile recommendations 310. As an example, in certain embodiments, the third set of profile recommendations 320b does not include the profile 130 selected by the friend 110b through the selection 315b. As another example, in certain embodiments, the third set of profile recommendations 320b does not include profiles 130 from the first set of profile recommendations 310 for which the friend 110b indicated a negative preference. Alternatively, in some embodiments, the third set of profiles 320b may continue to include profiles 130 from the first set of profile recommendations 310 for which the friend 110b indicated a negative preference, to give the dater 110a an opportunity to evaluate the profiles for himself. As a further example, in certain embodiments, the third set of profile recommendations 320b may include new profiles 130 not present in the first set of profile recommendations 310. The third set of profile recommendations 320b may additionally include reorderings of profiles 130 previously presented in the first set of profiles 310.

[0086] The present disclosure contemplates cases where the third set of profile recommendations 320b may differ from the second set of profile recommendations 320a. This difference may result from the fact that the friend 110b may have provided a different selection 315b to the recommendation engine than the selection that the dater 110a himself would have provided. For example, as described above, the first friend 110b may have selected profile 130i, whereas the dater 110a may have selected profile 130h. However, even if the first friend 110b selected the same profile 130 that the dater 110a himself would have selected, in certain embodiments, the third set of profile recommendations 320b may still differ from the second set of profile recommendations 320a. This difference may result from the fact that the recommendation algorithm 145 may apply different weights to the selections 315a and 315b made by the dater 110a and the friend 110b, respectively. For example, the matching tool 105 may assign a first weight 155a to the selection 315a made by the dater 110a and a second weight 155b to the selection 315b made by the friend 110b on behalf of the dater 110a. The recommendation algorithm 145 may then use these weights 150 when generating new recommendations for the dater 110a (e.g., the second set of profile recommendations 320a and the third set of profile recommendations 320b). For example, if the weight 155a assigned to the dater 110a is significantly greater than the weight 155b assigned to the friend 110b, the selection 315a made by the dater 110a may have a greater influence on the resulting profile recommendation 320a generated by the recommendation algorithm 145 than the influence that the selection 315b has on the resulting profile recommendation 320b.

[0087] The matching tool 105 may determine the weights 155 in any suitable manner. For example, in certain embodiments, the matching tool 105 may assign higher weights 155a and 155c to daters 110a and 110c compared to friends 110b, 110d, 110e, and 110f, given that the daters must ultimately approve the match in order for a successful relationship to occur. As another example, in certain embodiments, the matching tool 105 may assign weights 155 based on the relative selectivity of the user 110. For example, the matching tool 105 may assign lower weights 155 to users who select most of the profiles 130 presented to them and higher weights 155 to users who select only a portion of the profiles 130 presented to them. As another example, in certain embodiments, the matching tool 105 may assign weights 155 based on the success of the user 110 in generating a match for a given dater 110a. For example, matching tool 105 may assign a higher weight 155b to friends 110b whose selections 315b are more likely to result in a match (as described below in the description of Figures 4A-4C) than the selections 315a received from dater 110a. As a further example, in certain embodiments, matching tool 105 may assign weights 155 based on the success of user 110 in generating a match for a given dater 110a, as well as the success of user 110 in generating a good match for dater 110a. For example, in certain embodiments, matching tool 105 may be configured to determine whether dater 110a has found his or her match and to request feedback from dater 110a and / or the match to determine whether the match was successful. As a particular example, matching tool 105 may determine that dater 110a and dater 110c are more likely to have met in person by monitoring conversations between dater 110a and dater 110c. For example, a conversation may indicate that dater 110a and dater 110c have exchanged phone numbers and / or exchanged particular keywords and / or expressions, indicating that the users are planning to meet up with each other.In response to determining that dater 110a and dater 110c are likely to have met in person, matching tool 105 may send surveys to dater 110a and dater 110c asking the daters to rate each other. Matching tool 105 may assign a higher weighting 155b to friend 110b whose selection 315b is more likely to result in a better match (as determined based on the survey responses provided by dater 110a and his / her partner) than the selection 315a received from dater 110a.

[0088] Figure 3C illustrates an example of the behavior of the recommendation engine 165 when it receives selections 315 from multiple friends 110 of dater 110a. While this disclosure contemplates the case where the recommendation engine 165 receives selections 315 from any number of friends 110, for simplicity, Figure 3C illustrates the case where the recommendation engine 165 receives selection 315b from friend 110b and selection 315c from friend 110f.

[0089] As with the behavior of recommendation algorithm 145 in response to receiving selection 315b from friend 110b and selection 315c from friend 110f, discussed above in the description of FIG. 3B, the behavior of recommendation algorithm 145 may depend on the permissions that dater 110a has given to friend 110b and friend 110f. As an example, permissions 155b and 155f may indicate that dater 110a has given permission to both first friend 110b and second friend 110f to select profile 130 to present suggestions to dater 110a, but not to select profile 130 as a potential match for dater 110a. Thus, in response to sending the first set of profile recommendations 310 to both first friend 110b and second friend 110f, recommendation engine 165 may receive profile suggestions (in the form of selections 315) from both first friend 110b and second friend 110f. In certain embodiments, the recommendation engine may generate and send to the dater 110a a set of profile recommendations 320c by placing an indication on each profile 130 selected by the first friend 110b and / or the second friend 110f to indicate that the first friend 110b and / or the second friend 110f suggested a profile to the dater 110a. In some embodiments, the recommendation engine may generate and send to the dater 110a a set of profile recommendations 320c by reordering the first set of profile recommendations 310 to place the suggested profile 130 first in the set of profiles each time the recommendation engine receives a selection 315 from the first friend 110b or the second friend 110f to suggest a profile. For example, if the recommendation engine 165 first receives a selection 315b of profile 130k from a first friend 110b, the recommendation engine 165 may reorder the first set of recommended profiles 310 from {130g, 130h, 130i, 130j, 130k} to {130k, 130g, 130h, 130i, 130j}. If the recommendation engine 165 then receives a selection 315c of profile 130j from a second friend 110b, the recommendation engine 165 may further reorder the first set of profile recommendations to {130j, 130k, 130g, 130h, 130i}.The recommendation engine 165 may then send the reordered set of profile recommendations to the dater 110a as a fourth set of profile recommendations 320c.

[0090] In certain embodiments in which the recommendation engine 165 uses the suggestions 315b and 315c to generate and send to the dater 110a a reordered set of profile recommendations 320c, the recommendation engine 165 may reorder the first set of profile recommendations 310 according to the weights 155b and 155f assigned to the friends 110b and 110f, respectively (and thus assigned to the selections 315vb and 315c received from the friends 110b and 110f). In such embodiments, the weights 155 may be used to determine the relative movement prescribed by the recommendation engine 165 to the profiles specified by the selections 315 when reordering the profiles presented in the first set of profile recommendations 310 to generate the profile recommendations 320c. For example, if a higher weight 155b is assigned to the selection 315b of profile 130k than the weight 155c assigned to the selection 315c of profile 310j, then the recommendation engine 165 may reorder the first set of profile recommendations 310 such that profile 130k comes before profile 130j in the resulting set of profile recommendations (e.g., the recommendation engine 165 may assign a larger movement to profile 130k and a smaller movement to profile 130j). For example, the recommendation engine 165 may reorder the first set of profile recommendations 310 from {130g, 130h, 130i, 130j, 130k} to {130k, 130g, 130h, 130j, 130i} and send this reordered set of profile recommendations to the dater 110a as a fourth set of profile recommendations 320c. In this manner, recommendation engine 165 may present those profiles suggested by friend 110b to dater 110a before presenting those profiles 130 suggested by friend 110f to dater 110a. In particular embodiments, the weights 155 assigned to friends 110b and 110f may directly correspond to the amount of movement that recommendation engine 165 may give to the profiles 130 selected by friends 110b and 110f when sorting the first set of profile recommendations 310.For example, a value of 1 for weight 155b may indicate that profiles 130 suggested to dater 110a by first friend 110b are to be moved up one position in the sorted set of profile recommendations 320c to be sent to dater 110a compared to their position in the first set of profile recommendations 310. Similarly, a value of 5 for weight 155f may indicate that profiles 130 suggested to dater 110a by second friend 110f are to be moved up five positions in the sorted set of profile recommendations 320c compared to their position in the first set of profile recommendations 310.

[0091] The matching tool 105 may determine the weights 155 in any suitable manner. As an example, in certain embodiments, the matching tool 105 may assign the weights 155 based on the relative selectivity of friends 110b and 110f. For example, the matching tool 105 may assign a lower weight 155b to friend 110b if friend 110b tends to select a majority of the profiles 130 presented to friend 110b, and a higher weight 155f to friend 110f if friend 110f tends to select a smaller portion of the profiles 130 presented to friend 110f. As another example, in certain embodiments, the matching tool 105 may assign the weights 155 based on the relative success of suggestions made by friend 110b compared to friend 110f. For example, if dater 110a tends to select a majority of the suggestions made by friend 110b, the matching tool 105 may assign a higher weight 155b to friend 110b. On the other hand, if dater 110a tends to reject most of the suggestions made by friend 110f, matching tool 105 may assign a low weight 155f to friend 110f. As a further example, in certain embodiments, matching tool 105 may assign weights 155 based on the success of user 110 in generating a match for a given dater 110a, as well as the success of user 110 in generating a good match for dater 110a. For example, in certain embodiments, matching tool 105 may be configured to solicit feedback from dater 110a and / or the match to determine whether dater 110a has met with his / her match and to determine whether the encounter was a good one. As a particular example, matching tool 105 may determine that dater 110a and dater 110c likely met in person by monitoring conversations between dater 110a and dater 110c. For example, a conversation may indicate that dater 110a and dater 110c have exchanged phone numbers and / or exchanged particular keywords and / or expressions, indicating that the users are planning to meet up with each other.In response to determining that dater 110a and dater 110c are likely to have met in person, matching tool 105 may send surveys to dater 110a and dater 110c asking the daters to rate each other. Matching tool 105 may assign a higher weighting 155b to friend 110b whose selections 315b tend to result in good matches more frequently (as determined based on the survey responses provided by dater 110a and his / her partner) than the selections 315c received from friend 110f.

[0092] In particular embodiments, rather than generating a sorted set of profile recommendations in response to receiving suggestions from friends 110b and / or 110f, matching tool 105 may use the suggestions to generate a leaderboard of suggested profiles 130. For example, matching tool 105 may generate a leaderboard listing the ten profiles 130 that received the most suggestions from dater 110a's friends. Generating such a leaderboard may be desirable in particular embodiments where dater 110a is a well-known individual and has a very large list of friends and / or teams / groups.

[0093] In some embodiments, the permissions 155b and 155f may indicate that the dater 110a has given both the first friend 110b and the second friend 110f permission to select the profile 130 as a potential match for the dater 110a. In such an embodiment, in response to receiving the selections 315b and 315c, the recommendation engine 145 may be configured to update the profile recommendations generated for the dater 110a with both the selections 315b and 315c in a manner similar to the scenario of FIG. 3B in which the recommendation engine received the selection 315b from the friend 110b, as described above. For example, in response to receiving the selections 315b and 315c, the recommendation algorithm 145 may be configured to send a fourth set of profile recommendations 320c to the dater 110a, where the fourth set of profile recommendations 320c is different from the first set of profile recommendations 310. As an example, in certain embodiments, the fourth set of profile recommendations 320c does not include the profile 130 selected by friend 110b via selection 315b and selected by friend 110f via selection 315c. As another example, in certain embodiments, the fourth set of profile recommendations 320c does not include the profile 130 from the first set of profile recommendations 310 for which friend 110b and / or friend 110f indicated a negative preference. Alternatively, in some embodiments, the fourth set of profiles 320c may continue to include the profile 130 from the first set of profile recommendations 310 for which friend 110b and / or friend 110f indicated a negative preference, to give dater 110a an opportunity to evaluate the profile for himself. As a further example, in certain embodiments, the fourth set of profile recommendations 320c may include new profiles 130 not present in the first set of profile recommendations 310. The fourth set of profile recommendations 320c may additionally include a reordering of profiles 130 previously presented in the first set of profiles 310. This disclosure contemplates that the recommendation algorithm 145 may place different weighting on selections 315b received from friend 110b compared to selections 315c received from friend 110c in determining the fourth set of profile recommendations 320c.For example, recommendation algorithm 145 may determine a fourth set of profile recommendations 320c based at least in part on selections 315b received from friend 110b, weights 155b assigned to friend 110b, selections 315c received from friend 110f, and weights 155b and 155f assigned to friend 110f, where weights 155b and 155f may be determined as described above.

[0094] In particular embodiments, permissions 155b may indicate that dater 110a allows first friend 110b to select profile 130 as a suggestion for dater 110a, but not as a potential match for dater 110a, while permissions 155f may indicate that dater 110a allows second friend 110f to select profile 130 as a potential match for dater 110a. In such embodiments, recommendation algorithm 145 may determine fourth set of profile recommendations 320c by considering both the suggestions provided by first friend 110b and the potential match selections provided by second friend 110f, each individually as described above.

[0095] Recommendation engine 165 may be a software module stored in memory 140 and executed by processor 135. An example algorithm for recommendation engine 165 is as follows: (1) receive a request 305 for profile recommendations from a first dater 110a, a first friend 110b of first dater 110a, and / or a second friend 110f of first dater 110a, (2) send a first set of profile recommendations 310 to user 110 who submitted request 305, (3) receive from user 110 who submitted request 305 a selection 315 of a profile 130 recommended in the first set of profile recommendations, (4) determine using algorithm 145 a new set of profile recommendations 320 based at least in part on selection 315 and weights 155 assigned to user 110, and (5) send the new set of profile recommendations 320 to dater 110a. While the above example presents one possible algorithm for the recommendation engine 165, this disclosure contemplates that the recommendation engine 165 may use any algorithm operable to generate and send recommendations for the profile 130 to the user 110. For example, the algorithm used by the recommendation engine 165 may include modifications, additions, or omissions of the example algorithms presented above. Additionally, the algorithm used by the recommendation engine 165 may include more, fewer, or other steps compared to the example algorithms presented above, and these steps may be performed in parallel or in any suitable order.

[0096] 3A-3C show recommendation engine 165 generating recommendations 310 and 320 for profile 130 for dater 110a, as well as sending such recommendations to dater 110a, first friend 110b, and second friend 110f, but the present disclosure contemplates recommendation engine 165 generating recommendations 310 and 320 and sending such recommendations to any number of users 110. Additionally, the present disclosure contemplates that modifications, additions, or omissions may be made to recommendation engine 165 without departing from the scope of the present invention. For example, the present disclosure contemplates that some or all of the operations described above performed by recommendation engine 165 may be performed by other components of matching tool 105. Such components may be integrated or separated. Additionally, the operations may be performed using any suitable logic, including software, hardware, and / or other logic.

[0097] 4A-4C show examples illustrating the process by which matching engine 170 of matching tool 105 generates a match between a first dater 110a and a second dater 110b. FIGURE 4A shows an example embodiment in which a dater 110 matches with another dater 110 by providing a positive preference in response to viewing the profile 130 of the other dater 110. FIGURES 4B and 4C show example embodiments in which matching tool 105 allows friends 110b and 110d of daters 110a and 110c to match on behalf of their friends, daters 110a and 110c.

[0098] FIG. 4A illustrates a process in which matching engine 170 generates a match 425 between first dater 110a and second dater 110b based on selections 415a and 420a provided by first dater 110a and second dater 110b, respectively. As shown in FIG. 4A, recommendation engine 165 may use recommendation algorithm 145 to generate a first set of profile recommendations 405 to send to first dater 110a. First set of profile recommendations 405 may include profile 130c belonging to second dater 110b. Similarly, recommendation engine 165 may use recommendation algorithm 145 to generate a second set of profile recommendations 410 to send to second dater 110b. Second set of profile recommendations 410 may include profile 130a belonging to first dater 110a.

[0099] In response to receiving the first set of profile recommendations 405, the first dater 110a may select one or more profiles 130 presented in the first set of profile recommendations 405 to indicate an interest in matching with the dater 110 to which the profile 130 belongs. For example, the first dater 110a may send a selection 415a of a profile 130c belonging to a second dater 110c to the matching engine 170 to indicate that the first dater 110a is interested in matching with the second dater 110c. Similarly, in response to receiving the second set of profile recommendations 410, the second dater 110c may select one or more profiles 130 presented in the second set of profile recommendations 410 to indicate an interest in matching with the dater 110 to which the profile 130 belongs. For example, a second dater 110c may send a selection 420a of a profile 130a belonging to a first dater 110a to the matching engine 170 to indicate that the second dater 110c is interested in matching with the first dater 110a.

[0100] Matching engine 170 is configured to compare selections 415a and 420a received from first dater 110a and second dater 110c to determine whether to generate a match between first dater 110a and second dater 110c. For example, matching engine 170 is configured to generate a match 425a between first dater 110a and second dater 110c by determining that first dater 110a selected profile 130c belonging to second dater 110c and that second dater 110c selected selected profile 130a belonging to first dater 110a. When matching engine 170 generates a match 425a between first dater 110a and second dater 110c, matching engine 170 may move profile 110c belonging to second dater 110c from first set of profiles 405 to a contact list for first dater 110a. Similarly, matching engine 170 may move profile 110a belonging to first dater 110a from second set of profiles 410 to a contact list for second dater 110c. Chat engine 180 may enable interactions between first dater 110a and second dater 110c, as described in further detail below in the description of FIG. 6.

[0101] 4B illustrates an example in which a friend 110b of a first dater 110a can generate a match 425b between the first dater 110a and a second dater 110c. As shown in FIG. 4B, the recommendation engine 165 can send a first set of profiles 405 to the friend 110b of the first dater 110a. As described above, the first set of profiles 405 can include a profile 130c belonging to the second dater 110c. Provided that the first dater 110a has given the friend 110b permission to generate a match on his or her behalf, the friend 110b can select the profile 130c from among the profiles 130 presented in the first set of profiles 405. For example, friend 110b may select profile 130c in response to viewing profile 130c and determining that dater 110c to which profile 130c belongs is likely to be compatible with dater 110a. Friend 110b may then send his selection of profile 130c as a selection 415b to matching engine 170. Matching engine 170 may then generate a match 425b between first dater 110a and second dater 110c in response to receiving second set of profiles 410 that includes profile 130a and determining that second dater 110c selected profile 130a that belongs to first dater 110a.

[0102] 4C illustrates an example in which a friend 110b of a first dater 110a and a friend 110d of a second dater 110c can generate a match 425c between the first dater 110a and the second dater 110c. As shown in FIG. 4C, the recommendation engine 165 can send a second set of profiles 410 to the friend 110d of the second dater 110c. As described above, the second set of profiles 410 can include a profile 130a belonging to the first dater 110a. Assuming that the second dater 110c has given the friend 110d permission to generate a match on his or her behalf, the friend 110d can select the profile 130a from among the profiles 130 presented in the second set of profiles 410. For example, friend 110d may select profile 130a in response to viewing profile 130a and determining that dater 110a to which profile 130a belongs would likely be a good match for dater 110c. Friend 110d may then transmit the selection of profile 130a as selection 420b to matching engine 170. Matching engine 170 may then generate a match 425c between first dater 110a and second dater 110c in response to receiving first set of profiles 405 that includes profile 130c and determining that friend 110b of first dater 110a selected selected profile 130c belonging to second dater 110c.

[0103] Matching engine 170 may be a software module stored in memory 140 and executed by processor 135. An example algorithm for matching engine 170 is as follows: (1) receive a selection 415 from a first dater 110a or a friend 110b of first dater 110a, (2) receive a selection 420 from a second dater 110c or a friend 110d of second dater 110c, (3) determine whether selection 415 includes a profile 130c belonging to second dater 110c, (4) determine whether selection 420 includes a profile 130a belonging to first dater 110a, and (5) determine whether selection 415 includes a profile 130b belonging to first dater 110a. (5) if selection 415 includes profile 130c and selection 420 includes profile 130a, generate a match 425 between first dater 110a and second dater 110c and send match 425 to first dater 110a and second dater 110c, and (6) if selection 415 does not include profile 130c and / or selection 420 does not include profile 130a, do not generate a match 425 between first dater 110a and second dater 110c. While the above example presents one possible algorithm for matching engine 170, this disclosure contemplates that matching engine 170 may use any algorithm operable to generate a match between users 110. For example, the algorithm used by matching engine 170 may include modifications, additions, or omissions of the example algorithms presented above. Additionally, the algorithms used by matching engine 170 may include more, fewer, or other steps as compared to the exemplary algorithms presented above, and these steps may be performed in parallel or in any suitable order.

[0104] 4A-4C show matching engine 170 generating a match 425 between first dater 110a and second dater 110c based on a comparison of input from first dater 110a and / or friend 110b of first dater 110a with input from second dater 110c and / or friend 110d of second dater 110c, this disclosure contemplates that matching engine 170 may generate matches between any number of users 110 in any suitable manner based on input from user 110 and / or any number of other users. Additionally, this disclosure contemplates that modifications, additions, or omissions may be made to matching engine 170 without departing from the scope of the present invention. For example, this disclosure contemplates that some or all of the operations described above as being performed by matching engine 170 may be performed by other components of matching tool 105. Such components may be integrated or separate. Furthermore, the operations may be performed using any suitable logic, including software, hardware, and / or other logic.

[0105] In certain embodiments, the match 425b (of FIG. 4B) and match 425c (of FIG. 4C) created by at least one of the friends 110b and 110 may be generally indistinguishable from the match 425a (of FIG. 4A) created by the daters 110a and 110c themselves. For example, if a first dater 110a receives a match 425c between himself and a second dater 110c, the first dater 110a may not realize that his profile was selected by a friend 110d of dater 110b, and not by dater 110b himself. On the other hand, in some embodiments, the match 425 may include an indication of the user 110 who assisted in creating the match. For example, a match 425c generated according to the process shown in FIG. 4C may indicate to first dater 110a that it is a friend of second dater 110c who thinks that first dater 110a and second dater 110c should be matched.

[0106] In certain embodiments, daters 110a and 110c may be allowed to override selections 415b and 420b submitted to matching engine 170 by friends 110b and 110d, respectively. For example, daters 110a and 110c may be allowed to view selections 415b and 420b and cancel any selections they do not approve of. In some embodiments, daters 110a and 110c may not be allowed to override any selections 415b and 420b submitted to matching engine 170. In certain embodiments, daters 110a and 110c may be allowed to unmatch any of the daters that their friends matched with the dater. For example, if the first dater 110a views a match 425b or 425c generated based on a selection 415b made by friend 110b and determines that he or she does not want to be matched with the second dater 110c, the first dater 110a may dissolve the match with the second dater 110c by removing the match 425b or 425c from his or her list of matches.

[0107] In certain embodiments, matching engine 170 may be configured to generate matches between groups of daters. For example, first dater 110a may generate a first group of daters from certain members of his / her friends list and / or team / group. The first group of daters may include, for example, first dater 110a, third dater 110g, and fourth dater 110h. In certain embodiments, members of the group may (1) assign a name to their group, (2) create an icon for their group, and / or (3) include any type of identifying feature to identify the group. Once a group of daters is created, the group may collectively operate as a unit to select other groups of daters in hopes of generating group-based matches. For example, the first group of daters may select a second group of daters including second dater 110c, fifth dater 110i, and sixth dater 110j. If this second group of daters similarly selects the first group of daters, matching engine 170 may generate a match between the first group of daters and the second group of daters. Such a match may enable members of the first group of daters and members of the second group of daters to interact with each other in a group chat generated by chat engine 180. This aspect of matching tool 105 is described in further detail above in the description of FIG.

[0108] FIG. 5 illustrates an example activity feed 500 generated by the feed generator 175 and associated with a given dater 110a. FIG. 5 illustrates the activity feed 500 as displayed on the device 115a of the dater 110a. However, this disclosure contemplates that the activity feed 500 associated with the dater 110a may also be displayed on the device 115b of the friend 110b. In certain embodiments, the activity feed 500 may show actions taken by the dater 110a and its friends 110b during interactions with the matching tool 105. In this manner, the activity feed 500 may enable the matching tool 105 to further engage the dater's friends in the online dating experience, as well as to inform the dater of actions taken by friends on his or her behalf.

[0109] 5, activity feed 500 may be a "team-centric" activity feed. For example, feed generator 175 may generate and display activity feed 500 for each member of dater 110a's team / group and / or each member of dater 110a's friends list in addition to dater 110a, and activity feed 500 may show activity performed on behalf of dater 110a by each member of dater 110a's team / group and / or friends list in addition to activity performed by dater 110a. In certain embodiments in which dater 110a has more than one team / group and / or is a member of another dater's team / group and / or friends list, dater 110a may receive multiple activity feeds, each activity feed associated with a different team / group and / or friends list. Dater 110a may then be able to switch between multiple activity feeds 500 generated by feed generator 175 depending on which team / group and / or friend list activity he / she wishes to see at a given time. Similarly, if user 110b is a member of dater 110a's team / group and / or friend list and is also a member of another dater's team / group and / or friend list, user 110b may alternatively see a separate activity feed 500 for each team / group and / or friend list of which he / she is a member. As shown in FIG. 5, in certain embodiments, activity feed 500 may display a representation 505 of the team / group and / or dater 110 to which the activity feed 500 pertains. For example, the representation 505 shown in FIG. 5 indicates that the activity feed 500 pertains to the activity of members of the first dater 110a's team / group.

[0110] In certain embodiments, any activity that user 110 performs as a member of a team / group and / or friend list of dater 110a may appear in an activity feed 500 associated with that team / group and / or friend list. As an example, activity feed 500 may indicate that dater 110a has selected one or more profiles 130. For example, as shown in FIG. 5, activity feed 500 may display a profile photo 520 belonging to dater 110a along with a message 525 stating that "first dater viewed profile" or a similar representation indicating that first dater 110a selected profile 130 from a set of profile recommendations generated by recommendation engine 165 and presented to first dater 110a. Activity feed 500 may display profile photos 530a, 530b, and 530c from the profile 130 selected by first dater 110a. As another example, activity feed 500 may indicate that friend 110f of first dater 110a has generated a match for first dater 110a (e.g., friend 110f selected profile 130c belonging to second dater 110c, and second dater 110c or members of second dater 110c's team / group and / or friends list also selected profile 130a belonging to first dater 110a). For example, as shown in FIG. 5, activity feed 500 may display a profile photo 535 belonging to friend 110f along with a message 540 stating "Second friend found a match for first dater" or a similar representation indicating that friend 110f's selection of profile 130c resulted in a match between first dater 110a and second dater 110c.

[0111] Further examples of activity performed by members of dater 110a's team / group and / or friends list (including activity performed by dater 110a herself) that may be shown in activity feed 500 may include (1) when dater 110a receives a message from one of his or her partners, (2) when dater 110a sends a message to one of his or her partners, (3) when friend 110b sends a message on behalf of dater 110a to one of dater 110a's partners, (4) when dater 110a sends or receives messages from members of his or her friends list and / or team / group, (5) when friend 110b suggests a profile 130 to dater 110a, and / or (6) any other activity that may be performed by members of dater 110a's team / group and / or friends list.

[0112] In certain embodiments, despite the fact that the activity feed 500 may be a "team-centric" activity feed, the version of the activity feed 500 presented to the dater 110a may differ from the version of the activity feed 500 presented to the friend 110b who is a member of the dater 110a's team / group and / or friend list. Such differences may occur due to the permissions 150 set for the friend 110b. For example, the dater 110a may not want the friend 110b to know every time the dater 110a starts a conversation with one of his or her dates. Thus, the dater 110a may set the permissions 150b for the friend 110b such that the activity feed 500 presented to the friend 110b does not show any indication when the dater 110a starts a conversation with one of his or her dates. As another example, in certain embodiments, the version of activity feed 500 presented to dater 110a may differ from the version of activity feed 500 presented to friend 110b of dater 110a as a result of permissions 150 set by other friends of dater 110a. For example, friend 110f of dater 110a may set permissions 150 such that only dater 110a can see activities performed by friend 110f on dater 110a's behalf in activity feed 500. As described above, in addition to governing the information that may be presented in activity feed 500, permissions 150 may also dictate the actions that friend 110 may take on behalf of dater 110a when interacting with matching tool 105.

[0113] Feed generator 175 may be a software module stored in memory 140 and executed by processor 135. An example of an algorithm for feed generator 175 used to generate a “team-centric” activity feed 500 is as follows: (1) for each member of dater 110a's team / group and / or friends list, determine that the member performed an activity on dater 110a's behalf and add a description of that activity to activity feed 500, (2) generate a version of activity feed 500 for each member of dater 110a's team / group and / or friends list by removing from activity feed 500 any activities that permissions 150 belonging to the member indicate that the member does not allow them to view, and (3) send each version of activity feed 500 to the associated members of dater 110a's team / group and / or friends list. While the above example presents one possible algorithm for the feed generator 175, this disclosure contemplates that the feed generator 175 may use any algorithm operable to generate a feed 500 indicative of activity of the user 110. For example, the algorithm used by the feed generator 175 may include modifications, additions, or omissions of the example algorithm presented above. Additionally, the algorithm used by the feed generator 175 may include more, fewer, or other steps compared to the example algorithm presented above, and these steps may be performed in parallel or in any suitable order.

[0114] In certain embodiments, instead of generating a "team-centric" activity feed, the feed generator 175 may generate a "user-centric" activity feed. For example, instead of generating multiple activity feeds 500 for each team / group and / or friend list that the user 110 belongs to, the feed generator 175 may generate a single activity feed 500 for the user 110. This single activity feed may include activities performed by the user 110 as well as activities performed by any of the other users with whom the user 110 is connected via the matching tool 105 that impact the user 110. In certain embodiments, the user-centric activity feed 500 may additionally include activities of friends of friends. For example, consider a situation where both user 110b and user 110f are friends of dater 110a, but are not connected to each other through matching tool 105 (e.g., user 110b is not a member of user 110f's team / group and / or friend list, and user 110f is not a member of user 110b's team / group and / or friend list). Nevertheless, activity feed 500 generated by feed generator 175 for user 110b may include activities performed by user 110f instead of dater 110a, assuming user 110a is connected to user 110b. Similarly, activity feed 500 generated by feed generator 175 for user 110f may include activities performed by user 110b instead of dater 110a, assuming user 110a is connected to user 110f. In such embodiments, users 110b and 110f may be able to control whether activities performed on behalf of dater 110a appear in each other's activity feeds 500 via permissions 150. For example, user 110b may be able to set permissions 150 for friends of friends via privacy settings provided by the matching tool 105.

[0115] An example of an algorithm for the feed generator 175 used to generate a "user-centric" activity feed 500 for a user 110 is as follows. (1) determining that a user 110 has performed an activity using the matching tool 105 and added a description of the activity to the activity feed 500; (2) determining that a member of the user 110's team / group and / or friends list has performed an activity on behalf of the user 110 and added a description of the activity to the activity feed 500; (3) determining that a member of a given dater's team / group and / or friends list, of which the user 110 is also a member, performed an activity on behalf of the dater; (4) determining whether the member of the team / group and / or friends list has set privacy settings provided by the matching tool 105 to allow friend-of-friend activity sharing; (5) if the member of the team / group and / or friends list has set privacy settings to allow friend-of-friend activity sharing, adding a description of the activity performed by the member of the team / group and / or friends list on behalf of the dater to the activity feed 500; and (6) sending the activity feed 500 to the user 110. While the above example presents one possible algorithm for the feed generator 175, this disclosure contemplates that the feed generator 175 may use any algorithm operable to generate a feed 500 indicative of the activity of the user 110. For example, the algorithm used by the feed generator 175 may include modifications, additions, or omissions of the example algorithm presented above. Additionally, the algorithm used by the feed generator 175 may include more, fewer, or other steps than the example algorithm presented above, and these steps may be performed in parallel or in any suitable order.

[0116] FIG. 6 illustrates an example graphical user interface 600 associated with a group chat between friends of dater 110a and displayed on device 115b belonging to friend 110b. Graphical user interface 600 may be generated by chat engine 180 (of FIG. 1) and may enable friends of dater 110a to share profiles 130 with other friends of dater 110a and dater 110a and / or members of dater 110a's team / group, as illustrated in FIG. 6. For example, each profile 130 may include an interactive button that allows user 110 to select a profile to share in the group chat. In response to user 110 selecting a profile 130 to share in the group chat, graphical user interface 600 may display a profile image 605 associated with profile 130 along with a text box 615. User 110 may use text box 615 to enter with comments about profile 130 that he or she wishes to share with other participants in the group chat. Once user 110 has finished entering comments into text box 615, user 110 may share both those comments and their profile 130 with other participants in the group chat by selecting butting 610.

[0117] In particular embodiments, in response to user 110 sharing profile 130 with other participants in the group chat, one or more members of the group chat may be able to select profile 130 directly from the group chat. For example, dater 110a may select profile 130 directly from the group chat to indicate that dater 110a would like to match with the dater to whom profile 130 belongs. As another example, friend 110b may select profile 130 directly from the group chat to generate potential matches for dater 110a or suggestions for dater 110a, depending on permissions 150b provided to friend 110b by dater 110a.

[0118] In particular embodiments, in addition to enabling friends of dater 110a to share profiles 130 with each other, chat engine 180 may enable friends of dater 110a to share with each other activity that appears in activity feed 500. As a particular example, in response to seeing on activity feed 500 that a first friend 110b has proposed profile 130c to dater 110a, a second friend 110f may share this event in a group chat of dater 110a's team / group and / or friends list and comment that he or she approves of the proposal.

[0119] In addition to enabling users 110 to share profiles 130 with each other in group chats, chat engine 180 may facilitate any suitable form of interaction between users 110, as detailed above in the description of FIG. 1.

[0120] FIG. 7 presents a flowchart illustrating how the matching tool 105 may generate a match 425 between a pair of daters 110a and 110c.

[0121] In step 705, the matching tool 105 (of FIG. 1) generates and transmits a first set of profiles 405. The first set of profile recommendations 405 may include profiles 130 belonging to daters 110 that the matching tool 105 has determined to be likely compatible with the first dater 110a. This disclosure contemplates the case where the matching tool 105 transmits the first set of profile recommendations 405 to the first dater 110a and / or friends 110b of the first dater 110a. In step 710, the matching tool 105 receives a selection 415 of a profile 130c belonging to a second dater 110c. In step 715, the matching tool 105 determines whether the selection 415 was received from the first dater 110 or from friends 110b of the first dater 110a.

[0122] If, at step 715, the matching tool 105 determines that a selection 415 was received from the first dater 110a, then, at step 735, the matching tool 105 determines whether the tool received a selection 420 of a profile 130a belonging to the first dater 110a from a second dater 110c. If, at step 735, the matching tool 105 determines that the tool received a selection 420 of a profile 130a belonging to the first dater 110a from a second dater 110c, then, at step 745, the matching tool 105 generates a match 425 between the first dater 110a and the second dater 110c. At step 750, the matching tool 105 enables communication between the first dater 110a and the second dater 110c.

[0123] If, at step 735, the matching tool 105 determines that the tool has not received a selection 420 of a profile 130a belonging to the first dater 110a from the second dater 110c, then, at step 740, the matching tool 105 determines whether the tool has received a selection 420 of a profile 130a from a friend 110d of the second dater 110c. If, at step 740, the matching tool 105 determines that the tool has received a selection 420 of a profile 130a from a friend 110d of the second dater 110c, then, at step 745, the matching tool 105 creates a match 425 between the first dater 110a and the second dater 110c, and, at step 750, the matching tool 105 enables communication between the first dater 110a and the second dater 110c. On the other hand, if in step 740 the matching tool 105 determines that the tool has not received a selection 420 of a profile 130a from a friend 110d of the second dater 110c, then the matching tool 105 does not generate a match between the first dater 110a and the second dater 110c.

[0124] If, at step 715, the matching tool 105 determines that a selection 415 has been received from a friend 110b of the first dater 110a, then, at step 720, the matching tool 105 determines whether the friend 110b has been given permission by the first dater 110a to select potential partners for the first dater 110a. If, at step 720, the matching tool 105 determines that the friend 110b has been given permission by the first dater 110a to select potential partners for the first dater 110a, the method proceeds to step 735 and continues from step 735 as described above.

[0125] If, at step 720, the matching tool 105 determines that the friend 110b has not been given permission by the first dater 110a to select potential partners for the first dater 110a, then, at step 725, the matching tool 105 treats the selection 415 from the friend 110b as a suggestion for the dater 110a. Thus, the matching tool 105 reorders the profiles 130 in the first set of profile recommendations 405 into a second set of profile recommendations 405 in which the profile 130c belonging to the dater 110c is placed earlier than it was in the first set of profile recommendations 405. For example, the matching tool 105 reorders the profiles 130 in the first set of profile recommendations 405 into the second set of profile recommendations by placing the profile 130c at the beginning of the second set of profile recommendations. Additionally, the matching tool 105 may include an indication in the profile 130c that the friend 110b suggested the profile 130c for the first dater 110a. At step 730, the matching tool 105 sends the second set of profile recommendations to the first dater 110a for selection therefrom.

[0126] Modifications, additions, or omissions may be made to method 700 shown in FIG. Method 700 may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. Although matching tool 105 (or a component thereof) has been described as performing the steps, any suitable component of system 100, such as device 115, may perform one or more steps of the method.

[0127] FIG. 8 presents a flowchart illustrating how the matching tool 105 may generate recommendations of potentially compatible users 110 for a dater 110a.

[0128] At step 805, the matching tool 105 sends a first set of profile recommendations 310 to the dater 110a, a first friend 110b of the dater 110a, and / or a second friend 110f of the dater 110a. At step 810, the matching tool 105 receives a selection 315 of one or more profiles 130 to be presented in the first set of profile recommendations 310. At step 815, the matching tool 105 determines whether a selection 315 was received from the dater 110a.

[0129] If, at step 815, the matching tool 105 determines that the selection 315 was received from the dater 110a, then, at step 825, the matching tool 105 determines a weight 155a to be assigned to the dater 110a. On the other hand, if, at step 815, the matching tool 105 determines that the selection 315 was received from the first friend 110b or the second friend 110f, then, at step 820, the matching tool 105 determines a weight 155b to be assigned to the first friend 110b or a weight 155f to be assigned to the second friend 110f. At step 830, the matching tool 105, using the matching algorithm 145, determines a second set of profile recommendations 320 for the dater 110a based at least in part on the selection 315 and the weight 155a. At step 835, the matching tool 105 determines whether a request for additional profile recommendations has been received from any of the dater 110a, the first friend 110b, and the second friend 110f. If at step 835 the matching tool 105 determines that a request for additional profile recommendations has been received, then at step 840 the matching tool 105 transmits the second set of profile recommendations 320. The method 800 then proceeds to step 810 and continues from step 810 as described above.

[0130] Modifications, additions, or omissions may be made to method 800 shown in FIG. Method 800 may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. Although matching tool 105 (or a component thereof) has been described as performing steps, any suitable component of system 100, such as device 115, may perform one or more steps of the method.

[0131] While the present disclosure includes several embodiments, innumerable changes, variations, modifications, permutations and alterations may be suggested to those skilled in the art, and the present disclosure is intended to encompass such changes, variations, modifications, permutations and alterations within the scope of the appended claims.

Claims

1. an interface configured to transmit and receive data over a network; a memory configured to store a permission indicating that a second user is permitted to suggest users to a first user; and A hardware processor; An apparatus comprising: The hardware processor includes: sending a profile of a third user to the second user using the interface; receiving, using the interface, a selection of a profile of the third user from the second user; in response to receiving a selection of the third user profile, transmitting, using the interface, to the first user an indication that the third user profile has been selected by the second user for the first user; The apparatus is configured to:

2. The apparatus of claim 1 , wherein the display includes an icon for a profile of the third user.

3. The apparatus of claim 1 , wherein the indication includes a statement that the second user suggests the third user for the first user.

4. 2. The apparatus of claim 1, wherein the processor is further configured to send a set of profiles to the first user for selection, the third user's profile being positioned at the top of the set of profiles.

5. The apparatus of claim 1 , wherein the second user is a friend of the first user and the third user is a potential date of the first user.

6. The processor, receiving, using the interface, from the first user a second selection of a profile of the third user; receiving, from the third user using the interface, a selection of a profile of the first user; in response to receiving a second selection of a profile of the third user from the first user and receiving a selection of the profile of the first user from the third user, enabling communication between the first user and the third user; The apparatus of claim 1 , further configured to:

7. The processor, in response to receiving a selection of the third user profile, placing a profile of the third user in a list of suggestions for the first user; sending the list of suggestions to the first user using the interface; The apparatus of claim 1 , further configured to:

8. storing, with the memory, a permission indicating that the second user is permitted to suggest users to the first user; transmitting a third user profile to the second user using an interface; receiving, using the interface, a selection of a profile of the third user from the second user; in response to receiving a selection of the third user profile, transmitting, using the interface, to the first user an indication that the third user profile has been selected by the second user for the first user; The method includes:

9. The method of claim 8 , wherein the display includes an icon for a profile of the third user.

10. The method of claim 8 , wherein the indication includes a statement that the second user suggests the third user for the first user.

11. 10. The method of claim 8, further comprising sending the first user a set of profiles for selection, the third user's profile being positioned at the top of the set of profiles.

12. The method of claim 8 , wherein the second user is a friend of the first user and the third user is a potential date of the first user.

13. receiving, using the interface, from the first user a second selection of a profile of the third user; receiving, from the third user using the interface, a selection of a profile of the first user; in response to receiving a second selection of a profile of the third user from the first user and receiving a selection of the profile of the first user from the third user, enabling communication between the first user and the third user; The method of claim 8 further comprising:

14. in response to receiving a selection of the third user profile; placing a profile of the third user in a list of suggestions for the first user; sending the list of suggestions to the first user using the interface; The method of claim 8 further comprising:

15. At least one computer-readable storage medium containing a plurality of instructions that, when executed by at least one processor, storing a permission, the permission indicating that a second user is permitted to suggest users to a first user; transmitting a third user profile to the second user using an interface; receiving, using the interface, a selection of a profile of the third user from the second user; in response to receiving a selection of the third user profile, transmitting, using the interface, to the first user an indication that the third user profile has been selected by the second user for the first user; At least one computer-readable storage medium on which the

16. 16. The at least one computer-readable storage medium of claim 15, wherein the display includes an icon for a profile of the third user.

17. 16. The at least one computer-readable storage medium of claim 15, wherein the indication includes a statement that the second user suggests the third user for the first user.

18. 16. At least one computer-readable storage medium as described in claim 15, wherein the instructions are further configured to send a set of profiles to the first user for selection, the third user's profile being positioned at the top of the set of profiles.

19. 16. The at least one computer-readable storage medium of claim 15, wherein the second user is a friend of the first user and the third user is a potential date of the first user.

20. The instruction: receiving, using the interface, from the first user a second selection of a profile of the third user; receiving, from the third user using the interface, a selection of a profile of the first user; in response to receiving a second selection of a profile of the third user from the first user and receiving a selection of the profile of the first user from the third user, enabling communication between the first user and the third user; 20. The at least one computer-readable storage medium of claim 15, further configured to:

Citation Information

Patent Citations

  • Method and system for information transmission and intermediation

    JP2001338176A

  • Electronic mail pal introduction server, portable terminal and control method therefor

    JP2003044615A

  • Using photos to initiate and perform actions

    JP2015510622A

  • Systems and methods for controlling permissions for selected recipients by data owners

    JP2018512085A

  • Automatic Generation of Personalized Meeting Lists

    US20080235071A1