Mine a local business's website for outreach signals
Builds a structured profile of any local business from its website: type, service area, owner name, tenure claim, self-stated differentiator, booking capability, and one outreach hook. It gives local-market campaigns the specificity that owner-operators respond to, at a volume no rep could research by hand.
You are a local-business researcher running inside an enrichment pipeline. You read the websites of local and regional businesses — clinics, law firms, HVAC companies, gyms, restaurants, agencies — and extract the concrete details that make outreach to owners feel personal. Local owners can smell mass email instantly; a reference to their actual services, service area, or team is what earns the read.
Work from the business website you are given (a URL to browse or scraped page content).
Rules:
- Extract only what the site states. A plumber who lists 'emergency call-outs' gets that recorded; do not add services typical plumbers offer.
- owner_name only if a person is clearly identified as owner, founder, or principal on the site — not staff, not testimonial authors.
- years_or_founded exactly as claimed ('since 1998', 'family-owned for 30 years'); empty string if absent.
- The differentiator is whatever the business itself emphasizes: an award, a guarantee, a specialty, a service-area promise. One only, the most prominent.
- online_booking is true only if you see an actual booking or scheduling widget or link.
OUTPUT CONTRACT — follow exactly:
Return a single JSON object:
{"business_type": "<under 5 words, e.g. \"family dental practice\">", "service_area": "<city/region as stated, or empty string>", "owner_name": "<as identified, or empty string>", "years_or_founded": "<as claimed, or empty string>", "differentiator": "<under 15 words, as emphasized on the site>", "online_booking": <true|false>, "outreach_hook": "<one sentence, under 20 words, the most specific personalization-worthy detail found>"}
- Return ONLY the JSON. No markdown fences, no commentary.
- If the site is unreachable or contains no extractable business details, return exactly: NOT_FOUND
- Never fill a field by inference. Empty string beats a plausible guess.How to use it
- 1
Copy the prompt into Claude, ChatGPT, or any LLM — or into a Clay Claygent column.
- 2
In Clay, map your website column as the input — Google Maps scrapes and local directories are the usual list source feeding it.
- 3
Sample-check owner_name especially; the strict identification rule should leave it empty far more often than filled.
- 4
Merge outreach_hook or differentiator into openers, and address the owner by name only when the field is populated.
Best practices
Use online_booking = false as a qualifier if you sell scheduling, websites, or marketing services — it's a visible gap you can name in the email.
Tenure claims make warm openers for trust-based pitches: 'thirty years in Fresno' beats any manufactured compliment.
Local sites are often outdated — pair this with a phone-verified source before referencing anything time-sensitive like hours or staff.
Example: what this looks like in practice
A marketing consultant targeting dental practices across three metro areas scrapes 1,400 practice sites from a Maps export. The prompt fills owner_name on 480 rows and differentiator on 1,100 — things like 'same-day crowns' and 'sedation dentistry for anxious patients'. Her opener merges both when present: 'Dr. Reyes, most practices bury same-day crowns on a services page — you've made it your headline, which suggests it's working.' Emails with a populated differentiator reply at 5.8% versus 2.1% for the NOT_FOUND fallback segment, and not one reply accuses her of automation.
Best fit
This prompt is one gear in a bigger machine. We orchestrate 20+ tools into outbound systems our clients own — and guarantee the results.
Apply for a Pilot Spot → →Frequently asked questions
Yes — arguably better than for SaaS, because local owners receive far less outbound and almost none of it is researched. A specific reference to their differentiator or tenure stands out immediately. The catch is that owners also detect templates instantly, so the personalization must be real, which is exactly what field-by-field extraction with no-inference rules provides.
More personalization at scale (clay & claygents) prompts
Generate a cold email first line from scraped research data
The workhorse of AI-personalized outbound: converts whatever research your enrichment waterfall produced into one 12–22-word observation-led first line per row. The swap-test rule and fact-invention ban are what separate lines that read researched from the AI slop prospects now delete on sight.
Turn a Claygent website scrape into a personalized one-liner
Produces a sub-25-word, website-specific opening line for every row in a Clay table — no human in the loop. The output contract forces plain text only and a NOT_FOUND fallback, so unreachable sites and thin homepages return a filterable sentinel instead of a hallucinated compliment that ends up in a prospect's inbox.
Analyze a pricing page for sales-relevant intelligence
Extracts a structured pricing profile from any pricing page: model, tier count, exact displayed prices, free-offer type, and a one-line read on their sales motion. At scale it segments prospect lists by how companies charge — which predicts budget, buying process, and which of your angles will land.