Enrichment Agent
Purpose
The Enrichment Agent is the foundation of the entire system. It continuously discovers new marketplace sellers, enriches them with business data, scores their likelihood of needing daily payouts, and pushes qualified leads into HubSpot for the other agents to work.
Data Sources
Marketplace Data
-
SmartScout API (or equivalent): Identify Amazon sellers by estimated revenue range ($100K–$1M), category, and marketplace. Pull seller name, storefront URL, estimated monthly revenue, number of ASINs, primary category, and seller tenure.
-
Walmart Marketplace scraping: Walmart’s seller ecosystem has fewer third-party tools. Build a custom scraper that identifies active Walmart sellers from product listings, extracts seller profiles, and estimates revenue from review velocity and product count.
-
Amazon SP-API (if available): For deeper data on sellers who have public storefronts.
Contact Enrichment
Once seller business data is collected, enrich with contact information: * LinkedIn scraping (Nova Act): Match seller business name to LinkedIn company pages using Nova Act via AgentCore Browser, then identify the owner/founder. Nova Act handles LinkedIn’s dynamic layout and varied profile structures without brittle CSS selectors. Extract name, title, and LinkedIn URL. Falls back to Playwright via AgentCore Browser if Nova Act escalates. * Email discovery: Use a combination of pattern matching (first@company.com, first.last@company.com), MX record lookups, and SMTP verification to find valid email addresses. Build this as a custom module rather than relying on third-party enrichment tools. * Domain discovery (Nova Act): Many Amazon sellers have their own websites. Nova Act navigates the seller’s domain, checks About and Contact pages, and extracts team member names, emails, and phone numbers — handling varied site layouts reliably without custom selectors per site. Falls back to Playwright via AgentCore Browser if Nova Act escalates. * Phone number discovery: Extracted by the Nova Act domain agent from contact pages and About pages. Also checks LinkedIn profiles when available. Critical for the voice agent and BDR outreach.
Lead Scoring Model
The Enrichment Agent calculates a payout_pain_score (0–100) based on weighted signals:
| Signal | Weight | Logic |
|---|---|---|
Estimated monthly revenue |
20 |
Higher revenue = more cash locked up. Sweet spot: $10K–$80K/month. |
Revenue growth trend |
15 |
Growing sellers have the most acute cash flow pressure. |
Number of ASINs/products |
10 |
More products = more inventory to fund = more cash flow pressure. |
Primary category |
10 |
Categories with high inventory costs (electronics, supplements, home goods) score higher. |
Seller tenure |
10 |
1–3 years scores highest (established enough to have real cash flow, not yet large enough for institutional financing). |
Multi-marketplace presence |
10 |
Selling on both Amazon and Walmart doubles the payment delay. |
Seasonal timing |
15 |
Score increases 60–90 days before Q4, Prime Day, and other peak seasons. |
Trigger event detected |
10 |
If we detect signals of payment holds, new product launches, or scaling activity. |
Score Thresholds
-
70–100: High priority. Route to Voice Agent immediately (call before email). Also enters email sequence.
-
40–69: Medium priority. Enters email sequence. Voice Agent calls after email sequence if no reply.
-
20–39: Low priority. Email sequence only. Re-score monthly.
-
0–19: Do not contact. Monitor and re-score quarterly.
Implementation
Lambda: enrichment-scraper
Trigger: EventBridge daily schedule (2am ET) Input: None — pulls from configured data sources Output: Raw seller records pushed to SQS queue for scoring
Steps: . Query SmartScout API for sellers matching ICP criteria . Scrape Walmart marketplace for new seller profiles — see Walmart Scraping Strategy below . Deduplicate against existing HubSpot contacts, matching on storefront URL or business name . Push new raw records to SQS queue
Lambda: enrichment-scorer
Trigger: SQS queue (batch size: 10) Input: Raw seller record Output: Enriched, scored contact pushed to HubSpot
Steps:
. Enrich with contact info — LinkedIn (Nova Act), email discovery, phone, and domain (Nova Act). See Contact Enrichment Strategy below.
. Verify email address via MX + SMTP check
. Calculate payout_pain_score using all enriched signals
. Create or update HubSpot contact with all enriched fields
. Set lifecycle_stage to enriched
. If score ≥ 70, add to high-priority list for Voice Agent
Walmart Scraping Strategy
Walmart seller pages are largely server-rendered HTML with stable, known fields. At Nova Act pricing (~$0.02/page for a 15-second session), a 10,000-page initial catalog crawl would cost approximately $200 in browser compute alone. Direct HTTP requests cost pennies for the same crawl. The execution strategy is therefore tiered by cost and complexity:
Tier 1 — Direct HTTP (Primary): The Lambda makes a direct HTTP GET request to the Walmart seller storefront URL with a realistic browser user-agent. If the response is successful and the HTML contains expected structure, it parses seller name, product count, rating, review count, category, and multi-location status. This handles the vast majority of pages.
Escalates to Tier 2 when: HTTP status is not 200; the response body is suspiciously short, indicating JS-rendered content; or more than two required fields are absent from the parsed HTML.
Tier 2 — Playwright via AgentCore Browser (Secondary): Playwright connects to an AgentCore Browser session via CDP and navigates to the storefront URL, waiting for full JS rendering before extracting the same fields. No self-managed Chrome or Lambda Chromium layer required.
Escalates to Tier 3 when: known selectors no longer return results due to a major Walmart layout change, or a CAPTCHA appears.
Tier 3 — Nova Act via AgentCore Browser (Last Resort): Nova Act receives a natural language instruction to navigate the storefront and extract all required seller fields as structured JSON. At ~$0.02/page, used only for the small fraction of pages that Tiers 1 and 2 cannot handle.
The Lambda logs scrape_executor: direct_http | playwright | nova_act per page to DynamoDB. A spike in Tier 2 or Tier 3 usage signals a Walmart HTML change that warrants updating the Tier 1 parsing logic.
Contact Enrichment Strategy
For LinkedIn and seller domain scraping, the page structures are varied and unpredictable — Nova Act’s AI-driven browser automation is the right fit here. Volume is manageable (enriching 40–60% of 500–1,000 new sellers per week), so Nova Act costs are reasonable. Both tasks fall back to Playwright via AgentCore Browser if Nova Act escalates.
LinkedIn enrichment: Nova Act navigates LinkedIn, searches for the seller’s business name, locates the company page, identifies the owner or founder (by title: Owner, Founder, CEO, President), and extracts their name, title, and LinkedIn profile URL. Falls back to Playwright if Nova Act hits an identity verification challenge, task timeout, or ambiguous search results.
Domain enrichment: Nova Act navigates to the seller’s website and checks the About and Contact pages for email addresses, phone numbers, and team member names — handling varied layouts across thousands of different seller sites without per-site selector maintenance. Falls back to Playwright if Nova Act escalates or the page structure is too sparse to extract useful data.
Playwright fallback for both tasks connects to an AgentCore Browser session via CDP. LinkedIn sessions use persistent browser profiles managed by AgentCore Identity — no manual cookie rotation.
The Lambda logs enrichment_executor: nova_act | playwright per contact and per enrichment type (linkedin, domain) to DynamoDB for monitoring.