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

# How enrichment works

> Understand the difference between enrich, contact-enrich, and the workflow enrich command — when to use each, and why some fields come back empty.

# How enrichment works

There are three enrichment paths in landbase-cli. They are not interchangeable — each is designed for a different situation.

***

## The three enrichment paths

### 1. `enrich` — synchronous, single record, person and company fields

```bash theme={null}
landbase-cli enrich --linkedin-url=https://www.linkedin.com/in/danielsaks
```

Use this when:

* You have one record you want to enrich right now
* You want person attributes (title, seniority, department) or company attributes (industry, size, HQ location, LinkedIn)
* You want a result immediately (synchronous — no polling)

This command makes a live lookup against the Landbase database. It returns in a few seconds. If you pass a person identifier, Landbase can also resolve and return company enrichment for their employer at the same time.

### 2. `contact-enrich` — asynchronous, batch, email and phone only

```bash theme={null}
landbase-cli contact-enrich submit ./leads.jsonl --enrich-phone --wait
```

Use this when:

* You have a batch of contacts (up to 100 per request)
* You want email addresses or phone numbers specifically
* You can wait for an async job to complete

`contact-enrich` is not a general-purpose enrichment command. It is specifically for finding work emails and direct phone numbers. It starts a background job and returns a `request_id`. The CLI polls the job and returns results when it finishes (if you pass `--wait`).

### 3. `workflow enrich` — asynchronous, dataset-level

```bash theme={null}
landbase-cli workflow enrich <dataset-id> --company-fields=industry,size_range --wait
```

Use this when:

* You have uploaded a dataset and want to enrich all rows
* You want company or person attributes (not contact info) at scale
* You want the enrichment saved as a dataset in your workspace (with lineage)

This is the batch equivalent of `enrich`. It operates on an existing Landbase dataset rather than a local file.

***

## Why fields come back empty

Empty or absent fields are normal — they are not errors. There are a few reasons a field might not be returned:

**The record was not found.** If Landbase cannot confidently match your input (name + company domain, LinkedIn URL, etc.) to a record in its database, it will not return enrichment data. This is intentional — returning incorrect data is worse than returning nothing.

**The field is not populated for this record.** Not every company or person has every field in Landbase's database. A small startup may not have a verified employee count. A contact may not have a LinkedIn profile.

**You did not request the field.** For `enrich`, you can specify which company fields to return with `--company-fields`. If you omit a field, it will not be in the response.

***

## Company chain resolution

When you use `enrich` with a person identifier (like a LinkedIn URL), Landbase can automatically resolve the associated company and return company fields in the same call:

```bash theme={null}
landbase-cli enrich \
  --linkedin-url=https://www.linkedin.com/in/danielsaks \
  --company-fields=industry,size_range,hq_city
```

This is the "company chain" — the CLI starts with the person, identifies their employer, and fetches company enrichment in one request.

***

## Summary

| Command           | Input                  | Output                             | Async? | Best for                     |
| ----------------- | ---------------------- | ---------------------------------- | ------ | ---------------------------- |
| `enrich`          | One identifier         | Person + company fields            | No     | Single-record enrichment now |
| `contact-enrich`  | Batch of leads (JSONL) | Emails + phones                    | Yes    | Batch contact data           |
| `workflow enrich` | Dataset ID             | Company/person fields for all rows | Yes    | Dataset-scale enrichment     |

***

## Related

* [enrich reference](/docs/reference/enrich)
* [contact-enrich reference](/docs/reference/contact-enrich)
* [workflow reference](/docs/reference/workflow)
* [Tutorial: Enrich a contact list from scratch](/docs/tutorials/enrich-a-contact-list)
