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

# Forager: Person Detail Lookup

> Get a person's full profile, with work history, education and skills, from a person ID or LinkedIn handle. Includes SDK V2 examples, schemas, and cost.

Get a person's full profile, with work history, education and skills, from a person ID or LinkedIn handle.

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

## 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(
  'forager_person_detail_lookup',
  {
    "person_id": 123,
    "linkedin_public_identifier": "https://www.linkedin.com/in/jane-doe"
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute forager_person_detail_lookup --input '{
  "person_id": 123,
  "linkedin_public_identifier": "https://www.linkedin.com/in/jane-doe"
}' --json
```

## Example response

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

## Input reference

Person info request serializer.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.person_id` | `integer` | No | — | — |
| `payload.linkedin_public_identifier` | `string` | No | — | LinkedIn organization "Public identifier/Slug/ID" - "linkedin.com/in/!slug!/". |

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

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Person info request serializer.",
    "properties": {
      "person_id": {
        "type": "integer"
      },
      "linkedin_public_identifier": {
        "type": "string",
        "description": "LinkedIn organization \"Public identifier/Slug/ID\" - \"linkedin.com/in/!slug!/\"."
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Person details serializer. |
| `result.data.id` | `integer` | Yes | — | — |
| `result.data.full_name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.first_name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.last_name` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.photo` | `string \| null` | No | — | Format: `uri`. Maximum length: 255. |
| `result.data.gender` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.headline` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.description` | `string \| null` | No | — | — |
| `result.data.skills` | `array` | Yes | — | — |
| `result.data.skills[].name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.location` | `object` | Yes | — | Serializer for the InnerLocation model. |
| `result.data.location.id` | `integer` | Yes | — | — |
| `result.data.location.name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.location.osm_locations` | `array` | Yes | — | — |
| `result.data.location.osm_locations[].id` | `integer` | Yes | — | — |
| `result.data.location.osm_locations[].name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.location.osm_locations[].place_type` | `string` | Yes | — | Maximum length: 255. |
| `result.data.linkedin_info` | `object` | Yes | — | Serializer for the PersonLinkedinInfo model. |
| `result.data.linkedin_info.public_identifier` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.linkedin_info.industry` | `object` | Yes | — | Serializer for the LinkedinIndustry document. |
| `result.data.linkedin_info.industry.id` | `integer` | Yes | — | — |
| `result.data.linkedin_info.industry.name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.linkedin_info.public_profile_url` | `string` | Yes | — | Get LinkedIn public profile URL. |
| `result.data.roles` | `array` | Yes | — | — |
| `result.data.roles[].id` | `integer` | Yes | — | — |
| `result.data.roles[].role_title` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.roles[].start_date` | `string \| null` | No | — | Format: `date`. |
| `result.data.roles[].end_date` | `string \| null` | No | — | Format: `date`. |
| `result.data.roles[].duration` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.roles[].description` | `string \| null` | No | — | — |
| `result.data.roles[].is_current` | `boolean` | Yes | — | — |
| `result.data.roles[].organization` | `object` | Yes | — | Short serializer for the Organization model. |
| `result.data.roles[].organization.id` | `integer` | Yes | — | — |
| `result.data.roles[].organization.name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.roles[].organization.domain` | `string \| null` | No | — | Format: `uri`. Maximum length: 200. |
| `result.data.roles[].organization.linkedin_info` | `object` | Yes | — | Serializer for the OrganizationLinkedinInfo model. |
| `result.data.roles[].organization.linkedin_info.public_identifier` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.roles[].organization.linkedin_info.industry` | `object` | Yes | — | Serializer for the LinkedinIndustry document. |
| `result.data.roles[].organization.linkedin_info.industry.id` | `integer` | Yes | — | — |
| `result.data.roles[].organization.linkedin_info.industry.name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.roles[].organization.linkedin_info.public_profile_url` | `string \| null` | Yes | — | Get LinkedIn public profile URL. |
| `result.data.roles[].organization_name` | `string \| null` | No | — | Maximum length: 255. |
| `result.data.educations` | `array` | Yes | — | — |
| `result.data.educations[].id` | `integer` | Yes | — | — |
| `result.data.educations[].school_name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.educations[].organization` | `object` | Yes | — | Short serializer for the Organization model. |
| `result.data.educations[].organization.id` | `integer` | Yes | — | — |
| `result.data.educations[].organization.name` | `string` | Yes | — | Maximum length: 255. |
| `result.data.educations[].organization.domain` | `string \| null` | No | — | Format: `uri`. Maximum length: 200. |

The table shows the first 50 fields. Expand the raw schema below for every field.

> [!NOTE]
>
> This output schema is too large for an inline display. Read the complete live contract with `deepline describe forager_person_detail_lookup --json`.

## Deepline cost

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

## Related documentation

* [Forager provider guide](https://deepline.com/docs/providers/forager/guide.md)
* [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.