> For the complete documentation index, see [llms.txt](https://docs.kernel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kernel.ai/data/entity-data/linkedin-url.md).

# LinkedIn URL

{% embed url="<https://pub-8e1d08f439ec43bdbb79f1055a273a02.r2.dev/linkedin-url-ee3f61be.mp4>" %}

LinkedIn company pages are useful evidence, but they are not a clean entity identifier on their own. Kernel matches LinkedIn URLs after resolving the underlying entity, so the URL is tied to the company, subsidiary, brand, or operating unit the CRM account is meant to represent.

This matters because the relationship between CRM accounts, real-world entities, and LinkedIn pages is often many-to-many:

* Multiple CRM accounts can share the same LinkedIn URL because the accounts are duplicates, regional records, branches, or records that all point at a global parent profile.
* One account can have several plausible LinkedIn URLs, such as a global company page, a regional subsidiary page, an acquired brand page, or an older duplicate profile.
* A LinkedIn page can list a website that redirects, uses a short link, points to a careers page, or belongs to the broader group rather than the specific entity.

{% hint style="info" %}
Examples:

* Starbucks alone has 100+ LinkedIn profiles.
* Google's [LinkedIn profile](https://www.linkedin.com/company/google) is associated with [`goo.gle/3DLEokh`](https://goo.gle/3DLEokh), a short link to their careers site.
* In your CRM, Frito-Lay may be incorrectly associated with `linkedin.com/company/frito-lay-inc/`, which looks correct, but isn't.
  {% endhint %}

Kernel therefore treats LinkedIn as evidence about the entity, not as the entity itself.

## How Kernel chooses a LinkedIn URL

Kernel starts from the resolved entity and the evidence around the CRM account: name, website, legal name, country, hierarchy context, address, existing CRM LinkedIn URL, and related account signals. It does not pick the first LinkedIn search result or assume that matching a website domain is enough.

The matching flow has three stages:

{% stepper %}
{% step %}
**Candidate generation**

Kernel builds a candidate set from its LinkedIn profile index, the account website, existing CRM fields, web evidence, and related entity data.
{% endstep %}

{% step %}
**Candidate ranking**

Kernel ranks those candidates using signals such as name and slug similarity, website alignment, geography, profile completeness, headcount range, follower count, and parent or regional context.
{% endstep %}

{% step %}
**Candidate selection**

Kernel compares the strongest candidates against the resolved entity boundary and selects the profile whose scope best fits the account.
{% endstep %}
{% endstepper %}

The output can be:

| Output       | Meaning                                                          |
| ------------ | ---------------------------------------------------------------- |
| LinkedIn URL | The profile Kernel believes best represents the resolved entity. |
| Match type   | Whether the profile is an `actual` or `indicative` match.        |
| Reasoning    | A plain-language explanation of why that profile was selected.   |

## Match types

Kernel uses match type to separate direct matches from useful but less definitive profile links:

| Match type   | Meaning                                                                                                                                                                                                        |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `actual`     | The LinkedIn profile is a verified direct match for the resolved entity. The profile identity, website, branding, geography, and supporting evidence line up strongly enough to treat it as the entity's page. |
| `indicative` | The LinkedIn profile is the best available signal, but it may represent a parent, regional operation, brand, or broader group rather than a clean one-to-one entity match.                                     |

This distinction is important for review workflows. Two accounts can legitimately share an indicative group profile, while another account may need a more specific actual profile before the CRM field should be updated.

In Salesforce, the standard Kernel Account custom object (`Kernel_Account__c`) exposes the matched URL as `Kernel_Linkedin_Url__c`.
