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.- 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.
- Which company. The work email’s domain (also on another ending, such as
demodesk.comfordemodesk.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. - Which role there. A job beats a side role (advisor, board member, investor, speaker); then the most recent one. “Sabbatical” is never a title.
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_sharesets 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.
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 withPOST /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.