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

# Search by Connector

> Get referral opportunities for a specific connector

Get opportunities for a single [connector](/api-reference/list-connectors) — one of the people in your
network whose connections Clustr analyzes. Provide exactly **one** of `linkedin_public_id` or `linkedin_url`.

<Note>
  This matches the **connector** side of an opportunity. A person who appears in your network only as a
  prospect returns `0` opportunities here. To find who can introduce you to a given person, use
  [Search Opportunities](/api-reference/search-opportunities) with `prospect_linkedin_urls`.
</Note>

<Info>
  **Renamed.** This endpoint was previously `/network/search/opportunities/by-contact`, and the person in
  the response was previously called `contact`. The old path still works and the response still includes a
  `contact` field mirroring `connector`, so existing integrations keep running. New integrations should use
  `connector`.
</Info>

## People with several current roles

Plenty of people hold more than one job at a time. A partner at a venture fund may also sit on the boards
of three companies the fund backs, and each opportunity is filed under a single one of those companies.
Company filters match **every role a person currently holds**, not just the one their opportunity is filed
under, so a search for the fund finds that partner. This needs no parameter and is always on.

Past employers are not matched. Someone who left a company is not an opportunity at that company.

Add `include_all_positions=true` to see the full picture in the response: every job each person holds or
held, with `is_current` separating the two and `is_primary` marking the role the opportunity is filed under.

## Query Parameters

<ParamField query="linkedin_public_id" type="string">
  Connector's LinkedIn public identifier, e.g. `john-doe`
</ParamField>

<ParamField query="linkedin_url" type="string">
  Connector's full LinkedIn URL, e.g. `https://www.linkedin.com/in/john-doe`
</ParamField>

<ParamField query="full_history" type="boolean" default="false">
  Include engagement history
</ParamField>

<ParamField query="include_all_positions" type="boolean" default="false">
  Return every job each person holds or held, as a `positions` array on the person, alongside the single
  role the opportunity is filed under. Requires a bounded `page_size`: combining this with the unlimited
  page returns 400, so page through the results instead.
</ParamField>

<ParamField query="seniority_levels" type="string">
  `high`, `mid`, `low`
</ParamField>

<ParamField query="industries" type="string">
  Comma-separated industry names
</ParamField>

<ParamField query="page" type="integer" default="1" />

<ParamField query="page_size" type="integer" default="25" />

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.clustr-ai.com/api/public/network/search/opportunities/by-connector?linkedin_url=https://www.linkedin.com/in/john-doe" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```python Python theme={null}
  import requests

  requests.get(
      "https://api.clustr-ai.com/api/public/network/search/opportunities/by-connector",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
      params={"linkedin_url": "https://www.linkedin.com/in/john-doe"},
  )
  ```

  ```javascript JavaScript theme={null}
  await fetch(
    "https://api.clustr-ai.com/api/public/network/search/opportunities/by-connector?linkedin_url=https://www.linkedin.com/in/john-doe",
    { headers: { Authorization: "Bearer YOUR_API_KEY" } }
  );
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "data": {
      "connector": {
        "name": "John Doe",
        "job_title": "Sales Director",
        "company_name": "Your Corp"
      },
      "contact": {
        "name": "John Doe",
        "job_title": "Sales Director",
        "company_name": "Your Corp"
      },
      "opportunities": [
        {
          "opportunity_id": "550e8400-...",
          "prospect": {
            "name": "Jane Smith",
            "job_title": "CTO",
            "company_name": "Acme Corp",
            "positions": [
              {
                "company_name": "Acme Corp",
                "linkedin_numeric_id": "12345678",
                "linkedin_vanity_name": "acme-corp",
                "domain": "acme.com",
                "job_title": "CTO",
                "is_current": true,
                    "is_primary": true
              },
              {
                "company_name": "Northwind Ventures",
                "linkedin_numeric_id": "74364633",
                "linkedin_vanity_name": "northwind-ventures",
                "job_title": "Board member",
                "is_current": true,
                    "is_primary": false
              }
            ]
          },
          "relationship": {
            "confidence_score": 92,
            "total_overlap_months": 58,
            "shared_experience": {
              "company_name": "Microsoft",
              "overlap_months": 36,
              "client_role": "Principal Engineer",
              "prospect_role": "Program Manager",
              "is_current": false,
              "client_location": "Dublin, Ireland",
              "prospect_location": "Redmond, Washington",
              "same_location": false,
              "same_country": false,
              "colleague_label": "different_departments"
            },
            "shared_experience_history": [
              {
                "company_name": "Microsoft",
                "overlap_months": 36,
                "client_role": "Principal Engineer",
                "prospect_role": "Program Manager",
                "is_current": false,
                "client_location": "Dublin, Ireland",
                "prospect_location": "Redmond, Washington",
                "same_location": false,
                "same_country": false,
                "colleague_label": "different_departments"
              },
              {
                "company_name": "Tiny Startup",
                "overlap_months": 22,
                "client_role": "Engineer",
                "prospect_role": "Head of Product",
                "is_current": false,
                "client_location": "Berlin, Germany",
                "prospect_location": "Berlin, Germany",
                "same_location": true,
                "same_country": true,
                "colleague_label": "same_team"
              }
            ],
            "shared_experience_count": 2
          },
          "is_target_company": true
        }
      ],
      "total": 12,
      "page": 1,
      "page_size": 25,
      "has_more": false
    }
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": {
      "message": "Either linkedin_public_id or linkedin_url is required",
      "code": "BAD_REQUEST"
    }
  }
  ```

  ```json 401 theme={null}
  {
    "success": false,
    "error": {
      "message": "Invalid or missing API key",
      "code": "UNAUTHORIZED"
    }
  }
  ```
</ResponseExample>
