

# How to Review Relationship Claims in LinkedIn Profile Data

Match the profile record before you judge a relationship. A match does not attach the headline to each organization. A match does not prove current paid work. Review each claim against the exact public fields. Then keep only the narrow reading those fields support.

An Actor is a hosted data collection program. The [LinkedIn Profile Scraper](https://apify.com/chronometrica/linkedin-profile-scraper) is the Actor in this article. A Task is a saved input preset for an Actor. The Actor collects public profile fields. You review the relationship claims. The Actor does not decide relationships. It does not check employment. It does not build a lead list.

## Collect one known profile

A build is the numbered public version of the Actor. The current public build is 1.0.28. This build takes a `startUrls` list. Each entry must be a known public profile URL. The URL must contain `/in/`. Replace the whole saved sample list with one intended URL. The saved Task is only a starting input. It is not proof that this review happens by itself.

Put your known profile URL in `startUrls`, as in this input.

```json
{
  "startUrls": [
    "https://www.linkedin.com/in/your-intended-public-profile"
  ]
}
```

Collect one known profile

Change that sample path to the real public profile you chose. Leave no old sample URL in the list.

Read these fields on the profile record:

- `profileId`: a stable ID for the profile
- `profileUrn`: another stable ID for the same profile
- `publicIdentifier`: the public name in the URL path
- `url`: the public profile address
- `name`: the name shown on the profile
- `headline`: one text string for the whole profile
- `currentOrganizations`: a list of organization names
- `organizationDetails`: objects with organization facts
- `education`: a list of education entries
- `educationDetails`: a second list with education text and dates
- `status`: whether this read succeeded
- `statusReason`: the cause when a read fails or is blocked
- `observedAt`: the time of this public read

`headline` is profile-level text. It is not stored inside one organization object.

Each `organizationDetails` object can hold `name`, `url`, and `location`. It has no job title. It has no contract type, such as full time or part time. It has no job start date or job end date. It has no role-pair ID. A role-pair ID would tie one role to one organization.

An employer relationship is that tie between one role and one employer. A field path is the place of one value in the record. `headline` is one field path. `organizationDetails.name` is another field path. No field path here states an employer relationship.

Each `educationDetails` item can hold `name`, `url`, and `description`. It can also hold `startDate` and `endDate`. A date is a text string or null. Null means the value is absent. Absent is not the same as zero. The description does not prove a degree. It does not prove a license or a right to practice.

A run is one use of the Actor. The run reports `inputCount`, `usefulRows`, `failedRows`, and `stopReason`. `inputCount` is the number of URLs sent in. `usefulRows` is the number of successfully saved status-ok profile rows. Non-ok rows are stored but counted as `failedRows`. `stopReason` says why the run stopped. These numbers describe the run only. They do not count relationship claims. Four reviewed claims do not make `usefulRows` equal four.

One checked public profile record matched the known profile ID. It had one `currentOrganizations` item. It had one `organizationDetails` object. That object had a name, a URL, and a location. The headline was absent. The `education` list was empty. The `educationDetails` list was empty. The status showed success. Success did not add the role field you may want. It did not prove current paid work. It did not prove a full career history. Empty education lists mean the public text was unavailable. They do not prove that the person has no education. An absent headline is unknown text. It is not proof that no role exists.

## Do the eight review steps

Do these steps only after the profile identity matches. [Identity checks](/en/articles/linkedin-join-three-datasets/) belong to the separate identity guide. This article does not join posts, comments, or other profiles.

1. Start from the known profile URL and the question you need answered. You may want a company and a role. The profile record may show a headline and organization names. Those texts are not a checked role-to-employer tie for every organization. Collect the small public record first. Keep `status`, `statusReason`, and `observedAt` with it. Do not write a relationship claim before that.
2. Confirm that the record is the intended profile. You need a nonblank `profileId` and the matching public URL. You can use `profileUrn` the same way when it is present. If the ID is blank, missing, or in conflict with the URL, stop. Keep that record out of relationship review. Write the reason beside it. A name by itself is not enough.
3. Write each proposed relationship as its own claim. Do this before you judge it. One claim might say that the person is an engineer at a named company. Another might say that the tie is current full-time paid work. Another might say that an education entry proves a finished degree. The profile name and ID do not prove those claims.
4. Find the exact field path and the raw value. `headline` is text for the whole profile. `currentOrganizations` lists organization names. `organizationDetails` adds the name, URL, and location. It does not add a role, a contract type, or job dates. Do not pair the same headline with every organization. Do not use list position as a join key. List position is only the order of items. Do not treat an organization URL as proof of a job.
5. Give the claim one review state. You create these states during the review. They are not Actor fields. `supported_only_at_source_scope` means the record shows that narrow fact at that time. `unsupported_pairing` means two facts appear, but no field ties them together. `unsupported_employment_state` means the record does not show pay, hours, or a current contract. `unsupported_credential_claim` means the record does not show a finished degree, award, or license. `needs_source_review` means the record is unclear and needs another look at the source. Missing proof does not make the claim false. It means this record does not establish the claim. A contradiction is different. Use it only when another checked source clearly disagrees. Do not call a gap a contradiction.
6. Replace an unsupported claim with the narrowest honest sentence. Keep the headline in its own words. Keep each organization in its own words. State the headline and the organization names as separate facts. Do not write that the person is an engineer at both organizations. If you need the employer relationship, use a source that states it. Record that source and its own time. Do not assume this Actor hides a full career section.
7. Review education with the same rules. A future `endDate` does not prove graduation today. A description is not a verified degree or license. Keep a date string at the precision given. A year-only value does not become an exact day. An empty education list is unavailable public text. It is not proof that no qualification exists. A blocked record does not prove that either. Unknown stays unknown. Unknown is not zero.
8. Make one claim table when the review is done. Each claim line has seven cells. Name the source profile and the observation time. Then write the proposed claim. Then write the exact field values. Then write the state and the reason. Then write the corrected wording. Then write any further evidence you still need. Count claims apart from profiles. Count claims apart from organization objects. Count claims apart from education objects. This is a fact review. It is not an employment database. It is not a role tally. It is not a credentials check. [Role tallies](/en/articles/linkedin-comment-author-roles/) belong in the separate role-coding guide.

## Worked fiction review

The profiles and values in this section are fiction. They are a teaching example, not an Actor result. They are not a real person's verified employment.

The fiction uses one profile, called P1. The assumed observation time is 2026-06-15T12:00:00Z. That time is assumed for the example only.

The raw headline value is Engineer | advisor. Keep that raw text unchanged.

`currentOrganizations` contains two names. The names are Cedar Labs and North Club.

Organization object 1 is Cedar Labs. It has a name, a URL, and a location only. Organization object 2 is North Club. It has a name, a URL, and a location only. Neither object has a role, a contract type, job dates, or a role-pair ID.

There is one education object. Its name is Cedar College. Its description is Engineering. Its `startDate` is 2024. Its `endDate` is 2027. Those date values are year labels, not exact days.

No field ties a role to an employer. No field gives an award status. Cedar Labs is the first organization name. North Club is the second. That order is not a join key. Cedar College shares the word Cedar with Cedar Labs. A shared word is not an organization-to-school tie.

The review has four claims. It uses one profile, two organization objects, and one education object. Do not turn the four claims into four people.

| Source profile and observation | Proposed claim | Exact field values | State | Reason | Corrected wording | Further evidence needed |
| --- | --- | --- | --- | --- | --- | --- |
| Fiction P1 at assumed time 2026-06-15T12:00:00Z | R1. P1 is an engineer at Cedar Labs | The headline is the raw profile text above. `currentOrganizations` includes Cedar Labs. The Cedar Labs object has name, URL, and location only. | unsupported_pairing | The headline has no employer tie. No field pairs those role words with Cedar Labs. | At the assumed time, the headline is the raw text above. The record also lists Cedar Labs. These facts stay separate. | A separate checked source that ties this role to Cedar Labs, with its own time. |
| Fiction P1 at assumed time 2026-06-15T12:00:00Z | R2. P1 currently works full time for North Club | `currentOrganizations` includes North Club. The North Club object has name, URL, and location only. It has no contract type and no job dates. | unsupported_employment_state | A listed organization does not prove full-time work or current pay. | At the assumed time, the record lists North Club with a name, URL, and location. It does not state a contract. | A separate checked source that states the contract type and dates for North Club. |
| Fiction P1 at assumed time 2026-06-15T12:00:00Z | R3. P1 graduated from Cedar College in 2026 | The education name is Cedar College. The description is Engineering. `startDate` is 2024. `endDate` is 2027. | unsupported_credential_claim | The `endDate` label is 2027, not a 2026 award. No field shows a completed award. Year labels are not exact days. | The entry name is Cedar College. The description label is Engineering. The `startDate` label is 2024. The `endDate` label is 2027. These are raw labels, not a verified enrollment or award. | A separate checked award record, if you need that stronger claim. |
| Fiction P1 at assumed time 2026-06-15T12:00:00Z | R4. This checked public profile lists the three exact text fields at the saved observation | The headline text above, the names Cedar Labs and North Club, and the Cedar College entry with its date labels. | supported_only_at_source_scope | The fiction record contains those public texts at the assumed time. Support stops at the listing. | At the assumed time, fiction profile P1 lists that headline, those two organization names, and that one education entry. | None for the listing itself. The listing does not prove the jobs or a degree. |

A second fiction profile has status ok. Its headline is missing. A role claim based on that headline is unknown. Do not give it P1's headline or P1's role. A missing headline is not a blank job. It is not zero roles. None of these fiction cases is a real employment result.

## Next action

Choose one employer-role sentence from your own profile record. Check `headline`, `currentOrganizations`, and `organizationDetails` for a real tie between that role and that employer. If the tie is absent, write the narrower wording and name the evidence you still need. Collect the public fields with the [LinkedIn Profile Scraper](https://apify.com/chronometrica/linkedin-profile-scraper). Start from the [LinkedIn Profile Organization and Education Data](https://apify.com/chronometrica/linkedin-profile-scraper/examples/linkedin-profile-organization-education-data) Task only after you replace the saved sample URL.

## Sources

- [LinkedIn Profile Scraper](https://apify.com/chronometrica/linkedin-profile-scraper)
- [LinkedIn Profile Organization and Education Data](https://apify.com/chronometrica/linkedin-profile-scraper/examples/linkedin-profile-organization-education-data)
- [r/linkedin 1cqpg97](https://www.reddit.com/r/linkedin/comments/1cqpg97/is_it_possible_to_export_data_from_linkedin_to_an/)