> ## Agent Instructions
>
> Base URL: https://api.anysite.io
> Authentication: send the `access-token` header. Do NOT use `Authorization: Bearer`.
> Full endpoint catalog: https://app.anysite.io/docs
# B2B Outbound Operator — ICP Discovery & Scoring at $1 per 1k Records

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.

## Overview

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.

  
#### 14,000 companies

    Discovered in a single sprint from one query (~2s wall-clock)
  
  
#### 180 ready-to-send leads

    Hook + verified email + no role drift, per week
  
  
#### ~$15–20 / sprint

    Out-of-pocket LLM cost; discovery API calls free under MCP Unlimited
  

## The Challenge

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:

- **Bulk discovery in one call** — pull 1,000–10,000 candidates per sprint, not 50-result pagination loops
- **Soft-signal search** — match phrases across `description`, `short_description`, `specialities`, `hashtags`, and `locations` simultaneously
- **Strict structured filters** — country (ISO2), employee range, founded year, active-status flags — applied at the database layer, not client-side
- **Sub-second iteration** — try ten different keyword sets in an hour, not three over a week
- **Schema ownership** — every row returned in full LinkedIn shape so the team writes its own scoring rubric

## The Solution

The `/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.

### 1. Cross-field keyword search via mini-DSL — 70% of calls

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:

```json
{
  "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.

### 2. Token-aware structured geo + size filters — 20% of calls

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.

```json
{
  "industry_name": "fintech|payments",
  "country_hq": ["US","GB","DE"],
  "employee_count_min": 51,
  "founded_on_min": 2020,
  "page_verification_status": true,
  "count": 500
}
```

### 3. Per-field DSL for surgical narrowing — 10% of calls

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 description
- `name: "ai|agent"` — match in company name (catches AI-native startup branding)
- `description: '"sales intelligence" -consultancy'` — boolean exclusion of consulting hits

## The Data Pipeline

Daily 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.

## Results & Scale

| 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.

## Key Anysite Endpoints Used

| 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% |

## Why Anysite

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.

## Key Takeaways

- **Own your ICP, don't inherit it.** A structured, SQL-style discovery endpoint lets the team write its own scoring rubric instead of accepting a vendor's coarse categories.
- **One endpoint replaces a four-to-six-vendor stack.** Firmographics, sales-nav search, list-building, enrichment, and funding intelligence collapse into a single pipeline.
- **Discovery is cheap; precision is the value.** 14,000 companies narrow to 180 hand-picked touches — a 2.3% HOT rate, independently confirmed at 99% against an external target list.
- **Boutique scale without sales-ops headcount.** A sub-10-person team ships 150 hand-picked outbound touches per week — work that would otherwise need a full sales-ops function and a five-figure annual tooling budget.
