Simple Content Recommendations in R

I’ve wanted to build a content recommendation engine for a long time. Buffer is sitting on a mountain of data, which some argue is the most valuable commodity on Earth. We used to provide content suggestions to users through manual curation, but we ended up retiring that feature/service.

In this analysis we’ll build a simple recommendation engine with the recommenderlab R package, using collaborative filtering techniques. To keep it simple, we’ll only look at updates shared by Buffer team members.

Collaborative filtering

The basic idea behind collaborative filtering is that, if two people share similar interests (e.g. they’ve shared the same links), they will also share similar interests in the future. For example, if Rupert and I have similar histories in terms of the links that we’ve shared, it would make sense to recommend links that Rupert has shared (that I haven’t).

In this type of recommendation, filtering items from a large set of alternatives is done collaboratively between users preferences. Such systems are called collaborative filtering recommender systems.

There are two sub-branches of collaborative filtering that are worth mentioning:

  • Item-based: This recommends to a user the items that are most similar to the user’s purchases.

  • User-based: This recommends to a user the items that are the most preferred by similar users.

In this analysis we’ll use user-based collaborative filtering. With this method, ratings (or recommendations) for a user can be predicted by first finding a neighborhood of similar users and then aggregate the ratings of these users to form a prediction.

The big disadvantage of this approach is scalability since the whole user database has to be processed. This is why we’re starting with a small dataset.

The neighborhood is defined in terms of similarity between users, either by taking a given number of most similar users (k nearest neighbors) or all users within a given similarity threshold. Popular similarity measures for CF are the Pearson correlation coefficient and the Cosine similarity.

We want to create recommendations for people based on the preferences of people with similar interests. To find the k-neighborhood (i.e., the k nearest neighbors) we calculate the similarity between the user and all other users based on their ratings (1 for a shared url, 0 otherwise) in the dataset and then select the k users with the highest similarity.

Data mining and EDA

It’s worth noting that I’m not doing any exploratory analysis in this analysis. It’s Friday and I’m getting a little lazy. :) However this should absolutely be done at some point to give us a better underlying understanding of the dataset.

Data collection

Let’s collect all of the links shared by Buffer team members. The dataset will only include two columns, name and url.

# Read csv of updates
updates <- read.csv("~/Downloads/buffer_updates.csv", header = TRUE)

Alright, we have over 98 thousand links from 72 team members.

Data tidying

We need to clean up the column names and set the correct object types.

# Rename the columns
colnames(updates) <- c('name', 'url')

# Set urls as character vector
updates$url <- as.character(updates$url)

Now we need to clean up the links. We’ll use the gsub() function and some regex to remove all characters after ? in the urls.

updates$clean_url <- gsub("\\?.*", "", updates$url)

Nice. There are still some unique urls that we’d like to remove. We can do that manually.

# Define the urls we want to exclude
problem_urls <- c("nytimes.com/glogin", "buffer.com", "buffer.com/respond", "nytimes.com",
                  "facebook.com/photo.php", "myaccount.nytimes.com/auth/login", "google.com",
                  "bufferapp.com", "news.ycombinator.com/item")

# Filter out these urls
updates <- updates %>%
  filter(!(clean_url %in% problem_urls))

Alright, now we’re ready to build our recommender!

Recommender

The recommenderlab package can be used for collaborative filtering. To get started, we need to change the structure of our dataset to a wide matrix, which columns representing urls and rows representing users.

Our data is binary (i.e. either 1 or 0). If a user shared the url, then it’s a 1, otherwise it’s 0. Recommender systems using association rules produce recommendations based on a dependency model for items given by a set of association rules.

The binary profile matrix R is seen as a dataset where each user is treated as a transaction that contains the subset of items in I with a rating of 1 (when the user has shared the link). Hence transaction k is defined as Tk = {ij ∈ I|rjk = 1}, which indicates whether a link is an element of I or the rating of that specific link is 1.

The whole transaction dataset D = {T1, T2, . . . , TU } where U is the number of users. This is a wide matrix that we have to build, that includes a rating for each user and each link.

To build the dependency model, a set of association rules is mined from the matrix. Association rules are rules of the form X → Y where X , Y ⊆ I and X ∩ Y = ∅. This means that the links X and Y are a subset of the entire list of links I and the intersection of X and Y is 0 (the user hasn’t shared both).

To select a set of useful association rules, thresholds on measures of significance and interestingness are used. Two widely applied measures are:

  • support(X → Y) = support(X ∪ Y) = Freq(X ∪ Y)/|D| = P(EX ∩ EY )

  • confidence(X → Y) = support(X ∪ Y)/support(X ) = P(EY |EX )

Freq(I) gives the number of transactions in the data base D that contains all items in I. EX is the event that the item X is contained in a transaction. So support(X → Y) is the probability that link X or link Y is shared, and confidence(X → Y) is the probability that link Y is shared given that link X was shared.

To make a recommendation for an active user ua given the set of items I the user likes and the set of association rules R (dependency model), the following steps are necessary:

  1. Find all matching rules X → Y.
  2. Recommend N unique right-hand-sides (Y) of the matching rules with the highest con-fidence (or another measure of interestingness).

Let’s build our binary profile matrix.

# Cast as a giant matrix
updates_cast <- acast(updates, name ~ clean_url)
umatrix <- as.matrix(updates_cast)

# Replace NA values with 0
umatrix[is.nan(umatrix)] <- 0

# Set as a binary rating matrix type
binary_matrix = as(umatrix, 'binaryRatingMatrix')

binary_matrix
## 72 x 78203 rating matrix of class 'binaryRatingMatrix' with 94900 ratings.

We now have a 72 by 78203 matrix that we can work with.

The package comes with a lot of nifty built-in algorithms that can be used for both rating (e.g. 1-5 starts) and binary (0 or 1) data sets. The supported algoritms are:

  • User-based collborative filtering (UBCF)
  • Item-based collborative filtering (IBCF)
  • SVD with column-mean imputation (SVD)
  • Funk SVD (SVDF)
  • Association rule-based recommender (AR)
  • Popular items (POPULAR)
  • Randomly chosen items for comparison (RANDOM)
  • Re-recommend liked items (RERECOMMEND)
  • Hybrid recommendations (HybridRecommender)

We’ll use the UBCF algorithm in this analysis, and we won’t use the best practices of splitting the data into training and testing sets. We’ll only use the eyeball test to evaluate the model’s performance.

To generate an aggregated estimated rating, we compute the average ratings in the neighborhood for each url not shared by the user. To create a top-N recommendation list, the urls are ordered by predicted rating. The fact that some users in the neighborhood are more similar to the active user than others can be incorporated as weights.

# Build user-based collaborative filtering recommender
recommender <- Recommender(binary_matrix, method = "UBCF")

# Make top 10 recommendation list for each user
predictions <- predict(recommender, binary_matrix, type = "topNList")

Great, now let’s convert the predictions to a list and view the results!

