> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Deepline Native: Search Contact

> Synchronous contact search returning LinkedIn URLs and profile/title data only: it never returns contact data (professional_email, mobile_phone, phone_numbers.

Synchronous contact search returning LinkedIn URLs and profile/title data only: it never returns contact data (professional\_email, mobile\_phone, phone\_numbers.

> [!NOTE]
>
> Tool ID: `search_contact`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'search_contact',
  {
    "contact_linkedin": "https://www.linkedin.com/in/jane-doe",
    "domain": "example.com",
    "company_linkedin": "https://www.linkedin.com/in/jane-doe"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute search_contact --input '{
  "contact_linkedin": "https://www.linkedin.com/in/jane-doe",
  "domain": "example.com",
  "company_linkedin": "https://www.linkedin.com/in/jane-doe"
}' --json
```

## Example response

The static output schema lacks the details for a reliable example. Use `deepline describe search_contact --json` for the complete live contract.

## Input reference

Company-scoped people search returning LinkedIn URLs and profile and title data. Returns no email or phone. Use enrich\_contact or enrich\_phone for those.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.contact_linkedin` | `string` | No | — | LinkedIn profile URL or slug of the contact to search for (3-500 chars). |
| `payload.domain` | `string` | No | — | Company domain to scope the search (4-500 chars). This is the strongest input and should be present for most real searches. |
| `payload.company_linkedin` | `string` | No | — | LinkedIn company page URL or slug (3-500 chars). |
| `payload.company_name` | `string` | No | — | Company name to scope the search (3-500 chars. The upstream API rejects shorter names). For 1-2 character names like "2U", pass domain or company\_linkedin instead. |
| `payload.title_filters` | `array` | No | — | Ordered list of boolean title filter expressions (up to 5). Best results come from narrow leadership filters like "VP Engineering OR Head of Engineering OR Director of Engineering", not broad terms like "founder" or "sales". |
| `payload.title_lists` | `array` | No | — | Named lists of titles (up to 5 lists and 120 titles total across all lists). Matching is NOT exact in practice: live results include titles that only contain or resemble a listed title (e.g. "Staff Engineer Heat Transfer Group" for "Staff Engineer"). Filter returned titles yourself if you need exact matches. Split larger title sets across multiple requests. |
| `payload.departments` | `array` | No | — | Filter by department names (e.g. \["Engineering", "Sales"]). |
| `payload.seniorities` | `array` | No | — | Filter by seniority levels. Live API-safe values confirmed in prod: Director, Manager, Entry, Senior, Partner. Legacy shorthand may be normalized. unsupported values are currently dropped before the upstream call, so prefer explicit live-safe values. |
| `payload.location_countries` | `array` | No | — | Filter contacts by country of residence (max 50, each 1-200 chars). |
| `payload.company_location_countries` | `array` | No | — | Filter by company HQ country (max 50, each 1-200 chars). |
| `payload.company_industries` | `array` | No | — | Filter by company industry categories (max 50). |
| `payload.company_employee_ranges` | `array` | No | — | Filter by company headcount ranges. Valid buckets: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ (max 8). |
| `payload.excluded_names` | `array` | No | — | Contact names to exclude from search results (max 100). |
| `payload.included_names` | `array` | No | — | Restrict results to these contact names (max 100). |
| `payload.headline` | `string` | No | — | Free-text filter against the contact headline or bio (3-500 chars). |
| `payload.page_number` | `integer` | No | — | Page number for paginated results (1-indexed, max 100). |
| `payload.page_size` | `integer` | No | — | Number of results per page (default 10, max 250). Keep this small (1-3) for targeted leadership lookups so you can inspect candidate quality. |
| `payload.custom_fields` | `record` | No | — | Opaque metadata echoed back in finder responses via custom\_fields (max 16 keys). |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Company-scoped people search returning LinkedIn URLs and profile and title data. Returns no email or phone; use enrich_contact or enrich_phone for those.",
    "properties": {
      "contact_linkedin": {
        "type": "string",
        "description": "LinkedIn profile URL or slug of the contact to search for (3-500 chars)."
      },
      "domain": {
        "type": "string",
        "description": "Company domain to scope the search (4-500 chars). This is the strongest input and should be present for most real searches."
      },
      "company_linkedin": {
        "type": "string",
        "description": "LinkedIn company page URL or slug (3-500 chars)."
      },
      "company_name": {
        "type": "string",
        "description": "Company name to scope the search (3-500 chars; the upstream API rejects shorter names). For 1-2 character names like \"2U\", pass domain or company_linkedin instead."
      },
      "title_filters": {
        "type": "array",
        "description": "Ordered list of boolean title filter expressions (up to 5). Best results come from narrow leadership filters like \"VP Engineering OR Head of Engineering OR Director of Engineering\", not broad terms like \"founder\" or \"sales\".",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Optional label for internal reporting or grouping (2-500 chars)."
            },
            "filter": {
              "type": "string",
              "description": "Boolean title filter expression (2-10000 chars)."
            }
          },
          "required": [
            "name",
            "filter"
          ],
          "additionalProperties": false
        }
      },
      "title_lists": {
        "type": "array",
        "description": "Named lists of titles (up to 5 lists and 120 titles total across all lists). Matching is NOT exact in practice: live results include titles that only contain or resemble a listed title (e.g. \"Staff Engineer Heat Transfer Group\" for \"Staff Engineer\"). Filter returned titles yourself if you need exact matches. Split larger title sets across multiple requests.",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Label for this title list (2-500 chars)."
            },
            "titles": {
              "type": "array",
              "description": "Titles to match against (1-100 items, each 2-500 chars). Not enforced as exact matches; re-check returned titles.",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "name",
            "titles"
          ],
          "additionalProperties": false
        }
      },
      "departments": {
        "type": "array",
        "description": "Filter by department names (e.g. [\"Engineering\", \"Sales\"]).",
        "items": {
          "type": "string"
        }
      },
      "seniorities": {
        "type": "array",
        "description": "Filter by seniority levels. Live API-safe values confirmed in prod: Director, Manager, Entry, Senior, Partner. Legacy shorthand may be normalized; unsupported values are currently dropped before the upstream call, so prefer explicit live-safe values.",
        "items": {
          "type": "string"
        }
      },
      "location_countries": {
        "type": "array",
        "description": "Filter contacts by country of residence (max 50, each 1-200 chars).",
        "items": {
          "type": "string"
        }
      },
      "company_location_countries": {
        "type": "array",
        "description": "Filter by company HQ country (max 50, each 1-200 chars).",
        "items": {
          "type": "string"
        }
      },
      "company_industries": {
        "type": "array",
        "description": "Filter by company industry categories (max 50).",
        "items": {
          "type": "string"
        }
      },
      "company_employee_ranges": {
        "type": "array",
        "description": "Filter by company headcount ranges. Valid buckets: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ (max 8).",
        "items": {
          "type": "string",
          "enum": [
            "1-10",
            "11-50",
            "51-200",
            "201-500",
            "501-1000",
            "1001-5000",
            "5001-10000",
            "10001+"
          ]
        }
      },
      "excluded_names": {
        "type": "array",
        "description": "Contact names to exclude from search results (max 100).",
        "items": {
          "type": "string"
        }
      },
      "included_names": {
        "type": "array",
        "description": "Restrict results to these contact names (max 100).",
        "items": {
          "type": "string"
        }
      },
      "headline": {
        "type": "string",
        "description": "Free-text filter against the contact headline or bio (3-500 chars)."
      },
      "page_number": {
        "type": "integer",
        "description": "Page number for paginated results (1-indexed, max 100)."
      },
      "page_size": {
        "type": "integer",
        "description": "Number of results per page (default 10, max 250). Keep this small (1-3) for targeted leadership lookups so you can inspect candidate quality."
      },
      "custom_fields": {
        "type": "object",
        "description": "Opaque metadata echoed back in finder responses via custom_fields (max 16 keys).",
        "additionalProperties": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            }
          ]
        }
      }
    },
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `record` | Yes | — | Provider response payload. |
| `result.meta` | `record` | No | — | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "additionalProperties": {}
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": {}
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `per_result` (per result).
* Estimated Deepline credits: `0.56` per pricing unit.

## Related documentation

* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.