July 22, 2026 · The humaaaaans team

How to Source Software Engineers on LinkedIn

Most recruiters source engineers the same way they were taught in 2015: build a Boolean string, run it, scroll through 200 results, message the first 15 who look plausible. That method still works for common titles like "Senior Software Engineer." It falls apart the moment you're hunting for a Staff-level backend engineer who calls themselves a "Principal Systems Architect" or a founding engineer who lists their title as "Building cool stuff @ stealth startup." Here's the actual process, including the part where keyword search structurally can't find a third of your candidates.

Start with the boring part: define the role in searchable terms

Before you touch LinkedIn, write down three things: the tech stack, the seniority band, and the non-negotiable constraints (visa, location, remote policy). This sounds obvious. Most sourcing failures trace back to skipping it.

For tech stack, separate "must-have" from "nice-to-have." If the hiring manager says "Python and Kubernetes," ask whether they mean production Kubernetes experience or just familiarity. That distinction changes your search radius by an order of magnitude — there are far more engineers who've touched Kubernetes in a tutorial than who've run it in production at scale.

For seniority, translate the internal title into what candidates actually call themselves externally. A company's "L5 Software Engineer" might be someone else's "Senior Software Engineer," someone else's "Staff Engineer," and a third person's plain "Software Engineer" if they're at a company that doesn't do fancy leveling. Years of experience is a better proxy than title alone. A rough mapping that holds up across most tech companies:

  • 0–2 years: Software Engineer I, Junior Engineer, Associate Engineer
  • 2–5 years: Software Engineer, Software Engineer II
  • 5–8 years: Senior Software Engineer, Senior SDE
  • 8–12 years: Staff Engineer, Lead Engineer, Principal Engineer (at smaller companies)
  • 12+ years: Principal Engineer, Distinguished Engineer, Staff+ (at bigger companies)

That's directional, not gospel — a scrappy 20-person startup will call a 4-year engineer "Senior" because titles are cheap when there's no leveling committee.

Build the Boolean string, and know its limits going in

LinkedIn's native search and Sales Navigator both support Boolean operators: AND, OR, NOT, quotation marks for exact phrases, and parentheses for grouping. A decent starting string for a backend engineer role looks like:

("software engineer" OR "backend engineer" OR "senior software engineer") AND ("Python" OR "Django") AND ("Kubernetes" OR "AWS") NOT ("intern" OR "junior")

A few tactical notes that save time:

  1. Use quotation marks for anything more than one word — LinkedIn treats unquoted multi-word phrases as an implicit OR across the words, which floods your results.
  2. Put your highest-signal terms first. LinkedIn's relevance ranking weights earlier terms slightly more.
  3. NOT is your best filter for cutting noise — recruiters, career coaches, and "aspiring software engineer" profiles love to rank for engineering keywords.
  4. Sales Navigator's filters (years in current role, years in current company, geography radius) do more filtering work than adding more Boolean terms. Use filters first, keywords second.

Here's the honest limitation: Boolean search only matches literal text in the profile. It has no concept of what a title means — it just pattern-matches strings. That's fine for standard titles. It's useless for the growing chunk of engineers whose titles don't map cleanly to "software engineer" at all.

The 30–40% problem: non-obvious titles Boolean search misses

This is the part most sourcing guides skip, and it's where the real impact lives. A meaningful share of qualified engineers — in our experience running searches across thousands of roles, somewhere in the 30–40% range — carry titles that a keyword search will never surface for a "software engineer" query:

  • "Founding Engineer" at a 6-person startup, doing full-stack work indistinguishable from a Senior Software Engineer role
  • "Technical Co-Founder" who's been writing production code solo for three years
  • "Head of Engineering" at a 4-person company who is, functionally, a senior IC because there's no one to manage yet
  • "Systems Architect," "Infrastructure Lead," or "Platform Engineer" — all doing backend engineering work under a title their company invented internally
  • Engineers with no title update at all because they got promoted eight months ago and haven't touched their LinkedIn since

