Record Enrichment
Research accounts and contacts across the open web and compile enrichment updates into a file that a human reviews and applies to the CRM (customer relationship management system).
When to use
- A batch of accounts or contacts has missing firmographic fields (company size, industry, location, job title).
- Sales or success asks for fresh context on a target account before an outreach or renewal push.
- A list of leads needs verification and gap-filling before being loaded into the CRM.
- Periodic hygiene sweeps to catch stale or outdated contact and account data.
Tools
browser-search: run web searches to locate a company's site, news, or a contact's current role.browser-navigate: open the company website, LinkedIn-indexed pages, press pages, or other source pages found via search.browser-extract: pull structured facts (industry, employee count, headquarters, title, recent news) off the opened page.write-file: stage the compiled enrichment updates as a review-ready file (e.g. CSV or markdown table).send-message: hand the staged file to a human for review and application to the CRM.
Playbook
- Get the list of accounts or contacts needing enrichment and the target fields to fill (from the assigning task or a provided file).
- For each record, run
browser-searchfor the company or contact name plus any distinguishing detail (domain, location, role). - Use
browser-navigateto open the most relevant result: company homepage, about/team page, or a recent press release. - Use
browser-extractto capture the specific fields needed: industry, employee count, headquarters city, contact title, recent funding or news. - If the first source is thin or ambiguous, repeat
browser-searchwith a narrower query (add domain, city, or "site:" style qualifiers) andbrowser-navigateagain to a better source. - Normalize findings per record: field name, old value (if known), new value, and the source URL you pulled it from.
- Compile every record's findings into a single enrichment file with
write-file, formatted as a table (record ID, field, current value, proposed value, source, confidence). - Note any records you could not confidently enrich (no reliable source found) in a separate section of the same file rather than guessing.
- Send the staged file to a human via
send-message, naming the CRM object type (accounts/contacts), the record count, and asking them to review and apply the updates — since updating CRM records requires PATCH/PUT access this skill does not have, the human must apply the changes.
Failure modes
- Search returns no usable company or contact page: broaden or vary the query with
browser-search; if still empty, mark the record as unresolved in the output file. - Extracted data conflicts across sources: prefer the most recent or most authoritative source (company's own site over third-party), and note the conflict in the file for human judgment.
- A source page structure changes and
browser-extractreturns nothing useful: fall back tobrowser-searchfor an alternate source rather than guessing values. - Large batch runs long or hits repeated empty results: pause, note progress and remaining records in memory, and continue in the next run rather than rushing low-confidence entries.
Done when
- A single enrichment file exists (via
write-file) covering every record in the batch, each row with proposed values, sources, and confidence. - Unresolved records are explicitly listed rather than silently dropped.
- A human has been notified via
send-messagewith the file location, record count, and a clear ask to review and apply the CRM updates.