How to find companies that are hiring for a specific role with Professional Network API

November 30, 2020

2 min read

Problem I got on a call with the CEO of a company that helps businesses recruit tech talents. Let's call this company TechTalentRecruitment. The perfect...

Problem

I got on a call with the CEO of a company that helps businesses recruit tech talents. Let's call this company TechTalentRecruitment. The perfect customer profile for TechTalentRecruitment is small and medium-sized companies that are hiring for software engineers.

Getting a list of small and medium companies

The prospect has a few requirements. The prospect's ideal customer profile is:

  • A small or medium business. Venture capital funding signals can identify such companies.
  • Is looking to hire software engineers.
  • Located in the US, Germany, and Canada

We will leave item number 2 for the next step. In the meantime, I exported a list of companies that matches item 1 and item 3 with Crunchbase Pro.

Use Enrich Layer the API to filter for companies that are hiring software engineers.

To use the Job Listings endpoint in Enrich Layer's the API, I need the company's search_id. You can fetch the search_id of the company using Enrich Layer's the platform Company Profile API endpoint.

For each company in the exported CSV file, I will fetch its corresponding search_id like this:

def get_search_id(coy_url): api_ api_ Social Network/company' header_ = requests.get(api_endpoint, coy_url\}, return dic['search_id'] With the search_id, I will query for jobs posted by each company like this:

`def get_all_jobs(search_id): page_ while True: page_no) if len(data['job']) == 0: break

jobs += data['job']

if data['next_page_no'] is not None: page_

return jobs

def get_job_listing(search_id, page_ api_ api_ Social Network/company/job' header_ = requests.get(api_endpoint, search_id, 'page': page_no, }, return response.json() The role of the job can be found in the response returned by the job listing endpoint. To verify that a job posted by a company is for a software engineer role, I will calldoes_job_qualify() function on it. (This function relies on a function I built that compares similar string; you can find the code for [is_string_similar()` here](https://giki.wiki/@Enrich Layer/Software-Engineering/similar-string))

def does_job_qualify(job): engineer', 'backend engineer', 'frontend engineer', 'software developer', 'software architect'] for kw in keywords: if is_string_similar(kw, job['job_title']): return True return False Putting it all together, this is how I take a list of companies exported from Crunchbase and identify companies that are hiring for software engineers

def run(): company_ for idx, company_url in enumerate(company_lis): print(f"\{idx\}/: Searching \{company_url\}") search_ print(f"Found jobs") has_matching_ jobs)) if True in has_matching_jobs: print(f"SUCCESS dding to CSV.") append_valid_company(company_url)

Results

Out of 1000 Series A/B/C companies based in the US that I had exported from Crunchbase Pro, I found 286 companies that were actively hiring software engineers. Not bad. A 28% hit rate of prospect companies.

PS: Looking to wield profile datasets for your company's growth efforts? Please send us an email to [email protected]