skills/scraperapi-lead-enrichment/SKILL.md
Use this skill whenever the user wants to enrich a contact or company and build a profile. Trigger on: "enrich this lead", "find info about [person or company]", "build a contact card for X", "look up [company]", "I have this LinkedIn URL, find more about them", "find the email for [person] at [company]", "research this contact", "who is [name]", "tell me about [company]", "I have an email, can you find more details". Accepts any seed input — a name, company name, LinkedIn URL, email address, domain, or any combination. Executes ScraperAPI calls directly to search Google and fetch web pages, then synthesizes all findings into a structured contact card covering person fields (name, title, email, phone, LinkedIn, location, social) and company fields (domain, revenue, funding, employee count, founded year, HQ, tech stack, key investors, recent news, competitors).
npx skillsauth add scraperapi/scraperapi-skills scraperapi-lead-enrichmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Given any seed information about a person or company, call ScraperAPI directly to search the web and fetch relevant pages, then synthesize everything into a structured contact card.
You — Claude — execute the API calls using the ScraperAPI MCP tools. Do not generate code for the user; run the searches yourself and report findings as you go.
Before running any searches, state clearly what you already know and what you're looking for. Categorize the seed:
| Seed type | Information gaps to fill | |-----------|--------------------------| | Person name (+ optional company) | Title, email, phone, location, company details | | Company name | Website, description, size, funding, contact info | | Profile URL (LinkedIn, Crunchbase, etc.) | Fetch directly; then fill remaining gaps | | Email address | Owner name, company, company details | | Domain / website | Company info, key contacts, funding |
Announce before searching: "Starting with: [what I have]. Will search for: [what's missing]."
Run searches by what you're looking for, not by which site to target. Google will surface whatever sources exist — company website, Crunchbase, Wikipedia, news, directories, LinkedIn, G2, etc. Collect all promising URLs from organic_results[].link and carry them into Phase 3.
Search tool: Call mcp__ScraperAPI__google_search with query, num: 10, and countryCode: "us". Read snippets carefully — they often contain the data you need without an extra fetch.
Profile and context
Query: "PERSON_NAME"+"COMPANY_NAME"
Surfaces: personal website, bios, speaker profiles, press mentions, social profiles, company team pages.
Contact info
Query: "PERSON_NAME"+"COMPANY_NAME"+contact+email
Surfaces: email addresses, contact pages, directory listings.
Then run 2b with the company name.
Company overview
Query: "COMPANY_NAME"
Surfaces: official website, Wikipedia, Crunchbase, AngelList, G2, Glassdoor, LinkedIn — whatever exists publicly.
Financials and size
Query: "COMPANY_NAME"+funding+revenue+employees
Surfaces: Crunchbase, news articles, press releases, industry databases.
Contact info
Query: "COMPANY_NAME"+contact+email+phone
Surfaces: contact pages, email formats, phone directories.
Recent news
Call mcp__ScraperAPI__google_news with query: "COMPANY_NAME" and num: 5.
Extract news_results[].title, news_results[].date, news_results[].link. Keep the 3 most recent.
@)."EMAIL_ADDRESS"Skip Phase 2 — go directly to Phase 3 with the provided URL.
From the URLs collected in Phase 2, select the most information-dense sources to fetch. Don't fetch everything — pick based on the gaps remaining in your contact card and the expected yield of each source.
| Source type | Typical yield | Fetch cost |
|-------------|--------------|------------|
| Company website (/, /about, /contact, /team) | Description, address, phone, email, social links, team members, tech signals | 1 credit/page |
| Crunchbase (crunchbase.com/organization/...) | Funding rounds, investors, employee range, founded year | ~10 credits (needs render=true) |
| Wikipedia (en.wikipedia.org/wiki/...) | Founded year, public financials, acquisitions, executive history | 1 credit |
| AngelList / Wellfound (wellfound.com/company/...) | Funding, investors, tech stack, open roles | ~10 credits (needs render=true) |
| LinkedIn person (linkedin.com/in/...) | Name, title, location, current company, education | ~10 credits (needs render=true&premium=true) |
| LinkedIn company (linkedin.com/company/...) | Employee count, industry, HQ, founded year | ~10 credits (needs render=true&premium=true) |
| News article / press release | Funding amounts, key hires, product launches | 1 credit |
| G2 / Capterra (g2.com/products/...) | Product category, company size range, competitors | 1 credit |
| GitHub org (github.com/ORG) | Tech stack, open source projects, activity | 1 credit |
| Job posting | Tech stack requirements, team growth signals | 1 credit |
| Glassdoor (glassdoor.com/...) | Employee count, HQ, culture signals | ~10 credits (needs render=true) |
Prefer cheap standard fetches (1 credit) over JS-rendered ones (10 credits) whenever the page is a static HTML site. Reserve render=true for pages that are known to require JavaScript (LinkedIn, Crunchbase, and SPA-style sites).
For each selected URL, call mcp__ScraperAPI__scrape with the appropriate options:
url, outputFormat: "markdown"url, outputFormat: "markdown", render: true, premium: trueFor a company website, always fetch homepage + /about + /contact as three separate calls — they frequently contain different data. Extract every relevant field before moving to the next URL.
Fill in the contact card from all gathered data. For each field:
—) if not found after reasonable searchSee references/contact-card-schema.md for field definitions.
Use the template in assets/contact-card-template.md to present the output.
After the contact card, list any high-priority fields still empty and explain briefly why they weren't found. Suggest one concrete follow-up per gap, for example:
hunter.io) or Apollo (app.apollo.io) with the company domain""COMPANY NAME" phone inurl:contact or check the company's /contact page"Stop searching when any of the following is true:
Do not loop past these limits. Announce when you've hit a stop condition.
| Error type | What to do |
|------------|-----------|
| MCP tool returns an error or empty result | Retry once with premium: true added (for scrape calls). Skip on second failure. |
| "No results" or empty organic_results | Try a slightly rephrased query. Count as one call. |
| Tool call fails entirely | Note the failure, skip the URL, and continue with remaining sources. |
Count failed tool calls against the 8-call stop condition.
development
SERP landscape analysis for SEO strategy decisions. Use this skill when the user wants to understand what a search results page actually looks like for their target keywords — including AI Overview presence and attribution, SERP feature composition, how Google is interpreting query intent, which competitors dominate specific keyword sets, and where organic rankings actually translate to visible traffic. Trigger on requests like "analyze the SERP for [keyword]," "why isn't my content getting traffic even though it ranks," "what does Google show for [keyword]," "which keywords are worth targeting," "is [keyword] dominated by AI Overviews," "who owns the SERP for [topic]," "SERP analysis," "keyword landscape," or any request to understand what's happening on a search results page before making a content or SEO strategy decision.
tools
Run a comprehensive SEO audit using ScraperAPI's live SERP and scraping tools — no setup required. Use this skill whenever the user wants to: audit SEO for a website, understand why a page isn't ranking, check SEO health, analyze keyword rankings, compare against competitors in search results, find content gaps, review on-page signals (titles, meta, headings, schema), diagnose a traffic drop, check indexation, or get prioritized SEO recommendations. Also trigger when the user says things like "why am I not showing up on Google," "my traffic dropped," "how do I rank for X," "what's wrong with my SEO," "SEO check," or "SEO review." This skill works out of the box — it uses the ScraperAPI MCP tools already connected to this session, with no CLI or API key setup needed.
development
Build and implement web scrapers using ScraperAPI. Use this skill whenever the user asks to build, write, create, or implement a scraper, or wants runnable code that extracts data from a website. Trigger on: "build me a scraper for [website]", "write a scraper that fetches product pages from [ecommerce site]", "I need to scrape [data] from [website]", "create a script that extracts [fields] from [URL]", "help me scrape [website] — I need [fields]", "write code to scrape [website]", "make a script that scrapes [website]", "implement a scraper for [URL]". Guides architectural decisions (structured endpoint vs. raw HTML, JS rendering, proxy tier, sync vs. async batch), then generates a complete runnable Python or Node.js script with retry logic, error handling, pagination, and credit estimation.
development
Use this skill whenever the user wants to check, track, or be alerted about product prices on Amazon, Walmart, or via Google Shopping. Trigger on: "monitor the price of this Amazon product", "did the price drop on [Walmart URL]?", "track these ASINs", "compare today's prices to last week", "alert me if [product] goes below $X", "what's the current price of [product]?", "check my price watchlist", "scrape the price of [URL]", "is [product] cheaper anywhere else?". Accepts ASINs, Amazon/Walmart product URLs, or free-text product queries for Google Shopping. Reads an optional baseline JSON file to detect changes, fetches live prices via ScraperAPI's structured endpoints, and reports increases, decreases, restocks, and out-of-stock transitions in a structured change report. Use this skill even when the user does not say the word "monitor" — any one-shot or recurring price-check request belongs here.