<!-- BusyBot node reference — https://busybot.net/tools/humantic-ai/ -->

> Node: Humantic AI (`humantic_ai`) · Action (binary) · v1
> Category: Utility · Credentials: Humantic AI API (`humanticAiApi`)
> Updated: 2026-08-16

# Humantic AI

> Create and retrieve personality profiles from LinkedIn URLs or resume uploads

## Overview

The Humantic AI tool provides personality intelligence capabilities. It can create personality profiles from LinkedIn URLs, email addresses, or uploaded resumes (PDF/DOCX). It retrieves personality analysis results including DISC profile, OCEAN model scores, communication preferences, and persona-specific insights (sales, hiring). It also supports updating existing profiles with additional resume data or text.

**Category:** Utility  
**Tool Name:** `humantic_ai`  
**Version:** 1

**Appearance:** Icon: `lucide-Brain` | Color: `#6C47FF`

## Node Type

**Action (Binary)** — handles file/binary data operations

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Humantic AI API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/humantic-ai-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Profile | `profile` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a personality profile from LinkedIn URL, email, or resume |
| Get | `get` | Retrieve an existing personality profile analysis |
| Update | `update` | Update an existing profile with resume or additional text |

### Parameters

#### Profile: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| User ID | `string` | Yes | — | The LinkedIn profile URL or email ID for creating a Humantic profile. If sending a resume, this should be a unique string identifier. Supports expressions like {{ $json.linkedinUrl }}. |
| Send Resume | `boolean` | No | `false` | Whether to send a resume (PDF or DOCX) for resume-based analysis. |
| Binary Property | `string` | No | `data` | Name of the binary property containing the resume file in PDF or DOCX format. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when Send Resume is `true`)_ |

#### Profile: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| User ID | `string` | Yes | — | The user ID used when the profile was created (LinkedIn URL, email, or unique string). Supports expressions. |
| Options | `collection` | No | `{}` | Optional settings applied to the retrieval. |
| — Persona | `multiOptions` | No | `[]` | Fetch the profile for a particular persona type. Multiple values are joined with commas. |
| | | | | Options: `sales`, `hiring` |

#### Profile: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| User ID | `string` | Yes | — | The user ID of the profile to update. Currently only supported for profiles created using LinkedIn URL. Supports expressions. |
| Send Resume | `boolean` | No | `false` | Whether to send a resume file to update the profile. |
| Text | `string` | No | — | Additional text written by the user to enhance the profile analysis. Required when Send Resume is off. Supports expressions. _(shown when Send Resume is `false`)_ |
| Binary Property | `string` | No | `data` | Name of the binary property containing the resume file in PDF or DOCX format. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when Send Resume is `true`)_ |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `5` | Maximum number of items to process concurrently. Keep low to respect API rate limits. |

## Output Data

One output item per input item. The Humantic AI payload is merged into the item JSON at the top level, so the incoming fields stay addressable alongside it. Binary data on the input item is forwarded unchanged, including on items routed to the Error port — the resume stays attached for a retry branch.

What gets merged depends on the operation:

| Operation | Merged onto the item |
|-----------|----------------------|
| `create` | The profile record Humantic returns for the new user. When the response nests it under `data`, that object is merged; when it comes back at the root instead, the root object is merged with `usage_stats` stripped out. |
| `get` | The contents of the response's `results` object — the personality analysis itself: DISC profile, OCEAN scores, communication preferences, and any persona sections you requested. |
| `update` | The updated profile record, taken from the response's `data` object when present, otherwise from the root of the response. |

Creating a profile and reading it are two separate calls — `create` registers the person with Humantic, and `get` is what returns the analysis. Chain a `get` after a `create` when you need the scores in the same workflow.

## Usage Examples

- Create a personality profile from a LinkedIn URL
- Upload a resume PDF to create a Humantic AI profile
- Retrieve a personality analysis with sales persona insights
- Update an existing profile with additional text data

## Example Configuration

Create a profile from a LinkedIn URL on the item:

```json
{
  "type": "humantic_ai",
  "parameters": {
    "resource": "profile",
    "operation": "create",
    "userId": "{{ $json.linkedinUrl }}",
    "sendResume": false
  }
}
```

Create a profile from a resume attached to the item as binary data:

```json
{
  "type": "humantic_ai",
  "parameters": {
    "resource": "profile",
    "operation": "create",
    "userId": "{{ $json.candidateId }}",
    "sendResume": true,
    "binaryPropertyName": "data"
  }
}
```

Retrieve the analysis with both persona views:

```json
{
  "type": "humantic_ai",
  "parameters": {
    "resource": "profile",
    "operation": "get",
    "userId": "{{ $json.linkedinUrl }}",
    "options": {
      "persona": ["sales", "hiring"]
    }
  }
}
```

Enrich an existing profile with interview notes:

```json
{
  "type": "humantic_ai",
  "parameters": {
    "resource": "profile",
    "operation": "update",
    "userId": "{{ $json.linkedinUrl }}",
    "sendResume": false,
    "text": "{{ $json.interviewNotes }}"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Create and retrieve personality profiles from LinkedIn URLs, emails, or resume uploads using Humantic AI.

- **User ID is the identity you look the profile up by.** For LinkedIn or email sources it is that URL or address; for a resume upload it is a unique string you choose, and you must reuse the same string to retrieve the profile later.
- **Update needs a LinkedIn-created profile.** Profiles created from a resume or an email address cannot currently be updated.
- **Update needs one or the other.** With Send Resume off, Text must be filled in; with it on, the named binary property must exist on the item.
- **Resumes must be PDF or DOCX**, supplied as binary data from an upstream node (download, read file, or a form upload).
- **Persona is optional on Get.** Leave it empty for the base analysis, or select `sales`, `hiring`, or both to add those sections.
- **Keep Max Concurrency low.** Humantic rate-limits per key, and the default of 5 is deliberately conservative.