01
Upload your companies
Drop a CSV. That is the whole setup.
Upload your companies, rank the titles you want. We scan every employee on Sales Navigator live and hand back the closest real match.
From €99/month · 20,000 companies searched · API and MCP included
Works with the tools your GTM stack already runs
Three steps between a list of companies and a list of decision-makers. No integrations, no LinkedIn login, no stale database.
01
Drop a CSV. That is the whole setup.
02
Rank who you want, in order.
03
Named people with LinkedIn profiles, ready to export.
Matched contacts land where your team works. Push them straight into Claude Code, Clay, your CRM or your sequencer, or just take the CSV.
A bought database looks up a record and hopes the person is still there. We scan the company itself — every employee, every title — so the buyer surfaces even when no record exists. Same account list, run through both methods in the same week.
Databases & LinkedIn scrapers
412contacts returned
33% of accounts covered
LeadsFactory
1,142contacts returned
92% of accounts covered
Each square is 1% of accounts. Sample: 1,240 B2B SaaS accounts, 50 to 500 employees, run through both methods in the same week.
Send a company and the titles you want. Get the real person back, with their LinkedIn profile and every title we tried along the way.
$ curl -X POST \ https://apiv2.leadsfactory.io/api/v1/find-people/search \ -H "Authorization: Bearer lf_live_x9f2…" \ -d '{ "company_domains": ["orbit.dev"], "search": { "max_persona_results": 3, "exact_job_titles_only": false, "personas": [{ "job_title": "CMO, Head of Growth, VP Marketing", "seniority": "C-suite, VP, Head, Director", "max_contacts": 1 }] } }'import { LeadsFactory } from "@leadsfactory/node"; const lf = new LeadsFactory(process.env.LF_API_KEY); const { people } = await lf.findPeople({ company_domains: ["orbit.dev"], search: { personas: [{ job_title: "CMO, Head of Growth, VP Marketing" }], }, });from leadsfactory import LeadsFactory lf = LeadsFactory(os.environ["LF_API_KEY"]) res = lf.find_people( company_domains=["orbit.dev"], search={ "personas": [{"job_title": "CMO, Head of Growth, VP Marketing"}], }, )$ claude mcp add leadsfactory \ --transport http https://api.leadsfactory.io/mcp > who runs marketing at orbit.dev? leadsfactory → find-people(company: "orbit.dev", titles: ["CMO", "Head of Growth"])
auth: API key only, never your LinkedIn session
{
"company": "orbit.dev",
"employees_scanned": 85,
"attempts": [
{ "job_title": "CMO", "found": false },
{ "job_title": "Head of Growth", "found": false },
{ "job_title": "VP Marketing", "found": true }
],
"people": [{
"full_name": "Dana Whitfield",
"job_title": "VP Marketing",
"seniority": "VP",
"linkedin_url": "in/danawhitfield",
"location": "London, United Kingdom"
}],
"credits_used": 1
}
1 call · 1 answer · nothing to wire up
Or let your agent call it. We host the MCP server — point your client at it once and find-people becomes a tool it can reach for mid-conversation.
$ claude mcp add --transport http leadsfactory https://api.leadsfactory.io/mcp$ codex mcp add leadsfactory --url https://api.leadsfactory.io/mcp{"mcpServers": {"leadsfactory": {"url": "https://api.leadsfactory.io/mcp"}}}$ code --add-mcp '{"name":"leadsfactory","type":"http","url":"https://api.leadsfactory.io/mcp"}'
The waterfall was shaped by outbound agency owners running thousands of campaigns a year — the people whose lists come back half empty when a title does not exist.
ColdIQ
“We run lead building for dozens of clients. This removed the part where my team babysits scrapers.”Michel LiebinCEO, ColdIQ
“Live Sales Nav data with no account to connect. Cleaner to operate at scale, fewer moving parts.”Lohit BoruahCOO, pipeline.tech
pipeline.tech
Youno
“Small team, no ops person. I set my personas once and lead building stopped being a task.”Martin ThomasCo-founder, Youno
“Title waterfall is the unlock. One label per company was always the ceiling on our coverage.”Loïc RecoFounder, Podly
PodlyPricing
One credit is one company searched — however many titles the waterfall has to try on it. Slide to your monthly volume. Both plans include the API and the hosted MCP server.
Basic
€99/mo
20,000 credits · €4.95 per 1,000
Premium
€179/mo
20,000 credits · €8.95 per 1,000
Prices in EUR, billed monthly, cancel any time. Credits reset at the start of each billing month. VAT added where applicable.
You rank your ideal personas. CMO first, then Head of Growth, then VP Marketing. For every company we search top-down and return the closest match we can find, so you never miss a decision-maker just because their exact title wasn't on your list.
On Premium, no — every search runs on our infrastructure against Sales Navigator, so your account is never connected and never at risk. On Basic, searches run through your own LinkedIn session, which is why that plan is capped at 15,000 contacts a day.
One credit is one company searched, however many titles the waterfall has to try on it. A 20,000-credit month means 20,000 companies. Credits reset at the start of each billing month, and both plans include the API and the hosted MCP server.
Yes. Set as many personas as you want, in priority order. We return the best match for each and fall back down your list until we find someone who fits.
Yes. Searches run live. We scan all employees of each company at query time and match the closest titles on the spot. No six-month-old cached export.
Yes. Export enriched contacts as CSV, push them into your Clay tables, or call the MCP server straight from Claude Code. LeadsFactory is the people-finding layer under whatever you already run.
Upload your companies, rank your personas, let the waterfall do the finding. From €99 a month, no sales call to see the price.