# Convert prediction into list, user-wise
pred_list <- as(predictions, "list")
pred_list
## $`Adam Farmer`
##  [1] "open.buffer.com/product"                                                                                  
##  [2] "blog.bufferapp.com/social-media-2016"                                                                     
##  [3] "blog.bufferapp.com/new-social-media-tools-2017"                                                           
##  [4] "medium.com/m/global-identity"                                                                             
##  [5] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [6] "open.buffer.com/pablo-startup-within-a-startup"                                                           
##  [7] "open.buffer.com/diversity-in-technology"                                                                  
##  [8] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                     
##  [9] "open.buffer.com/buffer-beta-program"                                                                      
## [10] "open.buffer.com/stop-energy"                                                                              
## 
## $`Adnan Issadeen`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [2] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"   
##  [3] "medium.com/m/global-identity"                                           
##  [4] "open.buffer.com/transparent-product-roadmap"                            
##  [5] "open.buffer.com/remote-working-rv-part-one"                             
##  [6] "open.buffer.com/product"                                                
##  [7] "open.buffer.com/equal-pay"                                              
##  [8] "buffer.com/journey"                                                     
##  [9] "open.buffer.com/stop-energy"                                            
## [10] "buffer.com/respond/blog/social-media-customer-service"                  
## 
## $`Alfred Lua`
##  [1] "open.buffer.com/27-question-to-ask-instead-of-what-do-you-do"             
##  [2] "blog.bufferapp.com/free-image-sources-list"                               
##  [3] "buffer.com/2016"                                                          
##  [4] "blog.bufferapp.com/10-scientifically-proven-ways-to-make-yourself-happier"
##  [5] "blog.bufferapp.com/how-to-create-manage-facebook-business-page"           
##  [6] "open.buffer.com/pablo-startup-within-a-startup"                           
##  [7] "producthunt.com/tech/customer-support-academy"                            
##  [8] "blog.bufferapp.com/best-time-to-tweet-research"                           
##  [9] "blog.bufferapp.com/social-media-marketing-resources-kit"                  
## [10] "open.buffer.com/stop-energy"                                              
## 
## $Andrew
##  [1] "blog.bufferapp.com/7-vital-statistics-to-help-with-your-linkedin-marketing-strategy"       
##  [2] "open.bufferapp.com/transparent-pricing-buffer"                                             
##  [3] "open.bufferapp.com/buffer-distributed-team-how-we-work"                                    
##  [4] "blog.bufferapp.com/10-scientifically-proven-ways-to-make-yourself-happier"                 
##  [5] "open.bufferapp.com/raising-3-5m-funding-valuation-term-sheet"                              
##  [6] "blog.bufferapp.com/a-complete-guide-to-creating-awesome-visual-content"                    
##  [7] "blog.bufferapp.com/best-social-media-tools-for-small-business"                             
##  [8] "blog.bufferapp.com/the-most-popular-words-in-most-viral-headlines"                         
##  [9] "blog.bufferapp.com/how-to-measure-progress-in-your-personal-goals-daily-weekly-and-monthly"
## [10] "blog.bufferapp.com/the-science-of-colors-in-marketing-why-is-facebook-blue"                
## 
## $`Arielle Tannenbaum`
##  [1] "open.buffer.com/transparent-product-roadmap"                                                              
##  [2] "overflow.buffer.com/2016/02/22/timezones"                                                                 
##  [3] "open.buffer.com/product"                                                                                  
##  [4] "open.buffer.com/holidays-international-startup"                                                           
##  [5] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [6] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [7] "open.buffer.com/pablo-startup-within-a-startup"                                                           
##  [8] "soundcloud.com/bufferapp/radical-culture-episode-one"                                                     
##  [9] "open.buffer.com/buffer-beta-program"                                                                      
## [10] "medium.com/m/global-identity"                                                                             
## 
## $`Åsa Nyström`
##  [1] "open.buffer.com/buffer-acquires-respondly"                                                      
##  [2] "buffer.com/journey"                                                                             
##  [3] "blog.bufferapp.com/the-science-of-colors-in-marketing-why-is-facebook-blue"                     
##  [4] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                               
##  [5] "blog.bufferapp.com/10-scientifically-proven-ways-to-make-yourself-happier"                      
##  [6] "open.bufferapp.com/blending-work-and-life-what-remote-work-looks-like-for-families-and-partners"
##  [7] "blog.bufferapp.com/how-to-measure-progress-in-your-personal-goals-daily-weekly-and-monthly"     
##  [8] "open.buffer.com/product"                                                                        
##  [9] "timezone.io/team/buffer"                                                                        
## [10] "open.bufferapp.com/transparent-pricing-buffer"                                                  
## 
## $`Ash Read`
##  [1] "open.buffer.com/transparent-product-roadmap"                 
##  [2] "blog.bufferapp.com/social-media-analytics-tools"             
##  [3] "open.buffer.com/keep-going"                                  
##  [4] "open.buffer.com/product"                                     
##  [5] "open.buffer.com/diversity-in-technology"                     
##  [6] "open.buffer.com/27-question-to-ask-instead-of-what-do-you-do"
##  [7] "open.buffer.com/stop-energy"                                 
##  [8] "blog.bufferapp.com/social-media-marketing-resources-kit"     
##  [9] "open.buffer.com/top-words-of-buffer"                         
## [10] "open.buffer.com/buffer-acquires-respondly"                   
## 
## $`Bonnie Porter Huggins`
##  [1] "open.buffer.com/stop-energy"                                                                                            
##  [2] "open.buffer.com/feedback"                                                                                               
##  [3] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                                   
##  [4] "open.buffer.com/holidays-international-startup"                                                                         
##  [5] "open.buffer.com/pricing-2016"                                                                                           
##  [6] "open.buffer.com/work-less"                                                                                              
##  [7] "blog.bufferapp.com/social-media-2016"                                                                                   
##  [8] "open.buffer.com/buffer-beta-program"                                                                                    
##  [9] "open.buffer.com/why-startups-are-so-hard-the-future-of-buffer-and-my-biggest-mistake-so-far-tweets-from-my-airplane-ama"
## [10] "blog.bufferapp.com/facebook-reactions"                                                                                  
## 
## $`Boris Troja`
##  [1] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [2] "open.buffer.com/buffer-beta-program"                                                                      
##  [3] "buffer.com/2016"                                                                                          
##  [4] "open.buffer.com/27-question-to-ask-instead-of-what-do-you-do"                                             
##  [5] "open.buffer.com/top-words-of-buffer"                                                                      
##  [6] "open.buffer.com/equal-pay"                                                                                
##  [7] "about.gitlab.com/2017/03/14/buffer-and-gitlab-ceos-talk-transparency"                                     
##  [8] "open.buffer.com/transparent-salaries"                                                                     
##  [9] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                         
## [10] "blog.bufferapp.com/facebook-reactions"                                                                    
## 
## $`Brian Peters`
##  [1] "open.buffer.com/buffer-acquires-respondly"   
##  [2] "kickstarter.com/projects/kevanlee/gone-ahead"
##  [3] "open.buffer.com/transparency-timeline"       
##  [4] "buffer.com/bufferchat"                       
##  [5] "open.buffer.com/remote-working-rv-part-one"  
##  [6] "open.buffer.com/starting-buffer-diary"       
##  [7] "blog.bufferapp.com/social-media-calendar"    
##  [8] "open.buffer.com/growth"                      
##  [9] "forbes.com/forbes/welcome"                   
## [10] "open.buffer.com/remote-work-retreat"         
## 
## $`Carolyn Kopprasch`
##  [1] "open.bufferapp.com/buffer-distributed-team-how-we-work"                                                   
##  [2] "blog.bufferapp.com/the-10-most-important-marketing-lessons-i-learned-working-at-facebook-mint-and-appsumo"
##  [3] "blog.bufferapp.com/free-image-sources-list"                                                               
##  [4] "open.bufferapp.com/raising-3-5m-funding-valuation-term-sheet"                                             
##  [5] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                         
##  [6] "open.bufferapp.com/transparent-pricing-buffer"                                                            
##  [7] "blog.bufferapp.com/5-ways-to-get-more-done-by-working-smarter-not-harder"                                 
##  [8] "blog.bufferapp.com/best-social-media-tools-for-small-business"                                            
##  [9] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
## [10] "blog.bufferapp.com/how-to-save-time-on-social-media"                                                      
## 
## $Caryn
##  [1] "medium.com/m/global-identity"                                
##  [2] "open.buffer.com/top-words-of-buffer"                         
##  [3] "open.buffer.com/buffer-acquires-respondly"                   
##  [4] "open.buffer.com/equal-pay"                                   
##  [5] "blog.bufferapp.com/social-media-2016"                        
##  [6] "open.buffer.com/work-less"                                   
##  [7] "open.buffer.com/remote-work-retreats"                        
##  [8] "open.buffer.com/wholeness"                                   
##  [9] "open.buffer.com/transparency-meets-inconsistency"            
## [10] "open.buffer.com/27-question-to-ask-instead-of-what-do-you-do"
## 
## $`Colin Ross`
##  [1] "open.buffer.com/buffer-acquires-respondly"                                             
##  [2] "open.bufferapp.com/buffer-distributed-team-how-we-work"                                
##  [3] "open.bufferapp.com/transparent-pricing-buffer"                                         
##  [4] "blog.bufferapp.com/the-habits-of-successful-people-they-do-the-painful-things-first"   
##  [5] "blog.bufferapp.com/5-more-ways-to-work-smarter-not-harder"                             
##  [6] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                      
##  [7] "open.bufferapp.com/decision-maker-no-managers-experiment"                              
##  [8] "producthunt.com/e/tools-for-remote-teams"                                              
##  [9] "blog.bufferapp.com/the-science-of-time-perception-how-to-make-your-days-longer"        
## [10] "blog.bufferapp.com/which-words-matter-the-most-when-we-talk-the-psychology-of-language"
## 
## $`Courtney Seiter`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                         
##  [2] "blog.bufferapp.com/the-mistake-smart-people-make-being-in-motion-vs-taking-action"               
##  [3] "medium.com/@michael_erasmus/how-i-found-my-ideal-lifestyle-through-working-remotely-deb7ba8be5c9"
##  [4] "medium.com/m/global-identity"                                                                    
##  [5] "99u.com/articles/24401/a-makers-guidebook-9-stoic-principles-to-nurture-your-life-and-work"      
##  [6] "sparringmind.com/benefits-of-writing"                                                            
##  [7] "producthunt.com/tech/customer-support-academy"                                                   
##  [8] "quicksprout.com/2014/04/14/how-these-15-types-of-content-will-drive-you-more-traffic"            
##  [9] "socialmediaexaminer.com/16-blogging-resources-improve-blog"                                      
## [10] "open.bufferapp.com/customer-development-interviews-using-twitter"                                
## 
## $Dan
##  [1] "open.bufferapp.com/buffer-distributed-team-how-we-work"                    
##  [2] "buffer.com/journey"                                                        
##  [3] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"          
##  [4] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"   
##  [5] "blog.bufferapp.com/the-science-of-colors-in-marketing-why-is-facebook-blue"
##  [6] "blog.bufferapp.com/free-image-sources-list"                                
##  [7] "open.bufferapp.com/transparent-pricing-buffer"                             
##  [8] "buffer.com/gifs-for-social-media"                                          
##  [9] "producthunt.com/tech/customer-support-academy"                             
## [10] "blog.bufferapp.com/a-complete-guide-to-creating-awesome-visual-content"    
## 
## $`Dan Farrelly`
##  [1] "open.buffer.com/buffer-acquires-respondly"                                                      
##  [2] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                               
##  [3] "buffer.com/journey"                                                                             
##  [4] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                        
##  [5] "open.bufferapp.com/decision-maker-no-managers-experiment"                                       
##  [6] "open.bufferapp.com/raising-3-5m-funding-valuation-term-sheet"                                   
##  [7] "open.bufferapp.com/blending-work-and-life-what-remote-work-looks-like-for-families-and-partners"
##  [8] "blog.bufferapp.com/buffer-for-video"                                                            
##  [9] "open.bufferapp.com/diversity-dashboard"                                                         
## [10] "blog.bufferapp.com/improve-your-marketing-unique-new-ideas"                                     
## 
## $`Daniel Siemaszkiewicz`
##  [1] "open.buffer.com/keep-going"                    
##  [2] "open.buffer.com/wholeness"                     
##  [3] "open.buffer.com/product"                       
##  [4] "overflow.buffer.com/2016/02/22/timezones"      
##  [5] "blog.bufferapp.com/snapchat"                   
##  [6] "open.buffer.com/pricing-2016"                  
##  [7] "open.buffer.com/holidays-international-startup"
##  [8] "open.buffer.com/top-words-of-buffer"           
##  [9] "medium.com/m/global-identity"                  
## [10] "open.buffer.com/diversity-in-technology"       
## 
## $`Danny Mulcahy`
##  [1] "medium.com/m/global-identity"                                                                                           
##  [2] "overflow.buffer.com/2016/02/22/timezones"                                                                               
##  [3] "open.buffer.com/product"                                                                                                
##  [4] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                                   
##  [5] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                                
##  [6] "open.buffer.com/transparent-product-roadmap"                                                                            
##  [7] "open.buffer.com/why-startups-are-so-hard-the-future-of-buffer-and-my-biggest-mistake-so-far-tweets-from-my-airplane-ama"
##  [8] "buffer.com/2016"                                                                                                        
##  [9] "open.buffer.com/keep-going"                                                                                             
## [10] "producthunt.com/tech/customer-support-academy"                                                                          
## 
## $`Darcy Peters`
##  [1] "blog.bufferapp.com/new-social-media-tools-2017"                         
##  [2] "open.buffer.com/product"                                                
##  [3] "blog.bufferapp.com/social-media-2016"                                   
##  [4] "open.buffer.com/be-less-busy"                                           
##  [5] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [6] "blog.bufferapp.com/idea-curation-get-more-ideas"                        
##  [7] "overflow.buffer.com/2016/02/22/timezones"                               
##  [8] "open.buffer.com/top-10-learnings-growing-to-10-million-arr"             
##  [9] "blog.bufferapp.com/10-social-media-goals"                               
## [10] "blog.bufferapp.com/snapchat"                                            
## 
## $`dave chapman`
##  [1] "open.buffer.com/buffer-acquires-respondly"                                                                
##  [2] "blog.bufferapp.com/marketing"                                                                             
##  [3] "blog.bufferapp.com/the-science-of-colors-in-marketing-why-is-facebook-blue"                               
##  [4] "blog.bufferapp.com/a-complete-guide-to-creating-awesome-visual-content"                                   
##  [5] "blog.bufferapp.com/get-more-followers-twitter-facebook-research"                                          
##  [6] "blog.bufferapp.com/7-vital-statistics-to-help-with-your-linkedin-marketing-strategy"                      
##  [7] "blog.bufferapp.com/the-10-most-important-marketing-lessons-i-learned-working-at-facebook-mint-and-appsumo"
##  [8] "blog.bufferapp.com/how-to-save-time-on-social-media"                                                      
##  [9] "medium.com/m/global-identity"                                                                             
## [10] "blog.bufferapp.com/twitter-tips-for-beginners"                                                            
## 
## $`Dave O'Callaghan`
##  [1] "overflow.buffer.com/2016/02/22/timezones"                               
##  [2] "open.buffer.com/buffer-acquires-respondly"                              
##  [3] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [4] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"   
##  [5] "open.buffer.com/transparency-timeline"                                  
##  [6] "timezone.io/team/buffer"                                                
##  [7] "open.buffer.com/transparent-product-roadmap"                            
##  [8] "open.buffer.com/growth"                                                 
##  [9] "open.bufferapp.com/startup-mindset"                                     
## [10] "open.buffer.com/holidays-international-startup"                         
## 
## $`David Gasquez`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [2] "overflow.buffer.com/2016/02/22/timezones"                                                                 
##  [3] "overflow.buffer.com/2016/02/11/slack-meet-looker-an-experiment-in-bringing-data-to-the-team"              
##  [4] "open.buffer.com/equal-pay"                                                                                
##  [5] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                     
##  [6] "open.buffer.com/buffer-acquires-respondly"                                                                
##  [7] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [8] "expeditedssl.com/aws-in-plain-english"                                                                    
##  [9] "overflow.buffer.com/2016/03/28/building-slack-slash-commands-with-aws-lambda"                             
## [10] "medium.com/@michael_erasmus/how-i-found-my-ideal-lifestyle-through-working-remotely-deb7ba8be5c9"         
## 
## $`David Saunders`
##  [1] "medium.com/m/global-identity"                                                                                           
##  [2] "open.buffer.com/keep-going"                                                                                             
##  [3] "open.buffer.com/pricing-2016"                                                                                           
##  [4] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                                       
##  [5] "open.buffer.com/buffer-acquires-respondly"                                                                              
##  [6] "open.buffer.com/stop-energy"                                                                                            
##  [7] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                                
##  [8] "open.buffer.com/product"                                                                                                
##  [9] "buffer.com/journey"                                                                                                     
## [10] "open.buffer.com/why-startups-are-so-hard-the-future-of-buffer-and-my-biggest-mistake-so-far-tweets-from-my-airplane-ama"
## 
## $`Déborah RIPPOL`
##  [1] "open.buffer.com/transparent-product-roadmap"                                            
##  [2] "open.buffer.com/product"                                                                
##  [3] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                   
##  [4] "open.buffer.com/holidays-international-startup"                                         
##  [5] "open.buffer.com/stop-energy"                                                            
##  [6] "open.buffer.com/buffer-acquires-respondly"                                              
##  [7] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"
##  [8] "open.buffer.com/wholeness"                                                              
##  [9] "open.buffer.com/buffer-beta-program"                                                    
## [10] "open.buffer.com/keep-going"                                                             
## 
## $`Emily Mae`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                              
##  [2] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                 
##  [3] "open.buffer.com/wholeness"                                                                            
##  [4] "open.buffer.com/buffer-acquires-respondly"                                                            
##  [5] "overflow.buffer.com/2016/02/22/timezones"                                                             
##  [6] "open.buffer.com/stop-energy"                                                                          
##  [7] "open.buffer.com/transparent-product-roadmap"                                                          
##  [8] "bradfrost.com/blog/post/atomic-web-design"                                                            
##  [9] "blog.bufferapp.com/optimal-work-time-how-long-should-we-work-every-day-the-science-of-mental-strength"
## [10] "medium.com/m/global-identity"                                                                         
## 
## $`Eric Khun`
##  [1] "open.buffer.com/buffer-acquires-respondly"                           
##  [2] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"
##  [3] "medium.com/m/global-identity"                                        
##  [4] "open.buffer.com/transparent-product-roadmap"                         
##  [5] "open.buffer.com/27-question-to-ask-instead-of-what-do-you-do"        
##  [6] "blog.bufferapp.com/hello-respond"                                    
##  [7] "open.buffer.com/growth"                                              
##  [8] "buffer.com/2016"                                                     
##  [9] "open.buffer.com/work-less"                                           
## [10] "open.buffer.com/top-books-2015"                                      
## 
## $`Federico Weber`
##  [1] "medium.com/m/global-identity"                                                                             
##  [2] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"                  
##  [3] "open.buffer.com/buffer-acquires-respondly"                                                                
##  [4] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [5] "open.buffer.com/feedback"                                                                                 
##  [6] "open.buffer.com/stop-energy"                                                                              
##  [7] "producthunt.com/tech/customer-support-academy"                                                            
##  [8] "open.buffer.com/buffer-beta-program"                                                                      
##  [9] "open.buffer.com/product"                                                                                  
## [10] "open.bufferapp.com/startup-mindset"                                                                       
## 
## $`Hailley Mari`
##  [1] "open.buffer.com/product"                                                     
##  [2] "open.buffer.com/keep-going"                                                  
##  [3] "open.buffer.com/pablo-startup-within-a-startup"                              
##  [4] "blog.bufferapp.com/marketing"                                                
##  [5] "blog.bufferapp.com/a-complete-guide-to-creating-awesome-visual-content"      
##  [6] "open.buffer.com/5-ways-to-break-your-filter-bubble-and-gain-new-perspectives"
##  [7] "open.buffer.com/buffer-acquires-respondly"                                   
##  [8] "blog.bufferapp.com/free-twitter-tools"                                       
##  [9] "open.buffer.com/27-question-to-ask-instead-of-what-do-you-do"                
## [10] "blog.bufferapp.com/free-image-sources-list"                                  
## 
## $`Hamish Macpherson`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [2] "overflow.buffer.com/2016/02/22/timezones"                                                                 
##  [3] "open.buffer.com/buffer-acquires-respondly"                                                                
##  [4] "open.buffer.com/feedback"                                                                                 
##  [5] "open.buffer.com/transparent-product-roadmap"                                                              
##  [6] "medium.com/m/global-identity"                                                                             
##  [7] "buffer.com/respond/blog/why-everyone-at-respond-does-customer-support"                                    
##  [8] "open.buffer.com/equal-pay"                                                                                
##  [9] "open.buffer.com/stop-energy"                                                                              
## [10] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
## 
## $`Hannah Voice`
##  [1] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                     
##  [2] "medium.com/m/global-identity"                                                                             
##  [3] "open.buffer.com/feedback"                                                                                 
##  [4] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [5] "open.buffer.com/equal-pay"                                                                                
##  [6] "open.buffer.com/no-office"                                                                                
##  [7] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [8] "buffer.com/2016"                                                                                          
##  [9] "blog.bufferapp.com/social-media-marketing-resources-kit"                                                  
## [10] "soundcloud.com/bufferapp/radical-culture-episode-one"                                                     
## 
## $`Harrison Harnisch`
##  [1] "blog.bufferapp.com/how-to-repost-on-instagram"                                
##  [2] "open.buffer.com/keep-going"                                                   
##  [3] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"      
##  [4] "open.buffer.com/buffer-values"                                                
##  [5] "t.co"                                                                         
##  [6] "overflow.buffer.com/2016/02/22/timezones"                                     
##  [7] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"         
##  [8] "design.blog/2017/03/23/catt-small-on-designing-an-inclusive-workplace-culture"
##  [9] "devex.com/news/no-cuts-to-uk-aid-in-2015-2016-81322"                          
## [10] "donutjs.club/speak"                                                           
## 
## $`Humber Aquino`
##  [1] "open.buffer.com/product"                                                                
##  [2] "open.buffer.com/holidays-international-startup"                                         
##  [3] "open.buffer.com/equal-pay"                                                              
##  [4] "open.buffer.com/buffer-beta-program"                                                    
##  [5] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"
##  [6] "open.buffer.com/stop-energy"                                                            
##  [7] "open.buffer.com/keep-going"                                                             
##  [8] "buffer.com/journey"                                                                     
##  [9] "timezone.io/team/buffer"                                                                
## [10] "open.buffer.com/transparency-timeline"                                                  
## 
## $`Ivana Zuber`
##  [1] "open.bufferapp.com/buffer-distributed-team-how-we-work"                                          
##  [2] "open.bufferapp.com/transparent-pricing-buffer"                                                   
##  [3] "producthunt.com/e/tools-for-remote-teams"                                                        
##  [4] "open.bufferapp.com/decision-maker-no-managers-experiment"                                        
##  [5] "open.bufferapp.com/raising-3-5m-funding-valuation-term-sheet"                                    
##  [6] "open.bufferapp.com/send-better-email"                                                            
##  [7] "open.bufferapp.com/side-projects-creative-hobbies"                                               
##  [8] "blog.bufferapp.com/social-media-goals"                                                           
##  [9] "blog.bufferapp.com/social-media-marketing-resources-kit"                                         
## [10] "medium.com/@michael_erasmus/how-i-found-my-ideal-lifestyle-through-working-remotely-deb7ba8be5c9"
## 
## $`James Morris`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                
##  [2] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                   
##  [3] "medium.com/m/global-identity"                                                           
##  [4] "open.buffer.com/buffer-acquires-respondly"                                              
##  [5] "open.buffer.com/buffer-beta-program"                                                    
##  [6] "open.buffer.com/remote-working-rv-part-one"                                             
##  [7] "open.buffer.com/holidays-international-startup"                                         
##  [8] "open.buffer.com/product"                                                                
##  [9] "open.buffer.com/stop-energy"                                                            
## [10] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"
## 
## $`Jenny Terry`
##  [1] "youtube.com/watch"                                                                                        
##  [2] "open.buffer.com/stop-energy"                                                                              
##  [3] "open.buffer.com/transparent-product-roadmap"                                                              
##  [4] "blog.bufferapp.com/social-media-2016"                                                                     
##  [5] "open.buffer.com/equal-pay"                                                                                
##  [6] "open.buffer.com/keep-going"                                                                               
##  [7] "overflow.buffer.com/2016/02/22/timezones"                                                                 
##  [8] "open.buffer.com/feedback"                                                                                 
##  [9] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
## [10] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
## 
## $`Jess Williams`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [2] "open.buffer.com/buffer-acquires-respondly"                              
##  [3] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"   
##  [4] "overflow.buffer.com/2016/02/22/timezones"                               
##  [5] "open.buffer.com/what-family-leave-really-looks-like-at-a-tech-startup"  
##  [6] "open.buffer.com/wholeness"                                              
##  [7] "open.buffer.com/keep-going"                                             
##  [8] "medium.com/m/global-identity"                                           
##  [9] "open.buffer.com/equal-pay"                                              
## [10] "open.buffer.com/transparent-product-roadmap"                            
## 
## $`Joe Birch`
##  [1] "youtube.com/watch"                                                                      
##  [2] "medium.com/m/global-identity"                                                           
##  [3] "overflow.buffer.com/2016/02/22/timezones"                                               
##  [4] "opensource.com/open-organization/16/5/buffer-open-culture"                              
##  [5] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                   
##  [6] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                
##  [7] "open.buffer.com/transparent-product-roadmap"                                            
##  [8] "open.buffer.com/buffer-acquires-respondly"                                              
##  [9] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"
## [10] "open.buffer.com/holidays-international-startup"                                         
## 
## $`Joel Gascoigne`
##  [1] "blog.bufferapp.com/the-10-most-important-marketing-lessons-i-learned-working-at-facebook-mint-and-appsumo"
##  [2] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                         
##  [3] "open.bufferapp.com/customer-service-emails-words"                                                         
##  [4] "blog.bufferapp.com/7-vital-statistics-to-help-with-your-linkedin-marketing-strategy"                      
##  [5] "open.bufferapp.com/diversity-dashboard"                                                                   
##  [6] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [7] "blog.bufferapp.com/how-to-create-manage-facebook-business-page"                                           
##  [8] "blog.bufferapp.com/how-to-measure-progress-in-your-personal-goals-daily-weekly-and-monthly"               
##  [9] "blog.bufferapp.com/the-science-of-colors-in-marketing-why-is-facebook-blue"                               
## [10] "buffer.com/journey"                                                                                       
## 
## $`Jordan Morgan`
##  [1] "overflow.buffer.com/2016/02/22/timezones"             
##  [2] "open.buffer.com/buffer-acquires-respondly"            
##  [3] "open.buffer.com/transparent-product-roadmap"          
##  [4] "open.buffer.com/holidays-international-startup"       
##  [5] "buffer.com/respond/blog/social-media-customer-service"
##  [6] "open.buffer.com/feedback"                             
##  [7] "open.buffer.com/product"                              
##  [8] "open.buffer.com/top-words-of-buffer"                  
##  [9] "open.buffer.com/partner-buffer-retreat"               
## [10] "open.buffer.com/transparent-salaries"                 
## 
## $`José Manuel`
##  [1] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                         
##  [2] "open.buffer.com/buffer-acquires-respondly"                                                                
##  [3] "overflow.buffer.com/2016/02/22/timezones"                                                                 
##  [4] "blog.bufferapp.com/the-10-most-important-marketing-lessons-i-learned-working-at-facebook-mint-and-appsumo"
##  [5] "buffer.com/journey"                                                                                       
##  [6] "blog.bufferapp.com/a-complete-guide-to-creating-awesome-visual-content"                                   
##  [7] "open.bufferapp.com/startup-mindset"                                                                       
##  [8] "blog.remotive.io/buffer-retreat-in-iceland-from-inside"                                                   
##  [9] "open.bufferapp.com/buffer-distributed-team-how-we-work"                                                   
## [10] "medium.com/m/global-identity"                                                                             
## 
## $`Julia Breathes`
##  [1] "open.buffer.com/transparent-product-roadmap"                                                                            
##  [2] "blog.bufferapp.com/social-media-analytics-tools"                                                                        
##  [3] "open.buffer.com/pricing-2016"                                                                                           
##  [4] "thought-leadership.top-consultant.com/uk/FullArticle.aspx"                                                              
##  [5] "open.buffer.com/product"                                                                                                
##  [6] "blog.bufferapp.com/social-media-design-tips"                                                                            
##  [7] "open.buffer.com/why-startups-are-so-hard-the-future-of-buffer-and-my-biggest-mistake-so-far-tweets-from-my-airplane-ama"
##  [8] "buffer.com/2016"                                                                                                        
##  [9] "open.buffer.com/productivity-tips-digital-nomads"                                                                       
## [10] "blog.bufferapp.com/facebook-reactions"                                                                                  
## 
## $`Julian Winternheimer`
##  [1] "open.buffer.com/transparent-product-roadmap"                                                     
##  [2] "open.buffer.com/holidays-international-startup"                                                  
##  [3] "open.buffer.com/pricing-2016"                                                                    
##  [4] "open.buffer.com/feedback"                                                                        
##  [5] "open.buffer.com/stop-energy"                                                                     
##  [6] "open.bufferapp.com/blending-work-and-life-what-remote-work-looks-like-for-families-and-partners" 
##  [7] "open.buffer.com/wholeness"                                                                       
##  [8] "medium.com/@michael_erasmus/how-i-found-my-ideal-lifestyle-through-working-remotely-deb7ba8be5c9"
##  [9] "open.buffer.com/keep-going"                                                                      
## [10] "open.buffer.com/top-words-of-buffer"                                                             
## 
## $`Juliet Chen`
##  [1] "open.buffer.com/product"                                                            
##  [2] "open.buffer.com/keep-going"                                                         
##  [3] "open.buffer.com/transparent-product-roadmap"                                        
##  [4] "buffer.com/2016"                                                                    
##  [5] "open.buffer.com/pricing-2016"                                                       
##  [6] "blog.bufferapp.com/new-social-media-tools-2017"                                     
##  [7] "blog.bufferapp.com/idea-curation-get-more-ideas"                                    
##  [8] "blog.bufferapp.com/7-vital-statistics-to-help-with-your-linkedin-marketing-strategy"
##  [9] "blog.bufferapp.com/how-to-create-powerful-twitter-bio"                              
## [10] "open.buffer.com/no-office"                                                          
## 
## $`Karinna Briseno`
##  [1] "open.buffer.com/transparent-product-roadmap"                            
##  [2] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [3] "open.buffer.com/stop-energy"                                            
##  [4] "overflow.buffer.com/2016/02/22/timezones"                               
##  [5] "open.buffer.com/top-10-learnings-growing-to-10-million-arr"             
##  [6] "open.buffer.com/transparency-meets-inconsistency"                       
##  [7] "open.buffer.com/remote-working-rv-part-one"                             
##  [8] "open.buffer.com/productivity-tips-digital-nomads"                       
##  [9] "open.buffer.com/pricing-2016"                                           
## [10] "open.buffer.com/pablo-startup-within-a-startup"                         
## 
## $Katie
##  [1] "open.buffer.com/transparent-product-roadmap"                            
##  [2] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [3] "open.buffer.com/product"                                                
##  [4] "medium.com/m/global-identity"                                           
##  [5] "open.buffer.com/holidays-international-startup"                         
##  [6] "open.buffer.com/feedback"                                               
##  [7] "open.buffer.com/buffer-acquires-respondly"                              
##  [8] "open.buffer.com/stop-energy"                                            
##  [9] "buffer.com/journey"                                                     
## [10] "open.buffer.com/equal-pay"                                              
## 
## $`Kelly Vass`
##  [1] "open.buffer.com/transparent-product-roadmap"                                                              
##  [2] "open.buffer.com/product"                                                                                  
##  [3] "open.buffer.com/buffer-acquires-respondly"                                                                
##  [4] "overflow.buffer.com/2016/02/22/timezones"                                                                 
##  [5] "open.buffer.com/holidays-international-startup"                                                           
##  [6] "open.buffer.com/stop-energy"                                                                              
##  [7] "open.buffer.com/27-question-to-ask-instead-of-what-do-you-do"                                             
##  [8] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [9] "open.buffer.com/what-family-leave-really-looks-like-at-a-tech-startup"                                    
## [10] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
## 
## $`Kevan Lee`
##  [1] "producthunt.com/e/tools-for-remote-teams"                                                                 
##  [2] "open.buffer.com/no-office"                                                                                
##  [3] "open.bufferapp.com/distributed-team-benefits"                                                             
##  [4] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [5] "open.buffer.com/transparent-product-roadmap"                                                              
##  [6] "open.buffer.com/product"                                                                                  
##  [7] "blog.bufferapp.com/social-media-calendar"                                                                 
##  [8] "open.buffer.com/diversity-in-technology"                                                                  
##  [9] "open.buffer.com/remote-work-gear"                                                                         
## [10] "open.buffer.com/stop-energy"                                                                              
## 
## $`Marcus Wermuth`
##  [1] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [2] "open.buffer.com/product"                                                                                  
##  [3] "open.buffer.com/wholeness"                                                                                
##  [4] "open.buffer.com/remote-working-rv-part-one"                                                               
##  [5] "open.buffer.com/equal-pay"                                                                                
##  [6] "open.buffer.com/buffer-beta-program"                                                                      
##  [7] "buffer.com/respond/blog/social-media-customer-service"                                                    
##  [8] "open.buffer.com/team-bonding-retreat"                                                                     
##  [9] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
## [10] "buffer.com/journey"                                                                                       
## 
## $`Matt Allen`
##  [1] "overflow.buffer.com/2016/02/22/timezones"                                               
##  [2] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                   
##  [3] "open.buffer.com/transparent-product-roadmap"                                            
##  [4] "medium.com/m/global-identity"                                                           
##  [5] "open.buffer.com/stop-energy"                                                            
##  [6] "open.buffer.com/feedback"                                                               
##  [7] "open.buffer.com/buffer-beta-program"                                                    
##  [8] "open.buffer.com/equal-pay"                                                              
##  [9] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"
## [10] "open.buffer.com/growth"                                                                 
## 
## $`maxime berthelot`
##  [1] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                         
##  [2] "blog.bufferapp.com/improve-your-marketing-unique-new-ideas"                                               
##  [3] "blog.bufferapp.com/get-more-followers-twitter-facebook-research"                                          
##  [4] "blog.bufferapp.com/the-10-most-important-marketing-lessons-i-learned-working-at-facebook-mint-and-appsumo"
##  [5] "open.buffer.com/product"                                                                                  
##  [6] "blog.bufferapp.com/a-complete-guide-to-creating-awesome-visual-content"                                   
##  [7] "blog.bufferapp.com/how-to-create-powerful-twitter-bio"                                                    
##  [8] "blog.bufferapp.com/instagram-for-business"                                                                
##  [9] "open.bufferapp.com/transparent-pricing-buffer"                                                            
## [10] "buffer.com/journey"                                                                                       
## 
## $`Melissa Alvarez`
##  [1] "youtube.com/watch"                                                                      
##  [2] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"
##  [3] "alexkras.com/19-git-tips-for-everyday-use"                                              
##  [4] "expeditedssl.com/aws-in-plain-english"                                                  
##  [5] "jdlm.info/articles/2016/07/04/cto-time-minute-by-minute.html"                           
##  [6] "kite.com"                                                                               
##  [7] "tranquilmonkey.com/hunter-s-thompsons-extraordinary-letter-on-finding-your-purpose"     
##  [8] "github.com/alex/what-happens-when"                                                      
##  [9] "medium.com/@stewart/we-dont-sell-saddles-here-4c59524d650d"                             
## [10] "overflow.buffer.com/2016/02/08/retreat-app"                                             
## 
## $`Michael Eckstein`
##  [1] "overflow.buffer.com/2016/02/22/timezones"                                                                               
##  [2] "open.buffer.com/holidays-international-startup"                                                                         
##  [3] "open.buffer.com/pricing-2016"                                                                                           
##  [4] "blog.bufferapp.com/social-media-marketing-resources-kit"                                                                
##  [5] "blog.bufferapp.com/facebook-reactions"                                                                                  
##  [6] "open.buffer.com/why-startups-are-so-hard-the-future-of-buffer-and-my-biggest-mistake-so-far-tweets-from-my-airplane-ama"
##  [7] "open.buffer.com/partner-buffer-retreat"                                                                                 
##  [8] "blog.bufferapp.com/social-media-analytics-tools"                                                                        
##  [9] "open.buffer.com/remote-work-retreats"                                                                                   
## [10] "buffer.com/journey"                                                                                                     
## 
## $`Michael Erasmus`
##  [1] "blog.bufferapp.com/free-image-sources-list"                                                               
##  [2] "blog.bufferapp.com/the-10-most-important-marketing-lessons-i-learned-working-at-facebook-mint-and-appsumo"
##  [3] "open.bufferapp.com/customer-service-emails-words"                                                         
##  [4] "open.bufferapp.com/mainstream-news"                                                                       
##  [5] "blog.bufferapp.com/gifs"                                                                                  
##  [6] "blog.bufferapp.com/how-to-save-time-on-social-media"                                                      
##  [7] "blog.bufferapp.com/a-complete-guide-to-creating-awesome-visual-content"                                   
##  [8] "buffer.com/gifs-for-social-media"                                                                         
##  [9] "blog.bufferapp.com/facebook-tools"                                                                        
## [10] "blog.bufferapp.com/marketing"                                                                             
## 
## $`Mick Mahady`
##  [1] "open.buffer.com/transparent-product-roadmap"                         
##  [2] "medium.com/m/global-identity"                                        
##  [3] "blog.bufferapp.com/social-media-analytics-tools"                     
##  [4] "open.buffer.com/keep-going"                                          
##  [5] "blog.bufferapp.com/social-media-2016"                                
##  [6] "blog.bufferapp.com/snapchat"                                         
##  [7] "blog.bufferapp.com/animated-gifs"                                    
##  [8] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"
##  [9] "open.buffer.com/pablo-startup-within-a-startup"                      
## [10] "open.buffer.com/diversity-in-technology"                             
## 
## $`Miguel San Román`
##  [1] "blog.bufferapp.com/the-science-of-colors-in-marketing-why-is-facebook-blue"                           
##  [2] "blog.bufferapp.com/get-more-followers-twitter-facebook-research"                                      
##  [3] "open.buffer.com/transparent-product-roadmap"                                                          
##  [4] "open.buffer.com/buffer-acquires-respondly"                                                            
##  [5] "open.buffer.com/remote-work-gear"                                                                     
##  [6] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                     
##  [7] "open.buffer.com/sorry"                                                                                
##  [8] "blog.bufferapp.com/optimal-work-time-how-long-should-we-work-every-day-the-science-of-mental-strength"
##  [9] "blog.bufferapp.com/social-media-analytics-tools"                                                      
## [10] "about.gitlab.com/2017/03/14/buffer-and-gitlab-ceos-talk-transparency"                                 
## 
## $`Nicole M Miller`
##  [1] "open.buffer.com/buffer-acquires-respondly"                                                            
##  [2] "blog.bufferapp.com/the-science-of-smiling-a-guide-to-humans-most-powerful-gesture"                    
##  [3] "blog.bufferapp.com/twitter-tips-for-beginners"                                                        
##  [4] "open.bufferapp.com/customer-service-emails-words"                                                     
##  [5] "blog.bufferapp.com/social-media-analytics-tools"                                                      
##  [6] "blog.bufferapp.com/which-words-matter-the-most-when-we-talk-the-psychology-of-language"               
##  [7] "blog.bufferapp.com/the-mistake-smart-people-make-being-in-motion-vs-taking-action"                    
##  [8] "blog.bufferapp.com/optimal-work-time-how-long-should-we-work-every-day-the-science-of-mental-strength"
##  [9] "blog.bufferapp.com/instagram-for-business"                                                            
## [10] "julheimer.com/blog/2015/4/23/what-i-learned-doing-customer-support-exclusively-for-a-week"            
## 
## $`Octavio Aburto`
##  [1] "blog.bufferapp.com/the-habits-of-successful-people-they-do-the-painful-things-first"
##  [2] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                   
##  [3] "blog.bufferapp.com/a-scientific-guide-to-hashtags-which-ones-work-when-and-how-many"
##  [4] "open.bufferapp.com/raising-3-5m-funding-valuation-term-sheet"                       
##  [5] "blog.bufferapp.com/free-twitter-tools"                                              
##  [6] "blog.bufferapp.com/improve-your-marketing-unique-new-ideas"                         
##  [7] "open.bufferapp.com/decision-maker-no-managers-experiment"                           
##  [8] "blog.bufferapp.com/3-remarkable-lessons-on-mental-strength-from-the-marathon-monks" 
##  [9] "buffer.com/journey"                                                                 
## [10] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"            
## 
## $`Paul Thomson`
##  [1] "open.buffer.com/keep-going"                      
##  [2] "open.buffer.com/transparent-product-roadmap"     
##  [3] "blog.bufferapp.com/social-media-analytics-tools" 
##  [4] "open.buffer.com/sorry"                           
##  [5] "blog.bufferapp.com/facebook-reactions"           
##  [6] "blog.bufferapp.com/social-media-slideshares-2016"
##  [7] "blog.bufferapp.com/snapchat"                     
##  [8] "blog.bufferapp.com/facebook-tips"                
##  [9] "open.buffer.com/top-words-of-buffer"             
## [10] "blog.bufferapp.com/social-media-studies-2016"    
## 
## $Philippe
##  [1] "medium.com/@michael_erasmus/how-i-found-my-ideal-lifestyle-through-working-remotely-deb7ba8be5c9"
##  [2] "open.buffer.com/buffer-acquires-respondly"                                                       
##  [3] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                         
##  [4] "overflow.buffer.com/2016/02/22/timezones"                                                        
##  [5] "timezone.io/team/buffer"                                                                         
##  [6] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                            
##  [7] "open.buffer.com/stop-energy"                                                                     
##  [8] "open.buffer.com/product"                                                                         
##  [9] "jobs.bufferapp.com/growth-hacker"                                                                
## [10] "open.bufferapp.com/job-descriptions-diversity"                                                   
## 
## $`Philippe Miguet`
##  [1] "open.buffer.com/product"                                                                         
##  [2] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"                                
##  [3] "open.buffer.com/product-team-evolution"                                                          
##  [4] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                         
##  [5] "open.buffer.com/stop-energy"                                                                     
##  [6] "blog.bufferapp.com/best-time-to-tweet-research"                                                  
##  [7] "buffer.com/journey"                                                                              
##  [8] "open.buffer.com/no-office"                                                                       
##  [9] "overflow.buffer.com/2016/02/22/timezones"                                                        
## [10] "medium.com/@michael_erasmus/how-i-found-my-ideal-lifestyle-through-working-remotely-deb7ba8be5c9"
## 
## $`Ross Parmly`
##  [1] "inc.com/jeff-haden/the-7-million-startup-with-zero-managers.html"       
##  [2] "open.buffer.com/buffer-acquires-respondly"                              
##  [3] "buffer.com/gifs-for-social-media"                                       
##  [4] "open.buffer.com/product"                                                
##  [5] "blog.bufferapp.com/improve-your-marketing-unique-new-ideas"             
##  [6] "open.buffer.com/stop-energy"                                            
##  [7] "buffer.com/journey"                                                     
##  [8] "overflow.buffer.com/2016/02/22/timezones"                               
##  [9] "open.buffer.com/transparency-timeline"                                  
## [10] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
## 
## $`Roy Opata Olende`
##  [1] "open.buffer.com/product"                                                
##  [2] "open.buffer.com/keep-going"                                             
##  [3] "open.buffer.com/transparent-product-roadmap"                            
##  [4] "open.buffer.com/wholeness"                                              
##  [5] "open.buffer.com/stop-energy"                                            
##  [6] "open.buffer.com/buffer-acquires-respondly"                              
##  [7] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [8] "buffer.com/journey"                                                     
##  [9] "overflow.buffer.com/2016/02/22/timezones"                               
## [10] "open.buffer.com/top-words-of-buffer"                                    
## 
## $`Spencer Lanoue`
##  [1] "youtube.com/watch"                                                      
##  [2] "medium.com/m/global-identity"                                           
##  [3] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [4] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"   
##  [5] "open.buffer.com/buffer-acquires-respondly"                              
##  [6] "open.buffer.com/wholeness"                                              
##  [7] "open.buffer.com/transparent-product-roadmap"                            
##  [8] "overflow.buffer.com/2016/02/22/timezones"                               
##  [9] "twitter.com/getrespond/status/775966987633778688/photo/1"               
## [10] "open.buffer.com/feedback"                                               
## 
## $`Stephanie Lee`
##  [1] "overflow.buffer.com/2016/02/22/timezones"      
##  [2] "open.buffer.com/transparent-product-roadmap"   
##  [3] "open.buffer.com/buffer-acquires-respondly"     
##  [4] "open.buffer.com/product"                       
##  [5] "medium.com/m/global-identity"                  
##  [6] "buffer.com/journey"                            
##  [7] "open.buffer.com/holidays-international-startup"
##  [8] "open.buffer.com/wholeness"                     
##  [9] "open.buffer.com/feedback"                      
## [10] "open.buffer.com/equal-pay"                     
## 
## $`Steve Dixon`
##  [1] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                     
##  [2] "open.buffer.com/product"                                                                                  
##  [3] "medium.com/m/global-identity"                                                                             
##  [4] "open.buffer.com/feedback"                                                                                 
##  [5] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [6] "open.buffer.com/wholeness"                                                                                
##  [7] "open.buffer.com/remote-working-rv-part-one"                                                               
##  [8] "open.buffer.com/remote-work-retreats"                                                                     
##  [9] "producthunt.com/tech/customer-support-academy"                                                            
## [10] "open.buffer.com/stop-energy"                                                                              
## 
## $`Steven Cheng`
##  [1] "buffer.com/journey"                                                                                   
##  [2] "open.buffer.com/buffer-acquires-respondly"                                                            
##  [3] "overflow.buffer.com/2016/02/22/timezones"                                                             
##  [4] "blog.bufferapp.com/optimal-work-time-how-long-should-we-work-every-day-the-science-of-mental-strength"
##  [5] "open.buffer.com/product"                                                                              
##  [6] "open.buffer.com/holidays-international-startup"                                                       
##  [7] "timezone.io/team/buffer"                                                                              
##  [8] "open.buffer.com/wholeness"                                                                            
##  [9] "medium.com/m/global-identity"                                                                         
## [10] "open.buffer.com/transparent-product-roadmap"                                                          
## 
## $`Suprasanna Mishra`
##  [1] "open.buffer.com/buffer-acquires-respondly"                                                                
##  [2] "open.buffer.com/stop-energy"                                                                              
##  [3] "opensource.com/open-organization/16/5/buffer-open-culture"                                                
##  [4] "open.buffer.com/product"                                                                                  
##  [5] "open.buffer.com/holidays-international-startup"                                                           
##  [6] "open.buffer.com/feedback"                                                                                 
##  [7] "overflow.buffer.com/2016/03/31/how-we-saved-132k-a-year-by-spring-cleaning-our-back-end"                  
##  [8] "open.buffer.com/growth"                                                                                   
##  [9] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
## [10] "open.buffer.com/wholeness"                                                                                
## 
## $`Thomas Alexander Dunn`
##  [1] "blog.bufferapp.com/how-to-create-manage-facebook-business-page"
##  [2] "buffer.com/journey"                                            
##  [3] "open.buffer.com/buffer-acquires-respondly"                     
##  [4] "open.bufferapp.com/buffer-distributed-team-how-we-work"        
##  [5] "blog.bufferapp.com/social-media-strategy"                      
##  [6] "overflow.buffer.com/2016/02/22/timezones"                      
##  [7] "blog.bufferapp.com/how-to-save-time-on-social-media"           
##  [8] "medium.com/m/global-identity"                                  
##  [9] "buffer.com/gifs-for-social-media"                              
## [10] "blog.bufferapp.com/idea-curation-get-more-ideas"               
## 
## $`Tigran Hakobyan`
##  [1] "overflow.buffer.com/2016/02/22/timezones"                               
##  [2] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"   
##  [3] "medium.com/m/global-identity"                                           
##  [4] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"
##  [5] "buffer.com/journey"                                                     
##  [6] "producthunt.com/tech/customer-support-academy"                          
##  [7] "open.buffer.com/buffer-acquires-respondly"                              
##  [8] "open.buffer.com/transparent-product-roadmap"                            
##  [9] "opensource.com/open-organization/16/5/buffer-open-culture"              
## [10] "open.buffer.com/wholeness"                                              
## 
## $`todd balsley`
##  [1] "open.buffer.com/buffer-acquires-respondly"                                                  
##  [2] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                       
##  [3] "open.buffer.com/transparent-product-roadmap"                                                
##  [4] "blog.bufferapp.com/hello-respond"                                                           
##  [5] "open.bufferapp.com/startup-mindset"                                                         
##  [6] "open.buffer.com/product"                                                                    
##  [7] "open.buffer.com/remote-working-rv-part-one"                                                 
##  [8] "opensource.com/open-organization/16/5/buffer-open-culture"                                  
##  [9] "open.buffer.com/wholeness"                                                                  
## [10] "overflow.buffer.com/2016/02/11/slack-meet-looker-an-experiment-in-bringing-data-to-the-team"
## 
## $`Tom Redman`
##  [1] "open.buffer.com/transparent-product-roadmap"                                                              
##  [2] "open.buffer.com/stop-energy"                                                                              
##  [3] "theguardian.com/sustainable-business/2016/jun/06/silicon-valley-diversity-problem-tech-industry-solutions"
##  [4] "medium.com/@sunils34/forward-motion-stop-energy-at-startups-c01624b7989"                                  
##  [5] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"                                     
##  [6] "buffer.com/gifs-for-social-media"                                                                         
##  [7] "blog.bufferapp.com/optimal-work-time-how-long-should-we-work-every-day-the-science-of-mental-strength"    
##  [8] "open.buffer.com/no-office"                                                                                
##  [9] "open.buffer.com/feedback"                                                                                 
## [10] "julheimer.com/blog/2015/4/23/what-i-learned-doing-customer-support-exclusively-for-a-week"                
## 
## $`Tyler wanlass`
##  [1] "overflow.buffer.com/2016/02/22/timezones"                                           
##  [2] "open.buffer.com/buffer-acquires-respondly"                                          
##  [3] "medium.com/m/global-identity"                                                       
##  [4] "open.buffer.com/transparent-product-roadmap"                                        
##  [5] "buffer.com/respond/blog/why-everyone-at-respond-does-customer-support"              
##  [6] "buffer.com/respond/blog/eating-our-own-dogfood-building-a-support-tool-we-use-daily"
##  [7] "producthunt.com/tech/customer-support-academy"                                      
##  [8] "buffer.com/respond/blog/social-media-customer-service"                              
##  [9] "open.buffer.com/feedback"                                                           
## [10] "medium.com/@rdutel/200-startups-hiring-remotely-in-2016-1d4299e5163f"

It looks like there is quite a lot of overlap, and this makes sense. We all work for the same company and share similar things. I imagine that our similarity scores are all quite high. Notice all of the buffer blog posts in there. :)

Next steps

In the future I would love to build a recommender with a much larger dataset with a wider range of users. Proper training/testing and evaluation methods should also be utilized. I would also love to utilize time as a factor – I would be more likely to share a new article than an old one, so that could be factored in as well.