What this doc covers
- Using Exa search with includeDomain to only retrieve search results from a specified domain
- Using Exa keyword search to find specific people by name
- Using excludeDomain to ignore certain low-signal domains
- Using Exa link similarity search to find similar websites
Introduction
In this tutorial, we use Exa to automate the process of discovering, researching, and evaluating exceptional candidates. If you just want to see the code, check out the Colab notebook. Here’s what we’re going to do:- Candidate research: Identify potential candidates and use Exa to find additional details, such as personal websites, LinkedIn profiles, and their research topics.
- Candidate evaluation: Evaluate candidates using an LLM to score their fit to our hiring criteria.
- Finding more candidates: Discover more candidates similar to our top picks.
Python
Initial Candidates
Suppose I’m building Simile, an AI startup for web retrieval. My hiring criteria is:- AI experience
- interest in retrieval, databases, and knowledge
- available to work now or soon
Python
Information Enrichment
Now, let’s add more information about the candidates: current school, LinkedIn, and personal website. First, we’ll define a helper function to call OpenAI — we’ll use this for many of our later functions.Python
Python
type="keyword"
to do an Exa keyword search because we want our results to have the exact name in the result. We also specify include_domains=['linkedin.com']
to restrict the results to LinkedIn profiles.
Python
search_and_contents
.
We can also exclude some misleading websites with exclude_domains=['linkedin.com', 'github.com', 'twitter.com']
. Whatever’s left has a good chance of being their personal site!
Python
- what are they doing now? Or what class year are they?
- where did they do their undergrad?
- what topics do they research?
- are they an AI researcher?
Python
Candidate Evaluation
Next, we use GPT-4 to score candidates 1-10 based on fit. This way, we can use Exa to find more folks similar to our top-rated candidates.Python
enrich_row
that uses all the functions we defined to learn more about a candidate,and sort by score to get the most promising candidates.
Python
Finding more candidates
Now that we know how to research candidates, let’s find some more! We’ll take each of the top candidates (score 7-10), and use Exa to find similar profiles. Exa’sfind_similar
,allows us to search a URL and find semantically similar URLs. For example, I could search ‘hinge.co’ and it’ll return the homepages of similar dating apps. In this case, we’ll pass in the homepages of our top candidates to find similar profiles.
Python
Python
find_similar(new_candidate_homepage)
searches with the new candidates as well — helping you build an infinite list!
Hope this tutorial was helpful and don’t forget, you can get started with Exa for free :)