Enrich a company list in Google Sheets

Paste a spreadsheet link, get LinkedIn pages, employee counts, and revenue filled in for every unenriched company in one batch.

Agentic Task
Google SheetsInternet SearchSalesOperationsLead EnrichmentResearch & MonitoringData Sync

Build an agent workflow that enriches a company list inside a Google Sheet.

Trigger: manual launch. The workflow has one required text input called "Spreadsheet URL" where the user pastes a full Google Sheets link (https://docs.google.com/spreadsheets/d/<spreadsheetId>/edit#gid=<gid>).

What the agent should do when launched:

1. Parse the spreadsheet URL from the input to extract the Spreadsheet ID and the Sheet ID (the gid in the hash).

2. Call Google Sheets to fetch the spreadsheet metadata, find the tab whose sheetId matches the gid, and use that tab's title for all subsequent reads and writes.

3. Read all rows and the header row of that tab. Locate these columns by header name: "Company Name", "LinkedIn Page", "Employee Count", "Annual Revenue (Est)", and "Enrichment Status". If any of LinkedIn Page, Employee Count, Annual Revenue (Est), or Enrichment Status are missing, append them as new columns to the right of the existing data and re-read so the column indexes are correct.

4. Identify rows to enrich: any row where Company Name is non-empty and Enrichment Status is not exactly "Enriched". Skip everything else.

5. For each row to enrich, use Internet Search to find: the official LinkedIn company page URL, the most recent publicly reported employee count, and the most recent annual revenue estimate. Run separate targeted searches per field and prefer authoritative sources (LinkedIn, the company website, Wikipedia, Crunchbase, major business press).

6. Standardize the values before writing them back:

- LinkedIn Page: full HTTPS URL to the company page (e.g. https://www.linkedin.com/company/acme).

- Employee Count: comma-separated integer such as 12,500. Use the latest single number; if only a range is available, use the midpoint.

- Annual Revenue (Est): formatted string like "$86.4 Billion" or "$378.1 Million". One decimal place, currency symbol, magnitude spelled out.

- Enrichment Status: set to "Enriched" only when all three fields have confident values.

7. Submit all cell updates in a single Batch Update Values request to Google Sheets so the spreadsheet is written once at the end, not row by row.

8. Output a summary table of the rows that were enriched (Company Name, LinkedIn Page, Employee Count, Annual Revenue) and a direct link back to the spreadsheet so the user can review the results.

Rules: never overwrite existing non-empty cells; if a field cannot be confidently found for a company, leave that cell blank and do not mark the row Enriched; rerunning the workflow on the same sheet should be safe and only process rows that are still missing data.

Additional information

What does this prompt do?
  • Reads a Google Sheet you paste in and finds the rows where the company name has not been enriched yet.
  • Researches each company on the open web to pull the LinkedIn page, latest employee count, and most recent annual revenue.
  • Writes everything back into your spreadsheet in a single batch update and marks each row as Enriched.
  • Returns a summary table of the rows it touched plus a direct link to the updated sheet.
What do I need to use this?
  • A Google account with edit access to the spreadsheet you want enriched.
  • A sheet that includes a 'Company Name' column. Missing columns for LinkedIn Page, Employee Count, Annual Revenue, and Enrichment Status will be added for you.
How can I customize it?
  • Change which fields get enriched (add industry, HQ city, founded year, funding stage, and more).
  • Adjust how revenue and headcount are formatted, for example round numbers, use ranges, or change the currency.
  • Filter which rows get processed each run, for example only a specific segment, region, or row range.

Frequently asked questions

Will it overwrite rows I have already filled in?
No. The workflow only touches rows where Enrichment Status is empty or not set to Enriched. Anything you have already filled in stays untouched.
What if my sheet does not have the right columns?
If LinkedIn Page, Employee Count, Annual Revenue, or Enrichment Status are missing, they are added as new columns to the right of your existing data before the enrichment starts.
How accurate is the data?
Numbers come from public web sources, so they are best-effort estimates rather than verified figures. Treat them like research notes a teammate would gather, not financial filings.
Can I run this on a specific tab in my spreadsheet?
Yes. Paste the spreadsheet URL with the tab open (the link already includes the tab id) and the workflow resolves the correct tab before reading and writing.
Does it work on very large company lists?
Yes, but longer lists take longer to finish because each company requires its own web research. You can also rerun the workflow and it will pick up where it left off, skipping rows already marked Enriched.

Stop pasting company data into spreadsheets by hand.

Paste a Google Sheet link and Geni fills in LinkedIn, headcount, and revenue for every company on the list, then writes it all back in one go.