How to find candidates nobody else is messaging

To find candidates nobody else is messaging, stop running the search every recruiter runs. Map every title the role goes by, X-ray outside LinkedIn, work the pools others skip, such as boomerangs, thin profiles and career returners, and message the likely movers first. These 8 Claude skills do each step.

10 pools nobody else is messaging

Score each pool 0 to 3 for the role, then work the top 3. Skill 4 below does the scoring and writes the search for each.

Install the 8 skills in Claude

Save each file as SKILL.md in a folder with the skill's name, zip the folder and upload it under Skills in Claude's settings. Claude runs the right one when your request matches.

1. Intake to search

After every intake call, or when a search keeps returning the wrong people.

---
name: intake-to-search
description: Turns intake notes or a job description into a calibrated search. Use after every intake call, or when a search keeps returning the wrong people.
---

# Intake to search

## Input
Intake notes or JD: [paste]. Company and size: [e.g. 120-person fintech].

## Method
1. **Must-haves.** 1 test per requirement: "Would the hiring manager reject an otherwise perfect candidate without this?" Keep at most 4. Everything else ranks, it never filters.
2. **Profile evidence.** Titles lie across company sizes. For each must-have, name what proves it on a profile: team size, quota or ARR, budget, named systems, regulated environment, certification.
3. **Pool check.** Estimate the pool before searching: must-haves stacked on a small city often leave a few dozen real people. Say which must-have to relax first if the pool is thin.
4. **Feeder companies** (8 to 12): direct competitors, companies 1 step up or down the supply chain, companies acquired in the last 12 to 24 months, companies with a recent reorg in this function.
5. **Timing.** Favour 18 months to 4 years in the current role. Deprioritise anyone promoted in the last 6 months.

## Output
- Must-haves table: requirement | profile evidence | how to search it
- A 1-sentence brief, the way you'd say it to a colleague
- Feeder companies with 1 line each
- The 3 questions to send the hiring manager now: pay ceiling against market, the must-have they'd trade first, why the last finalist didn't work

2. Title and skill map

Before writing any search string, so the search stops missing people who describe the job differently.

---
name: title-skill-map
description: Maps 1 role to every way real people describe it on their profiles, so a search stops missing the best fits. Use before writing any search string.
---

# Title and skill map

## Input
Role: [title]. Must-haves: [list]. Markets: [countries or cities].

## Map these, in order
1. **Title variants.** The exact title, then:
   - what startups call it vs enterprises ("Founding Engineer" vs "Software Engineer III")
   - what the same job is called in adjacent industries ("Implementation Consultant" in SaaS = "Onboarding Manager" in fintech)
   - country variants (UK "Solicitor" vs US "Attorney"; DACH "Entwickler"; India "Associate" at senior levels)
   - 1 level up and 1 level down, with the company size where each is the same job
2. **Skill synonyms.** Old and new names (GCP / Google Cloud), versions, abbreviations, the vendor vs the product (Workday HCM / Workday), frameworks that imply the skill (Spring implies Java).
3. **Proof keywords.** Words that only appear on profiles of people who've really done it: named systems, certifications, regulators, standards (SOX, HIPAA, ISO 27001), deal types.
4. **Anti-keywords.** Words that look right but signal the wrong person: "recruiter for", "student", "aspiring", "trainer", "sales of" for a hands-on role.
5. **Non-English markets.** The local-language title and skill terms people actually write.

## Output
4 lists (titles, skills, proof keywords, anti-keywords) with a 1-line note on the riskiest variants. Then 1 LinkedIn boolean that uses them.

3. X-ray strings that work

When LinkedIn's ranking keeps showing you the same people, to search profiles, CVs and GitHub from outside it.

---
name: xray-strings
description: Writes Google X-ray and GitHub searches that find candidates outside LinkedIn's ranking. Every pattern here was run and checked by hand.
---

# X-ray strings that work

## Input
Titles (from title-skill-map): [paste]. Must-have skills: [list]. Location: [city].

## Rules that held up in testing
- Quotes force exact phrases. OR in capitals. A minus sign removes noise.
- Google reads the first 32 words. Rare terms first.
- Run X-rays in Google only. Bing ignores site: inside an OR group and returns junk.
- Space searches a few minutes apart. Rapid-fire searches trigger Google's robot check.
- A quoted city also matches pages that merely mention it. Check the location line of each result.

