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
PromptCreate

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.

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.

FAQs

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.

Related templates

Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Flag VIP client emails in Zoho Mail and alert your team

Keep a spreadsheet of your most important senders, and every email from one gets labeled, posted to your team channel, and logged automatically.

Zoho Mail
Google Sheets
Slack Bot
Deterministic Code
Send Yotpo review requests when Shopify orders ship

The moment an order is fulfilled, we register it with Yotpo so the review request is timed off real delivery, and we log every sync so failures never go unnoticed.

Shopify
Yotpo
Google Sheets
Deterministic Code
Reconcile Shopify sales against Zoho Books every night

Every night at 11pm we compare the day's Shopify orders with your Zoho Books invoices and payments, and flag only what does not match.

Zoho Books
Shopify
Google Sheets
+1
Agentic Task

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.