Skip to main content
This page shows how to answer prospecting questions with Business Search, including questions that need a company search and a people search in sequence.

How to find CEOs of companies by funding and location

To find the CEOs of technology companies headquartered in San Francisco whose latest funding round was 1 USD to 2 million USD, run a company search for the companies first, then a people search for the CEOs at those companies. One Business Search request cannot answer this question. A people search filters only on the people searchable fields, such as current_title and current_company_name. Funding and headquarters are company searchable fields. A people record can return current_company_funding_raised in its view, but a people search cannot filter on it.

Prerequisites

  • A Bright Data API key with Business Search access, stored in the BRIGHTDATA_API_KEY environment variable. See Business Search quickstart
  • For the Python tab, Python 3 with the requests package. For the Node.js tab, Node.js 18 or later

Step 1: Find the companies

Send the company half of the question as a sentence in Instant mode. The view asks for company_id, which step 3 uses to match people to companies, and for headquarters_city and funding_raised, so you can check each company against the question:
Instant returns up to the first 100 matches. For a shorter list ranked by how well each company answers the sentence, send the same body with "mode": "smart" and "limit": 10. Smart costs more per search. See Business Search pricing.

Step 2: Search for CEOs at those companies

Send people searches in Ludicrous mode, because the input is now a list of company names from step 1 rather than a sentence. Each request combines a CEO title condition with up to 10 company names, as or conditions on current_company_name:
The Python and Node.js code send one request per batch of 10 names and key the results on bright_id, so a profile returned by two batches is kept once. In the cURL tab, replace COMPANY_NAME_1 and COMPANY_NAME_2 with company names from step 1, and add one condition per name. Each request is a separate billed search, so 100 companies cost 11 searches in total.

Step 3: Keep the profiles whose company matches

Keep only the profiles whose current_company_id is one of the company_id values from step 1. With cURL, compare the two values in the step 1 and step 2 responses:
The step 2 search is not enough on its own. current_company_name is a text field, so a condition matches every profile whose company name contains the words: Acme also matches Acme Robotics. Matching on the company ID drops those profiles, and drops profiles with no current_company_id.