Skip to main content

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

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

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

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:
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

CommandInputOutputAsync?Best for
enrichOne identifierPerson + company fieldsNoSingle-record enrichment now
contact-enrichBatch of leads (JSONL)Emails + phonesYesBatch contact data
workflow enrichDataset IDCompany/person fields for all rowsYesDataset-scale enrichment