The problem this solves
A CRM fills from the bottom up: reps create companies with a name and a domain, forms create companies with an email, imports create companies with whatever the file had. The properties that segmentation, routing and scoring depend on - employee count, industry, headquarters - end up populated on a third of the records, and every report built on them silently excludes the rest.
Backfilling by export and re-import is slow and destructive; it overwrites values that were correct and creates a second version of the truth. The right approach works inside HubSpot: find the companies with gaps, fill only the empty properties, write back through the CRM's own API, and report coverage before and after so the improvement is visible to the people who rely on the fields.
How the mission runs
- Find the companies with gaps. The Enrichment Agent reads HubSpot companies and selects those where employee count, industry or HQ is empty, grouping them by which fields are missing. Companies with no domain are resolved to one first, since the domain is the key for every source that follows.
- Fill each empty field through the waterfall. For every gap, firmographic sources are consulted one at a time until a value is found. Fields that already hold a value are left alone, so a rep's correction is never replaced by a source's estimate.
- Write back to HubSpot as a reviewed batch. Proposed updates are assembled per company and shown as a batch with counts per field. On approval, they are written to the standard HubSpot properties, and the source of each value is stored on a custom note so the provenance is visible later.
- Email the coverage summary. A summary arrives in your Gmail with the fill rate per field before and after, the number of companies touched, and the companies that could not be filled, grouped by the reason.
The prompt
This is the exact objective the agent receives. Swap the obvious placeholders for your own domain, segment or channel and run it as-is from the console, Slack, or the API.
What comes back
Employee count, industry and HQ populated on every HubSpot company where the waterfall could find them, written only into empty properties, plus an emailed summary showing coverage per field before and after, the number of companies updated and a list of companies that remain unresolved with the reason. Segmentation and scoring built on those fields start including the records they used to skip.
Make it yours
- Add technographics and the latest funding round as custom properties in the same pass.
- Limit the backfill to companies with open deals or a specific owner when the whole database is too large for one run.
- Run it monthly so newly created companies are filled before they age.
- Post the coverage summary to #revops instead of emailing it.
Frequently asked questions
Will it overwrite values a rep entered?
No. Only empty properties are written. If you want existing values checked against the sources, ask for a discrepancy report and decide case by case.
How is industry mapped to HubSpot's picklist?
The agent maps source industries to your existing picklist values and reports any source category that has no match, so you can add a value or choose a fallback.
What does it cost?
Credits are spent only where a source answers, so companies that no source can fill cost nothing beyond the lookup.
How long does a full database take?
It depends on the number of companies with gaps; the agent reports the count before starting and processes them in batches, so a large database completes over a few runs without blocking anything else.
Can I restrict it to companies created after a date?
Yes. Name the date or a HubSpot view and only those companies are touched, which is the usual way to run it as a monthly hygiene pass.