A recruiter reading these profiles by hand catches this instantly — you read the "About" section, the experience bullets, maybe a GitHub link, and you know within thirty seconds this person can do the job. A Boolean string can't. It's matching text, not meaning.

This is exactly why manual review of your search results still matters even after you've written a great Boolean string. Don't just message the top 20 people who match your keywords — skim the next 50 profiles that got filtered out for title reasons. You'll usually find a handful of strong candidates hiding in there.

If you're sourcing at any real volume — more than one or two roles a month — reading every borderline profile by hand is where the 4–6 hours per role comes from. Tools that read a profile semantically rather than matching keywords exist specifically to close this gap; more on that later, worth knowing it's an option before you burn a Tuesday scrolling.

Filter for signal, not just keywords

Once you have a candidate pool, the next question is who to message first. A few filters do more work than most recruiters realize:

Tenure pattern. Someone with four jobs in five years, each 12–15 months, might be a job-hopper — or might be someone who was laid off twice in a rough market and is genuinely looking. Read the company names before you judge the pattern; two rounds of startup layoffs look identical to job-hopping on paper.

Open to Work signal. LinkedIn's green "Open to Work" banner is a strong buying signal, but only about a third of actively-looking candidates turn it on — many keep it private for reasons ranging from "current employer will see it" to "don't want recruiters clogging my inbox with irrelevant roles." Treat the banner as a bonus signal, not a filter you screen on.

Career-stage detection. Someone who just got promoted six weeks ago is a bad target regardless of skill match — they're not leaving. Someone who's been in the same senior role for three-plus years without a title change is worth a look; that's often a sign they're capped out and open to a lateral move for growth.

Activity recency. A profile with no updates in four years might still be accurate, but it's higher-risk. Cross-reference against a company's engineering blog or GitHub org if you can — sometimes the LinkedIn profile is stale but the person is still very much active and shipping.

Write the message like you read the profile

The biggest tell in a bad sourcing message is a personalization line that could apply to anyone at the company. "I love what you're doing at Acme" tells the candidate nothing — it tells them you read the company name off their profile and nothing else.

A better opener references something specific: a talk they gave, a migration they mentioned in a post, the actual tech stack from their most recent role. If you can't find a real signal in three minutes of reading, skip the personalization entirely and lead with the role. A short, honest message beats a forced personal one every time — candidates can tell the difference, and a clumsy attempt at personalization reads worse than no attempt at all.

Keep the message under 100 words. State the role, the one thing that made you reach out to them specifically, and a low-friction ask — a 15-minute call, not "let me know if you're interested in learning more."

When manual sourcing isn't the right call anymore

Manual Boolean sourcing is genuinely the right tool when you're filling one or two roles a quarter, you know the tech stack cold, and you have the hours to spend. It's free, it's precise once you've dialed in the string, and there's no learning curve beyond what's above.

It stops being the right call when you're running five-plus searches a month, sourcing for roles outside your core expertise, or losing candidates to the 30–40% who don't show up in your Boolean results at all. At that point the math shifts: a Recruiter license runs into the thousands per year before you've sourced a single candidate, and tools like SeekOut, hireEZ, Findem, and Fetcher sit anywhere from €10K to €90K a year — often built for teams running dozens of reqs, not a solo recruiter or a five-person agency.

We built humaaaaans because that gap between "free but slow" and "powerful but €40K/year" felt unnecessary. It reads a profile the way a recruiter would rather than matching keywords, which is how it catches the founding engineers and platform leads that Boolean search skips. Pricing's public, plans start at €199/month for 10 searches, and the first search is free with no card required — worth running against a role you're already stuck on, just to see what it turns up that your Boolean string didn't.

Whichever way you go, the core discipline doesn't change: define the role precisely, build your search knowing its limits, and read past the first page of results. That's where the good candidates usually are.

Run your first search free and see the candidate list before you pay for anything.

Try Your First Search Free