Score new HubSpot companies with Semrush SEO intel

When a company lands in HubSpot, an agent pulls Authority Score, top keywords, and best pages from Semrush and writes a one-look summary to the record.

Agentic Task
HubSpotSemrushSalesMarketingLead EnrichmentResearch & MonitoringData Sync

Build me an agent workflow that automatically enriches new HubSpot companies with Semrush SEO intel so my sales team can tell at a glance whether an inbound account is a serious SEO operation.

Trigger: a HubSpot webhook that fires when a new company is created. The agent should read the company's domain (and the company record ID) from the webhook payload. If the company has no domain set, exit early without writing anything.

What the agent should do, in order:

1. Call Semrush's Backlinks Overview on the domain to pull Authority Score and total referring domains.

2. Call Semrush's Get Domain Organic Search Keywords (US database by default, make this configurable) to grab the top three organic keywords the domain ranks for, along with their positions and search volumes. Also use this report to estimate monthly organic traffic by summing the traffic column for the top results.

3. Call Semrush's Get Domain Organic Pages to grab the two or three best-performing pages by traffic share.

4. Distill everything into a short text summary that includes: Authority Score, total referring domains, top three organic keywords (with positions), an estimated monthly organic traffic number, and two or three notable pages with their URLs.

5. Call HubSpot's Update Company on the company record. Write the numeric Authority Score to a numeric property (default name: semrush_authority_score, but the user should be able to pick the property) and write the summary text into a notes or description property on the company. Keep the summary under about 600 characters so it renders cleanly in the HubSpot sidebar.

Important edge case: Semrush returns the literal string 'ERROR 50 :: NOTHING FOUND' (with HTTP 200) for small, new, or unindexed domains. Treat this as an empty result, not a failure. When any of the three Semrush reports return NOTHING FOUND, the agent should still call Update Company and write a summary that says something like 'No Semrush data available for this domain yet (likely a small or new site).' Do not error out the workflow.

Other things to handle gracefully: an invalid or junk domain on the HubSpot record (just log it and skip), Semrush API unit balance issues (log a clear error), and HubSpot rate limits (retry with backoff).

Keep the agent focused. Do not create deals, contacts, tasks, or Slack messages. Just enrich the company record.

Additional information

What does this prompt do?
  • Watches HubSpot for new companies and grabs the domain off the record.
  • Pulls Authority Score, referring domains, top organic keywords, and best-performing pages from Semrush.
  • Writes the Authority Score to a numeric property and a short SEO summary note onto the company record.
  • Handles brand-new or tiny domains gracefully with a clear 'no Semrush data available yet' note instead of failing.
What do I need to use this?
  • A HubSpot login with permission to read and update companies.
  • A Semrush account with API access (Business plan or the API add-on).
  • A numeric property on companies to hold the Authority Score, or pick an existing one. Any text or notes property works for the summary.
How can I customize it?
  • Pick which country Semrush should search against (US, UK, DE, etc.).
  • Swap or rename the HubSpot properties the score and summary get written to.
  • Tweak how long the summary is and which signals it highlights (keywords, traffic, top pages).

Frequently asked questions

What happens if the company is brand new and has no SEO footprint yet?
The agent recognizes when Semrush returns no data for the domain and writes a short note saying no Semrush data is available yet. The record still gets updated, so reps know the check ran.
Do I need a custom property on companies for the Authority Score?
A numeric property is the cleanest setup so you can sort and filter by it, but you can point the agent at any existing number field on the company. The summary itself can go into any text or notes property.
Will this overwrite an older summary if a company gets re-enriched?
Yes by default. You can tell the agent to only run on companies that do not already have an Authority Score, or to append a dated summary instead of replacing it.
How accurate is the Authority Score for very small or local businesses?
Semrush works best for sites with a real organic footprint. Tiny or brand-new domains often come back empty, in which case the agent flags it rather than guessing.
Does each new company use Semrush API credits?
Yes. Every enrichment pulls a few reports from Semrush, which draws against your API unit balance. You can scope the workflow to only enrich companies that match certain criteria if you want to conserve credits.

Stop guessing whether an inbound account is a serious SEO operation.

Connect HubSpot and Semrush once, and Geni scores every new company the moment it lands in your CRM.