Broadly, we'd like to build an algorithm that takes in "Member Profile Data" and returns a list of the "Top 10 Members You Should Meet", prioritized by best match.
We run a mastermind group of 250 CEOs, executives, and investors. The group meets once a year, and we'd like to provide a list to each of them of the top 10 people they should make an effort to meet at the event.
We collect extensive profile information on each member.
Here are the fields:
Name, Title, Company, Address/Location, Zipcode, Country, Gender, Area Code, Personal Website, LinkedIn Profile URL, Company Website, Number of Employees (Select a Range), Company Annual Revenue (Select a Range)
List of Crowd Tools Most Interested In: (Community Building, Crowdfunding, Crowdsourcing, Incentive Competitions)
List of Similar Organizations You Are Involved In: (Strategic Coach, Genius Network, Center RIng, Entrepreneur's Organization, YPO, Business Mastery, Maverick1000)
Number of Previous Events You've Attended: (0, 1, 2, or 3)
Which Global Grand Challenges Are You Interested In Solving: (Abundant Energy, Clean Water, Democracy, Global Healthcare, Hunger, Literacy, Poverty, Other)
Your Industry: (Select from Standard List of Industries)
Description of What Your Company Does In this Industry: (Comment box input)
Are You An Angel Investor: (Y/N)
How Many Companies Have You Started: (Number)
Top Two Exponential Technologies You Are Interested In: (AI, Internet of Things/Networks and Sensors, Robotics, 3D Printing, Cryptocurrency, Alternative Energy, Virtual Reality, Human Longevity)
How Did You Hear About This Event: (Comment box input)
Description of Where You Want Your Company to Be in 5 Years: (Comment box input)
Would You Consider Yourself and Early Adopter (Y/N)
Have you Attended a Singularity University Event?: (Y/N)
If yes to the above, which ones?: (EP, IPP, GSP, Other)
Number of Investment Deals Per Year: (Number)
Average Investment Size: (Select a Range)
The deliverable would be an algorithm that would take in this profile information and "match" the members. Think of a "match" as representative of "most likely to do business together" -- Proximity, similarity of business, similarity of business size/business revenues, similar interests in technology, similar grand challenges they want to solve, similar networks (ie. heard about the event from the same person), similar titles, similar angel investment sizes and frequencies.
The output would be a ranked list of the top 5-10 best matches.
Note -- Perhaps there should be a randomization factor included here as well. For example, if we have a husband and a wife (or two business partners) attending the event and they both run a business together or work at the same place, we don't want the algorithm to list them as top matches. Perhaps, if they are too similar, they shouldn't be included in the output.
Note 2 -- We will also provide a basic "training set" or benchmark list of connections that we consider "valuable". In other words, we will provide a list of people and their top 5-10 connections (that we know of).
Note 3 -- Though it maybe out of the scope of this project, plugging into LinkedIn's API or crawling individual's personal websites for keywords ("Real-Estate", "Coach", etc) could add interesting dimensions to their similarity indices.
Bonus -- Though not required, it would be nice if we could see the "Top Factors in Common" for each match (ie. Person A and Person B both want to solve this problem or A and B both run equal sized businesses out of New York).
Language: Python is preferrable, but not required.
User Interface -- We'd like to have a basic user-interface that would allow us to upload a file and see the output of matches.
Input File -- CSV or Excel Document (All fields not 100% complete)
Output: CSV or Excel Document -- List of Top 10 Matches for Each of the 250 Members
+ README.md with detailed instructions and explanation of algorithm
Proposed Output Format:
Member: John Smith
Member: Jack Stone