AgentStack
SKILL verified MIT Self-run

Scraperapi Lead Enrichment

skill-scraperapi-scraperapi-skills-scraperapi-lead-enrichment · by scraperapi

>-

No reviews yet
0 installs
17 views
0.0% view→install

Install

$ agentstack add skill-scraperapi-scraperapi-skills-scraperapi-lead-enrichment

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Scraperapi Lead Enrichment? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Lead Enrichment

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.


Phase 1 — Analyze the Seed

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]."


Phase 2 — Discovery Searches

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.

2a. Person name as seed

  1. Profile and context

Query: "PERSON_NAME"+"COMPANY_NAME" Surfaces: personal website, bios, speaker profiles, press mentions, social profiles, company team pages.

  1. Contact info

Query: "PERSON_NAME"+"COMPANY_NAME"+contact+email Surfaces: email addresses, contact pages, directory listings.

Then run 2b with the company name.

2b. Company name as seed (or company found in 2a)

  1. Company overview

Query: "COMPANY_NAME" Surfaces: official website, Wikipedia, Crunchbase, AngelList, G2, Glassdoor, LinkedIn — whatever exists publicly.

  1. Financials and size

Query: "COMPANY_NAME"+funding+revenue+employees Surfaces: Crunchbase, news articles, press releases, industry databases.

  1. Contact info

Query: "COMPANY_NAME"+contact+email+phone Surfaces: contact pages, email formats, phone directories.

  1. 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.

2c. Email address as seed

  1. Extract the domain (everything after @).
  2. Search for associated profiles: "EMAIL_ADDRESS"
  3. Run 2b with the domain as the company seed.

2d. Direct URL as seed

Skip Phase 2 — go directly to Phase 3 with the provided URL.


Phase 3 — Fetch Source Pages

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.

3a. Source evaluation guide

| 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).

3b. Fetch pages

For each selected URL, call mcp__ScraperAPI__scrape with the appropriate options:

  • Standard HTML page (news, Wikipedia, company sites, G2, GitHub): url, outputFormat: "markdown"
  • JS-rendered page (LinkedIn, Crunchbase, React/SPA sites): url, outputFormat: "markdown", render: true, premium: true

For 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.


Phase 4 — Synthesize

Fill in the contact card from all gathered data. For each field:

  • Mark if confirmed in 2+ independent sources or from a structured endpoint
  • Mark ~ if found in one source with supporting context
  • Mark ? if a single unverified mention
  • Leave blank () if not found after reasonable search

See references/contact-card-schema.md for field definitions.

Use the template in assets/contact-card-template.md to present the output.


Phase 5 — Gap Report

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:

  • Email not found → "Try Hunter.io (hunter.io) or Apollo (app.apollo.io) with the company domain"
  • Revenue not found → "Check SimilarWeb or Owler for traffic-based revenue estimates"
  • Phone not found → "Search "COMPANY NAME" phone inurl:contact or check the company's /contact page"
  • Funding not found → "No Crunchbase page found; the company may be bootstrapped or pre-launch"
  • Profile URL not found → "No public profile surfaced; the person may use a pseudonym or have low public presence"

Stop Conditions

Stop searching when any of the following is true:

  • All high-priority fields are filled (name, title, company, and at least two of: email, phone, location, profile URL)
  • You have made 8 or more API calls without finding new data
  • 3 or more consecutive tool calls returned errors or empty results

Do not loop past these limits. Announce when you've hit a stop condition.


Error Handling

| 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.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.