## Patterns
| Source | Pattern | Tested result |
| --- | --- | --- |
| LinkedIn profiles | site:linkedin.com/in ("title a" OR "title b") "skill 1" "skill 2" "city" -intitle:jobs -inurl:jobs -"recruiter" | Berlin Go + Kafka: 10 of 10. Forward Deployed Engineer, New York: 10 of 10 on role, 7 in the area. Payroll, Dallas: 10 of 10 on role, 3 in Dallas |
| CVs on the web | (intitle:resume OR intitle:cv) filetype:pdf ("title a" OR "title b") "skill 1" "city" | Long-established titles only. Berlin backend: 6 of 7 real CVs. Forward Deployed Engineer, New York: 0 of 10. Payroll, Dallas: 0 results |
| GitHub (engineers) | type:user location:city language:x followers:>5 repos:>5 | Berlin Go: 282 people. New York Python: 3,900. No company accounts |

## Patterns that failed, don't use them
- CV X-rays for new or niche titles: "Field Engineer" also matches construction CVs.
- site:stackoverflow.com/users with a common word ("Go"): matches Stack Overflow's own tag sidebar on every profile.
- Generic "speaker" searches: return events, not people.

## Output
The 3 strings for this role, ready to paste, and the 1 thing to check in the results for each.

4. Hidden talent pools

When the obvious search has been worked to death and every candidate has heard from 5 recruiters.

---
name: hidden-pools
description: Finds the pools of strong candidates nobody else is messaging for a role, and the search for each. Use when the obvious search has been worked to death.
---

# Hidden talent pools

## Input
Role and must-haves: [paste]. Feeder companies already searched: [list].

## Score every pool below for this role (0 to 3)
1. **Boomerangs.** People who left the hiring company in good standing 1 to 5 years ago.
2. **Alumni of acquired or shut-down companies.** Strong people often leave 12 to 24 months after an acquisition.
3. **1 level down.** Seniors at a bigger company doing the work of a lead at a smaller one.
4. **Adjacent industry.** Same job, different product (payments engineers for a lending role, hospital revenue-cycle people for health-tech ops).
5. **Thin profiles.** Senior people with a title and nothing else. Most searches rank them last. Search by company + title, not skills.
6. **Career returners.** A 1 to 3 year gap, often parental leave. Same skills, less competition.
7. **Freelancers and contractors** who've worked inside 3+ target companies.
8. **Non-LinkedIn communities.** Open-source maintainers, conference speakers, Slack and Discord community leads, published authors, licence registers.
9. **Military and public sector** for operations, logistics, security and program roles.
10. **Second cities.** Same skills, a market with fewer recruiters, open to remote or relocation.

## For the top 3 pools
- Why this pool fits the role
- The exact search: boolean, X-ray or the community to look in
- A first-message angle that fits the pool ("Saw the acquisition close in March...", "Your talk on...")

## Output
Pools ranked by score, then the 3 plans.

5. Who's likely to move

On every sourced list before outreach, so you message the people who will reply first.

---
name: move-signals
description: Ranks a sourced list by how likely each person is to move now, so you message the people who'll reply first. Use on every list before outreach.
---

# Who's likely to move

## Input
Profiles: [paste 10 to 50 profiles or a CSV export]. The role: [title, pay range, location, remote policy].

## Signals
| Signal | Effect | How to spot it |
| --- | --- | --- |
| Their manager or skip-level left in the last 6 months | Strong up | The manager's profile shows a new company |
| Layoff, reorg or acquisition in the last 12 months | Strong up | News, a spike in past employees |
| 2 to 4 years in role with no promotion | Up | Profile dates |
| Just past a 1-year or 4-year mark at an equity-heavy employer | Up | Start date |
| New certification or side project outside current scope | Up | Licences, Featured, GitHub |
| Open to Work | Up, but crowded | Badge |
| Promoted in the last 6 months | Strong down | 2 titles at 1 company |
| Joined in the last 9 months | Down | Start date |

## Method
1. Score each person: strong = plus or minus 2, normal = plus or minus 1.
2. Check fit separately. A likely mover who misses a must-have is still a no.
3. Sort by fit, then by move score.
4. For the top 10, write an opening line built on the strongest signal. Name the situation, never the bad news ("New leadership usually means new priorities. How's that landing?").

## Output
A table (name | fit | move score | top signal | opening line), then the 3 people to message today.

6. Calibration loop

On day 1 of every role, to learn what the hiring manager really wants within 48 hours.

---
name: calibration-loop
description: Gets a hiring manager to say what they really want within 48 hours, using 6 profiles and a structured reaction, then rewrites the search. Use on day 1 of every role.
---

# Calibration loop

