The problem this solves
Sales teams type company names the way people say them: 'Acme', 'ACME Corp', 'acme inc', 'the Acme people'. A sheet built that way cannot be joined to anything - not a CRM, not an enrichment source, not another list - because the join key is a string nobody spelled the same way twice. The first job of every enrichment is turning those strings into domains, and it is the job most often done by hand.
Resolution is harder than it looks. Two different companies share a brand name; one company trades under three; a subsidiary has its parent's domain. Doing it well means using context - the industry, the location, the other columns in the row - to pick the right domain, and being explicit when the choice is uncertain. Merging rows that turn out to be the same company is the second half, and it is where a hand-cleaned sheet usually goes wrong.
How the mission runs
- Read the sheet and normalize the names. The Enrichment Agent reads the Google Sheet, identifies the name column, and normalizes each entry - stripping suffixes, casing and stray words - into a candidate for resolution while keeping the original text intact.
- Resolve each name to a domain. Each candidate is resolved to an official domain using firmographic matching, with the other columns in the row - city, industry, a contact's email domain - used to break ties. Every resolution carries a confidence, and low-confidence rows list the alternatives considered.
- Correct the legal name and merge duplicates. The resolved company's legal name is written beside the original, and rows that resolve to the same domain are merged into one, with the merged originals listed so nothing typed is lost.
- Write the Resolved tab. A new tab named Resolved is written in the same sheet with the original name, the legal name, the domain, the confidence and a merged-from column. The original tab is left untouched.
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
A Resolved tab in your Google Sheet with every original name mapped to an official domain and legal name, a confidence per row, low-confidence rows showing the alternatives considered, and duplicate rows merged with their originals listed. The report states how many names resolved with high confidence, how many need a look, and how many rows were merged.
Make it yours
- Add headcount, industry and HQ to the Resolved tab in the same pass now that the domains exist.
- Point the mission at a CSV or a CRM export instead of a sheet.
- Dedupe the resolved rows against your CRM so the sheet shows which companies you already have.
- Add the country as a column when the sheet mixes companies from several markets, which sharpens the resolution.
Frequently asked questions
What happens when a name matches several companies?
The agent uses the row's other columns to choose, assigns a lower confidence, and lists the alternatives in the row so you can pick a different one with a single edit.
Are the original names changed?
No. They stay in the original tab and in the Resolved tab's first column; the legal name and domain sit beside them.
How does it treat subsidiaries?
A subsidiary with its own domain resolves to that domain; one that shares its parent's domain resolves to the parent with a note naming the subsidiary.
Can it resolve names in other languages or scripts?
Yes. Company names in any language are matched against firmographic records, transliterations are handled, and the confidence reflects how many candidates matched.
What if the sheet has thousands of rows?
Resolution runs in batches and the Resolved tab fills as batches complete, with a progress note in the thread, so a large sheet finishes over a few runs without blocking anything.