👋 Hi, I’m Andre and welcome to my weekly newsletter, Data-driven VC. Every Tuesday, I publish “Insights” to digest the most relevant startup research & reports, and every Thursday, I publish “Essays” that cover hands-on insights about data-driven innovation & AI in VC. Follow along to understand how startup investing becomes more data-driven, why it matters, and what it means for you.
Current subscribers: 23,320, +170 since last week
Brought to you by VESTBERRY - Portfolio Intelligence Platform for data-driven VCs

Watch this short video to learn how data-driven VCs automate their monthly portfolio performance reviews using ChatGPT, Vestberry, Slack, and Gmail via make.com! Discover a new way to stay updated on your portfolio's performance and offer support to your portfolio companies when needed, all powered by AI.
Finding and comparing similar companies is a tedious task that gets regularly performed by a range of professionals such as investors and founders mapping competitive landscapes or salesmen growing their lead funnel.
Thankfully, we can automate this process with modern tools.

Today, I share a comprehensive guide that combines two different approaches to identify similar companies at scale. Subsequently, I auto-generate summaries of their respective business descriptions and create a similarity matrix that allows you to spot the closest competitors with ease.
All in Google Sheets and without a need to code.
It’s 100% free and easy to replicate.
How to Get Started
Login to your Google Account and create a new Google Sheet

Add a name to your sheet, click on “Extensions” > “Apps Script”

Find Similar Companies via Google Programmable Search Engine and G2
Open the new tab “Apps Script” and replace the whole project with the code below (→ remove “myFunction{}”). Note that this approach uses G2 (peer review platform for software solutions) to search for similar companies and is thus most reliable for more mature companies.
/** * Find similar companies via G2 * * @param {string} companyName - Name of the company * @returns {string} Result * @customfunction */function SimilarCompanyG2(companyName) {if (companyName == ""){return "Error - Input is empty"} // Replace these with your actual API key const API_KEY = 'YOUR_API_KEY' const SEARCH_ENGINE_ID = 'e298e2926913441fc'; // Formulate the query to find top 10 alternatives of a company on G2's website searchQuery = "Top 10 " + companyName + "Alternatives & Competitors site:g2.com/products" // Construct the URL for the Google Custom Search JSON API searchUrl = `https://www.googleapis.com/customsearch/v1?key=${API_KEY}&cx=${SEARCH_ENGINE_ID}&q=${encodeURIComponent(searchQuery)}`; // Send a GET request to the API response = UrlFetchApp.fetch(searchUrl, {method: 'get'}); // Parse the JSON response data = JSON.parse(response.getContentText()); // If there are any items in the response data if (data?.items?.length > 0) { competitorsList = data.items[0]?.pagemap?.listitem; // Log the competitors list console.log(competitorsList); // Filter competitors with a URL and a position, then map to their names competitors = competitorsList?.length > 0 ? competitorsList.filter(item => !!item.url && !!item.position).map(item => item.name) : "Not found"; // Log the filtered competitors console.log(competitors); // If there are any competitors, return them as a comma-separated string, else return "Not found" return competitors?.length > 0 ? competitors.join(', ') : "Not found"; } else { return "Not found"; }}
Rename your project to “Similar Companies G2”

Get a Custom Search API Key. Click on “Get a key” and follow the steps below.



Click “Show key” and copy it. Within the App Script project replace the key value with the API key var API_KEY = 'YOUR_API_KEY'. Only replace the words between ‘ ‘ and not the ‘ itself. Save the project.
Get back to your Google Sheets tab and use the formula =SimilarCompanyG2(A2) like any other formula. A2 refers to the cell with the company name. If you get the error “Exception: Request failed for https://www.googleapis.com returned code 429. Truncated server response: { "error": { "code": 429, "message": "Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'customsearch.goog... (use muteHttpExceptions option to examine full response) (line 26).” it’s because Google Custom Search allows 100 calls/day. If you need more searches, you can pay 5$ to get 1000 additional credits.
Subscribe to DDVC to read the rest.
Join the Data Driven VC community to get access to this post and other subscriber-only content.
Join the Community