How a founder-led B2B team discovers 14,000 companies, scores them, and narrows to 150 hand-picked outbound targets per sprint — on a single db/linkedin/search/companies endpoint.
A founder-led B2B SaaS operator (under 10 employees, founded 2024) runs a boutique outbound program — high-quality, manually reviewed touches, ~150 per week — against a custom ICP framework. Instead of buying a sales-tech stack across firmographics, list-building, enrichment, and delivery, the team built a single pipeline on db/linkedin/search/companies plus four supporting endpoints.
The database-backed search replaces a multi-vendor stack with one structured payload and a mini-DSL for keyword matching. Output is raw rows the team scores on their side — no inherited vendor schema, no per-record fees on data discovery.
Discovered in a single sprint from one query (~2s wall-clock)
Hook + verified email + no role drift, per week
Out-of-pocket LLM cost; discovery API calls free under MCP Unlimited
Boutique B2B outbound demands a tight ICP: not "B2B tech" but a specific cross-section of company type, size, geography, funding stage, and product positioning. Off-the-shelf sales-tech stacks force a coarse ICP — industry codes, employee ranges, hard categories. To narrow further, teams stitch four to six vendors with overlapping pricing and partial coverage, then export and re-classify on their own side anyway.
The team needed:
description, short_description, specialities, hashtags, and locations simultaneouslyThe /db/linkedin/search/companies endpoint exposes the database directly via a structured payload. Keywords get a mini-DSL (whitespace = AND, | = OR, "phrase" = exact phrase, -token = NOT). Filters are typed: employee_count_min/max, founded_on_min/max, country_hq, country_any, is_active, has_description, min_description_length, and more.
A single keywords field searches across name, description, short_description, specialities, hashtags, and locations simultaneously. For 27 ICP categories ranging from autonomous outbound agents to compliance research tools, the team builds one DSL string per sprint:
{
"keywords": "\"AI SDR\"|\"AI BDR\"|\"autonomous outbound\"|\"AI sales agent\"|\"AI research agent\"|\"AI signal\"|\"AI inbound qualification\"|\"AI prospecting\"",
"country_hq": ["US","GB","DE","NL","FR","CA","AU","IE","SG"],
"employee_count_min": 11,
"employee_count_max": 200,
"is_active": true,
"has_description": true,
"min_description_length": 100,
"count": 1000
}
This single call returns 1,000 ICP-candidate companies with full LinkedIn fields in ~2 seconds wall-clock.
A common pitfall in coarse country filters is substring matching: the US token used to false-match against Austria, Australia, Austin, Houston. The country_hq and country_any params parse the ISO2 code directly out of headquarter_location and the locations[] array, eliminating that class of false positive.
{
"industry_name": "fintech|payments",
"country_hq": ["US","GB","DE"],
"employee_count_min": 51,
"founded_on_min": 2020,
"page_verification_status": true,
"count": 500
}
When the cross-field keywords casts too wide a net, the team narrows by specific fields:
specialities: "data engineering|ML" — match only in declared specialities, ignoring marketing-copy descriptionname: "ai|agent" — match in company name (catches AI-native startup branding)description: '"sales intelligence" -consultancy' — boolean exclusion of consulting hitsDaily ICP refresh runs as a chained pipeline:
| Step | Action | Powered by |
|---|---|---|
| 1 | Pull 1,000–10,000 ICP candidates by keyword DSL | db/linkedin/search/companies |
| 2 | Enrich with funding stage + total + growth score | crunchbase/company (cached lookup) |
| 3 | Score each company against a 27-category ICP framework (HOT/WARM/MAYBE/EXCLUDE/COMPETITOR) | LLM with prompt-cached system prompt |
| 4 | Filter to HOT tier (top ~2-5% of pool) | query_cache on the cache_key |
| 5 | Find 5–15 senior decision-makers per company | linkedin/sn_search/users |
| 6 | Fetch last-90-day posts for buying-intent scoring | linkedin/user/posts |
| 7 | Find email via vanity-resolved profile URL | linkedin/user/find_email_by_url |
| 8 | Generate personalized 24–30 word hook anchored to a real post or homepage | LLM (higher-tier model for quality) |
| 9 | Export ready-to-send leads to CSV for the outreach platform | export_data |
End-to-end run time: ~1.5 hours for 14,000 companies. Cost out-of-pocket: ~$15–20 in LLM calls. Discovery API calls: free under MCP Unlimited.
| Pipeline metric | Value |
|---|---|
| Companies discovered (single sprint) | 14,000 |
| Wall-clock for the discovery query | ~2 sec |
| Companies scored as HOT (focus narrowing) | 319 (2.3% — 20x narrower than naïve filter) |
| HOT companies in the primary spearhead segment | 211 (66% of HOT) |
| Decision-makers found across HOT-linked companies | 16,000 |
| Emails resolved via Tier 2 finder | 8,100 (62% hit rate after vanity resolution) |
| Personalized hooks generated with verifiable source URLs | 245 (0 errors) |
| Ready-to-send leads (hook + email + no role drift) | 180 |
| Validation metric | Value |
|---|---|
| Crossover with an externally-sourced 279-company target list | 84% (234 of 279 already in pipeline) |
| Of crossover, classified as HOT by the team's scoring | 99% (231 of 234) — independent confirmation |
| Crunchbase enrichment match rate | 25% (3,298 of 13,972 companies have funding info) |
The team operates the entire outbound funnel — discovery, enrichment, scoring, intent detection, personalization, delivery prep — without subscribing to a separate firmographics, list-building, enrichment, or delivery vendor.
| Endpoint | Purpose | Volume share |
|---|---|---|
db/linkedin/search/companies |
Bulk ICP discovery via SQL-style mini-DSL | 35% |
linkedin/sn_search/users |
Senior decision-maker enrichment in batch | 25% |
linkedin/user/posts |
Buying-intent signal harvest from recent posts | 20% |
linkedin/user/find_email_by_url |
Email resolution for outreach delivery | 15% |
crunchbase/company |
Funding/stage signal for tier scoring bumps | 5% |
The combination of LinkedIn-depth firmographic queries + flexible mini-DSL + structured filters is unique to the platform. Recreating it elsewhere requires stitching four to six vendors — firmographics, sales-nav search, list-building, enrichment, funding intelligence — into a pipeline with per-record pricing at every layer.
For sales teams that want to own their ICP definition instead of inheriting one from a vendor, the SQL-style discovery endpoint is the unlock: write your own scoring rubric, run it against the underlying database in seconds, and pay only for the rows that survive your filter.