Skip to main content
Enrichment fills fields that are blank in your CRM: a company’s industry or size, a contact’s LinkedIn URL or job title. It is separate from the cleaning rules because it can cost money, so it stays off until you turn it on in settings.

What it fills

Enrichment fills blanks. It never replaces a value your CRM already has without asking. A placeholder such as “n/a”, ”-” or “none” in a LinkedIn URL counts as blank and is filled.

When your CRM already has a different value

In CRM Cleaning ▸ Settings ▸ Enrichment, choose what happens when the new value differs from the one in your CRM, for contacts and for companies: Contacts ask by default because a title LinkedIn gives differently is usually a promotion or a move worth a look. These changes wait in Review; the weekly email does not count them. Ask me skips values that are the same in another form (case, spacing, DE and Germany, two forms of one LinkedIn page, “VP Sales” and “Vice President Sales”), a headcount that moved by 5 or fewer or by less than 10%, a subdomain of the domain you have, a job title or company from a role at another employer, and a LinkedIn profile that drops the last name of the one you have (another person with the same first name). Over the API it is enrichment.when_different, set per object type: {"contact": "suggest", "company": "keep"}.

Companies

Contacts

Job title and company are on by default, on Do it. They cost nothing extra: they come from the LinkedIn profiles Clustr already stores, or from the same lookup as the LinkedIn URL. A contact that already has a LinkedIn URL is never bought again for its title. A workspace whose settings list its own contact fields (enrichment.fields.contact) keeps exactly that list; add job_title and company to it to get them.

Job title

People often hold several roles at once: a job, and a board seat, an investment or a podcast somewhere else. Clustr only ever writes the title of the role at the company your CRM puts the contact at, so a title never contradicts the contact’s company.
  1. Who the person is. The contact’s LinkedIn URL; else the person their work email was looked up as; else the one current employee of the company behind the work email with exactly the contact’s name. If two of these point at different people, nothing is written.
  2. Which company. The work email’s domain (also on another ending, such as demodesk.com for demodesk.ai, or a subdomain) and the contact’s company name are matched against the person’s current roles. When they point at different companies, nothing is written. When one of them matches none of the person’s current roles, the title waits for you in Review instead of being filled.
  3. Which role there. A job beats a side role (advisor, board member, investor, speaker); then the most recent one. “Sabbatical” is never a title.
The profile must have been read in the last 180 days. Measured on contacts that already had a title, this picks a role at another company less than 1% of the time. Contacts are looked up by their email address, so a contact with no email is skipped. Contacts with a personal email address (Gmail, Outlook, GMX and similar) are skipped too: an address like that says nothing about where someone works.

Where the data comes from

Clustr first looks in its own data. A company or person Clustr already knows is filled for free. Only records Clustr does not know yet, or knows only from data older than 30 days, are bought from paid data providers. Only those count against the budget. A paid lookup that finds nothing is not tried again straight away. Clustr waits 14 days, then 28, then 56, then 90 days between attempts.
Paid lookups run in the background. What they find is written on the next scan, not the one that started them.

Turning it on

In CRM Cleaning ▸ Settings ▸ Enrichment, turn on Fill in missing data. Then, in the Enrichment group of What the agent checks, choose:
  • A mode per field: Off, Ask me or Do it, like any check. Every field starts on Do it. Under Ask me, Clustr still buys the data first and then asks you before writing it (“Credits are spent before we ask you”).
  • Which records to enrich:
Over the API, enrichment.fields also limits which fields are filled per object. An object with an empty list is never spent on. Within the audience, records on an open deal come first, then records with recent activity, then records with an owner. Records with no activity for a year, no owner and no open deal are skipped.

The monthly budget

The budget is a number of records per calendar month. One record enriched is one credit, whether it is a contact or a company. Clustr sets the cap for your workspace; it is at most 5,000 records a month. Ask Clustr support to change it.
  • Only results count. A lookup that finds nothing is refunded.
  • No single run takes it all. One scan, or one click on Enrich all, spends at most about a third of what is left this month.
  • Contacts get a share. Part of the budget is kept for contacts, based on how many contacts and companies you have (between 15% and 70%), so companies cannot use it all. What contacts do not use goes to companies. Over the API, enrichment.contact_budget_share sets a fixed share instead.
  • It resets on the first day of each month at 00:00 UTC.
  • When it runs out, nothing more is bought until the reset. Fills from Clustr’s own data carry on.
Settings ▸ Enrichment ▸ Credits this month shows the credits used against the cap and the reset date. Below it, the match rate says how many of the records sent to enrichment this month the provider found, and what came of them, for example “Found 412 of 640 records (64%): 300 filled, 112 already complete”, and which fields were filled most. A lookup the provider could not answer in time is retried and counts as neither. Contacts that were not found are counted from October 2026: October undercounts them, and from November 2026 the numbers are complete. Companies are complete. The Overview shows Enrichment credits this month, with what is left or “Limit reached”. Over the API, read it from GET /api/crm/cleaning/budget.

Enrich all

Enrich all runs an enrichment pass now, without a full scan. In the app, it sits on Overview ▸ Completeness, under the trend, for fields enrichment can fill, with the credits left this month. It is greyed out when no budget is set or the month’s budget is used up, and hidden while enrichment is off. You can also start it with POST /api/crm/cleaning/enrich or ask your assistant (start_crm_enrichment).
  • It fills every field you allowed, on contacts and companies, not only the one you clicked.
  • It stays inside the monthly budget, and spends at most about a third of what is left.
  • If a scan is already running, it does not start a second one.
  • It does nothing while enrichment is off.
The results are written on the next scan.