Back to blog

Monday, November 25, 2024

Find VP / head of engineering at recently funded, mid-sized tech companies in US

cover

Getting Started

Install packages

pip install exfunc openai

Configure API keys

You will need to provide API keys. You can get your Exfunc API key here and your OpenAI API key here.

Ensure both API keys are accessible in your local environment.

export EXFUNC_API_KEY=...
export OPENAI_API_KEY=...

Configure clients

from exfunc import Exfunc
from openai import OpenAI

exfunc = Exfunc()
openai = OpenAI()

Finding recently funded, mid-sized tech companies in US

Search mid-sized tech companies in US

num_pages = 1
company_linkedin_urls = []
for i in range(num_pages):
    search_results = exfunc.linkedin.search_companies(request={
        "locations": ["United States"],
        "sizes": ["11-50", "51-200", "201-500"],
            "industries": [
            "computer & network security",
            "computer games",
            "computer hardware",
            "computer networking",
            "computer software",
            "e-learning",
            "information services",
            "information technology & services",
            "internet",
            "semiconductors",
            "telecommunications",
            "wireless"
        ],
        "page": i+1,
    })
    company_linkedin_urls += [company.url for company in search_results.companies]

# dedup in case there are duplicate URLs
company_linkedin_urls = list(set(company_linkedin_urls))

Get company funding information

We will get funding information by calling LinkedIn GetCompany API for each company.

from concurrent.futures import ThreadPoolExecutor

def get_company(company_url):
    try:
        response = exfunc.linkedin.get_company(request={"company_url": company_url})
        return response.company
    except:
        return None

companies = []
with ThreadPoolExecutor(max_workers=min(10, len(company_linkedin_urls))) as executor:
    for company in executor.map(get_company, company_linkedin_urls):
        if company:
            companies.append(company)

Filter recently funded companies

from datetime import datetime, timedelta

def has_recent_funding_round(funding_details):
    num_days = 180  # 6 months
    date_posted = funding_details.last_round.date_posted
    if not date_posted:
        return False

    last_round_date = datetime.strptime(date_posted, "%Y-%m-%d")
    cutoff_date = datetime.now() - timedelta(days=num_days)
    return last_round_date >= cutoff_date

recently_funded_companies = []
for company in companies:
    recently_funded = has_recent_funding_round(company.funding)
    if recently_funded:
        recently_funded_companies.append(company)

Finding VP / head of engineering people

Search decision makers

decision_makers = {}
for company in recently_funded_companies:
    search_results = exfunc.linkedin.search_people(request={
        "company_domains": [company.website_url],
        "seniorities": ["vp", "head", "director"],
    })
    if search_results.people:
        decision_makers[company.url] = search_results.people

Filter engineering people

def qualify_job_title(job_title):
    target_description = "decision maker in engineering"
    prompt = f'Answer True or False: Does "{job_title}" match the description: "{target_description}"?\n'
    messages = [{"role": "user", "content": prompt}]
    response = openai.chat.completions.create(messages=messages, temperature=0, model="gpt-4o-mini")
    completion = response.choices[0].message.content.strip()
    return "true" in completion.lower()

for company_linkedin_url in decision_makers:
    people = decision_makers[company_linkedin_url]
    filtered_people = [person for person in people if qualify_job_title(person.title)]
    decision_makers[company_linkedin_url] = filtered_people

View results

import pandas as pd

result = []
for people in decision_makers.values():
    result += [person.model_dump() for person in people]

df = pd.DataFrame.from_records(result)
print(df.to_markdown(index=False))
| url                                  | name     | location                                 | title                                                               | company_name   | company_url                                       | experiences   |
|:-------------------------------------|:---------|:-----------------------------------------|:--------------------------------------------------------------------|:---------------|:--------------------------------------------------|:--------------|
| https://www.linkedin.com/in/redacted | Redacted | Athens, Attica, Greece                   | VP, R&D                                                             | HUMAN          | https://www.linkedin.com/company/humansecurityinc | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | Dallas, Texas, United States             | VP, Engineering                                                     | HUMAN          | https://www.linkedin.com/company/humansecurityinc | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted |                                          | Directeur technique                                                 | HUMAN          | https://www.linkedin.com/company/humansecurityinc | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | Israel                                   | Sr. Director of Technical Security Operations (Formerly PerimeterX) | HUMAN          | https://www.linkedin.com/company/humansecurityinc | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | New York, New York, United States        | Sr. Director of IT                                                  | HUMAN          | https://www.linkedin.com/company/humansecurityinc | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | San Francisco, California, United States | Head of Solutions Engineering                                       | Cresta         | https://www.linkedin.com/company/cresta-inc       | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | San Francisco, California, United States | Head of Information Technology Department                           | Cresta         | https://www.linkedin.com/company/cresta-inc       | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | Mysore division, Karnataka, India        | Head Of Department                                                  | Cresta         | https://www.linkedin.com/company/cresta-inc       | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | Edgewood, New Mexico, United States      | Director of AI Delivery                                             | Cresta         | https://www.linkedin.com/company/cresta-inc       | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | Mountain View, California, United States | VP of Engineering                                                   | Cresta         | https://www.linkedin.com/company/cresta-inc       | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | San Francisco, California, United States | Head of Team Platform                                               | Mercor         | https://www.linkedin.com/company/mercor-ai        | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | San Francisco, California, United States | Head of Platform (Work)                                             | Mercor         | https://www.linkedin.com/company/mercor-ai        | Redacted      |
| https://www.linkedin.com/in/redacted | Redacted | Argentina                                | Head                                                                | micro1         | https://www.linkedin.com/company/micro1           | Redacted      |

Conclusion

You have now built a list of VP / head of engineering at recently funded, mid-sized tech companies in US.

If you have any questions or need help, feel free to reach out to us at support@exfunc.com