## Input
Brief: [paste]. 6 profiles: [paste].

## Pick the 6 on purpose
- 2 that match the brief exactly
- 2 stretches: 1 must-have missing, everything else strong
- 1 from an adjacent industry
- 1 deliberately wrong but close, to find the hidden must-have

## The ask to the hiring manager (1 message)
For each profile: **Yes / Maybe / No**, plus 1 reason from this list:
level · industry · company type · a skill · tenure pattern · location · something else (say what).
Ask for it within 24 hours, and offer a 15-minute call instead if typing is a pain.

## Read the reactions
- A **No** on an exact match = a hidden must-have. Find it and write it down.
- A **Yes** on a stretch = a must-have that isn't one. Demote it.
- Same reason twice = a rule. Add it to the brief.
- All Maybes = the brief is too vague to search. Book the call.

## When to push back
If the rewritten brief shrinks the pool to under about 30 real people in the location, say so with the numbers and offer 2 trades: widen location, or drop 1 must-have.

## Output
The 6 profiles with their slot labels, the message to send, and, once reactions come back, the rewritten brief and search string.

7. Boolean debugger

Whenever a search string returns too many, too few or the wrong people.

---
name: boolean-debugger
description: Fixes a search string that returns too many, too few or the wrong people, and explains each change. Use whenever a search disappoints.
---

# Boolean debugger

## Input
The string: [paste]. Where I ran it: [LinkedIn / Recruiter / Google / GitHub]. What came back: [too many / zero / wrong people, with 2 examples].

## Check, in this order
1. **Syntax.** Operators in capitals. Every parenthesis closed. Quotes straight, not curly (pasted from Word or Slack). NOT at the end, not inside an OR group.
2. **Platform rules (tested by hand).**
   - LinkedIn people search: titles plus up to 2 skills works. 2 skills plus a NOT group returned zero every time. Drop the NOT group or a skill.
   - LinkedIn ignores a city in the keywords. Use the Locations filter.
   - Google: first 32 words only, so rare terms first. Bing ignores site: inside an OR group.
   - GitHub user search: add type:user or companies show up.
3. **Too few results.**
   - A must-have that's really a preference: move it out.
   - Titles quoted too exactly ("Senior Software Engineer II"): drop level words, add adjacent titles.
   - 2 skills that are synonyms joined with AND: make them OR.
   - City too tight: add the metro, region and nearby cities.
4. **Too many or wrong people.**
   - A skill word that's also common English ("Go", "Spark", "Rust"): pair it with a context term ("Golang", "Go developer", "Apache Spark").
   - Recruiters, students and trainers mentioning the skill: add NOT for those titles.
   - Big-company noise: add NOT for the hiring company's own name.
5. **Wrong level.** Add or remove seniority titles. Years of experience in a string rarely work; use title levels.

## Output
- The fixed string, ready to paste
- A short list: each change and why
- A wider and a narrower version, so I can step either way without starting again

8. First message that gets replies

For anyone you would hate to lose to another recruiter, with their profile in hand.

---
name: first-message
description: Writes the first message to a sourced candidate from their profile, in under 75 words, with 1 specific hook. Use for anyone you'd hate to lose to another recruiter.
---

# First message that gets replies

## Input
Profile: [paste]. Role: [title, company type, location, pay range]. Why they fit: [1 line].

## 3 sentences
1. **Why them.** 1 fact from their profile tied to the role: a project, a move, a result, a niche skill. Never their current title.
2. **The move.** The role in 1 line, leading with what's rare for someone like them: scope, pay, remote, the team, the problem.
3. **The ask.** A question answerable in 5 seconds. Passive: "Worth a look, or bad timing?" Open to work: "Free for 15 minutes Thursday?"

## Rules
- Under 75 words. Keep a LinkedIn connection note under 200 characters, the limit on free accounts.
- Put the pay range in when you can.
- Subject line: 2 to 5 words, lowercase, sounds like a colleague.
- Banned: "I came across your profile", "exciting opportunity", "fast-paced", "rockstar", "quick chat", exclamation marks.
- Send in their local morning, Tuesday to Thursday.

## Output
3 versions with different hooks (their work · the career step · a shared link), and under each, the fact it relies on and the risk if it's out of date.

Skip the strings. Type the role in 1 sentence and The Cognitive returns people scored against it, from ~900M public profiles. Start free trial · Or build a search string free

X-ray patterns, and what they returned

Each pattern was run by hand for 3 roles: backend engineers in Berlin, forward deployed engineers in New York and payroll consultants in Dallas.

