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 call
does_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]