Candidate Sourcing Research
Find, qualify, and profile candidates and companies for an open role using only public web sources, then hand off a structured shortlist for human review.
When to use
- A recruiter opens a new requisition and needs an initial slate of candidates or target companies.
- A hiring manager wants a competitive landscape of who else works in a given role or industry.
- An existing shortlist needs to be enriched with public profile details before outreach.
- A search needs to be refreshed periodically as new candidates appear online.
Tools
browser-searchbrowser-navigatebrowser-extractwrite-fileupdate-memory
Playbook
- Read the role brief (title, must-have skills, seniority, location, target companies or industries) from the task description.
- Run
browser-searchwith targeted queries combining the job title, key skills, and location (e.g. "senior backend engineer Ruby on Rails Sao Paulo site:linkedin.com/in") to surface candidate profiles and relevant company pages. - For each promising result, use
browser-navigateto open the public profile or company page (e.g. a LinkedIn public profile, a company "About" or "Team" page, or a conference speaker bio). - Use
browser-extracton each opened page to pull structured fields: name, current title, current company, tenure, listed skills, location, and any public contact or portfolio link. - Cross-check ambiguous or thin profiles with a second
browser-searchquery (e.g. the person's name plus former employer) and anotherbrowser-extractpass to confirm identity before including them. - Deduplicate results and score each candidate against the role's must-have criteria, noting gaps explicitly rather than guessing.
- Write the consolidated shortlist — candidate name, source URL, extracted profile fields, fit notes, and open questions — to a file with
write-filein a clear, reviewable format (e.g. Markdown table or CSV). - Call
update-memoryto log the search queries used, sources checked, and any candidates excluded with reasons, so a future refresh of this search doesn't repeat wasted effort. - If the brief asks for anything beyond sourcing and profiling — such as sending outreach, scheduling interviews, or making a hire/reject call — stop and message a human via send-message rather than acting on it yourself.
Failure modes
- A public profile is stale or ambiguous (common name, outdated title): flag the uncertainty in the output instead of asserting facts you could not confirm.
- Search results return mostly paywalled or login-gated pages: note the gap in the shortlist rather than fabricating details you cannot extract.
- Two people share very similar names or titles: keep both as separate rows with source links so a human can disambiguate, never merge them.
- The role brief is missing key criteria (location, seniority, must-have skills): pause and escalate to a human for clarification before running broad searches that will produce noise.
Done when
- A written shortlist file exists with candidate names, source links, extracted profile details, and fit notes against the role's criteria.
- Every included candidate has at least one verifiable public source URL attached.
- Search queries, sources checked, and exclusions are logged via
update-memoryfor reuse in the next sourcing pass, and any decision beyond sourcing (screening stage, hire/reject) is left explicitly as a draft for human sign-off.