SourcePatternWhat came back
LinkedIn profilessite:linkedin.com/in ("title a" OR "title b") "skill" "city" -intitle:jobs10 of 10 on role for all 3. In the area: 7 of 10 in New York, 3 of 10 in Dallas
CVs on the web(intitle:resume OR intitle:cv) filetype:pdf "title" "skill" "city"Berlin backend: 6 of 7 real CVs. New titles fail: 0 of 10 for forward deployed engineers
GitHub userstype:user location:city language:x followers:>5 repos:>5Berlin Go: 282 people. New York Python: 3,900. No company accounts
Stack Overflow userssite:stackoverflow.com/users "Go"Fails: a common word matches the tag sidebar on every profile

Run X-rays in Google, not Bing: Bing ignores site: inside an OR group.

Source from inside Claude

The Cognitive's MCP connector in Claude: 1 brief, scored people, a shortlist with emails, without leaving the chat.

Add the connector once: in Claude, open Settings, then Connectors, then Add custom connector, paste https://app.thecognitive.io/mcp and sign in with The Cognitive. Then ask the way you would ask a sourcer, and say who to skip.

3 Google rules that held up

Google reads only the first 32 words, so put rare terms first. Space searches a few minutes apart, or the robot check stops you. Check each result's location line: a quoted city also matches pages that just mention it.

Read the hiring manager's reactions

Send 6 profiles on day 1: 2 exact matches, 2 stretches, 1 from an adjacent industry, 1 wrong but close. Ask for Yes, Maybe or No with 1 reason each.

  1. A No on an exact match There is a hidden must-have. Find it and write it into the brief.
  2. A Yes on a stretch A must-have that isn't one. Demote it to a ranking factor.
  3. The same reason twice That reason is a rule. Add it to the brief and the search string.
  4. All Maybes The brief is too vague to search. Book a 15-minute call instead.
  5. A pool under about 30 Say so with the numbers, then offer 2 trades: widen the location, or drop 1 must-have.

Role nobody can fill? Start the trial, then book 30 minutes with Sparsh, the founder. We run the role with you, live, and you keep every person we find. Start your free trial · Then book your 30 minutes

Keep reading

Talent sourcing strategy: 5 search traps · Claude for recruiting: 6 skills · Passive candidate sourcing · LinkedIn X-ray search

Frequently asked questions

How do you find candidates nobody else is messaging?

Search the people the obvious search ranks last or never shows: boomerangs, alumni of acquired companies, thin profiles, career returners, adjacent industries and second cities. Find them with title variants and X-ray searches outside LinkedIn, then message the ones showing move signals first.

Where can I find candidates outside LinkedIn?

Google X-ray searches of LinkedIn profiles and CVs posted as PDFs, GitHub user search for engineers, open-source projects, conference speaker lists, Slack and Discord communities, and professional licence registers. CV X-rays work for long-established titles and fail for new ones.

What is a hidden talent pool?

A group of qualified people that standard searches miss or rank low, so few recruiters contact them. Examples are former employees, people with a 1 to 3 year career gap, seniors 1 level down at bigger companies, and senior people with almost empty profiles.

How do I build a talent pipeline for a hard-to-fill role?

Calibrate first: send the hiring manager 6 deliberate profiles on day 1 and rewrite the brief from the reactions. Then map every title variant, score the 10 hidden pools, search the top 3, and rank the list by move signals before any outreach.

Why does my LinkedIn boolean search return 0 results?

In hand tests, titles plus up to 2 skills worked, and 2 skills plus a NOT group returned 0 every time. LinkedIn also ignores a city in the keywords. Drop the NOT group or a skill, and set the city in the Locations filter.

How can I tell if a candidate is likely to move?

The strongest signals are a manager or skip-level who left in the last 6 months, and a layoff, reorg or acquisition in the last 12. 2 to 4 years in role without a promotion also points up. A promotion in the last 6 months points strongly down.

How do I install these skills in Claude?

Save each file as SKILL.md inside a folder with the skill's name (xray-strings, for example), zip the folder and upload it under Skills in Claude's settings. Claude loads a skill when your request matches its description.

What does the free trial of The Cognitive include?

100 sourcing credits and 2 AI interviews, with no credit card, and the Claude connector. A search costs 1 credit per candidate it returns, an email reveal 5 credits and a phone reveal 10, charged only when the reveal succeeds.

Explore: How to source candidates · Boolean search builder · AI sourcing tool · The Cognitive MCP connector · Talent sourcing strategy · Claude for recruiting

Last updated