scraperapi-lead-enrichment — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited scraperapi-lead-enrichment (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
Query: "PERSON_NAME"+"COMPANY_NAME" Surfaces: personal website, bios, speaker profiles, press mentions, social profiles, company team pages.
Query: "PERSON_NAME"+"COMPANY_NAME"+contact+email Surfaces: email addresses, contact pages, directory listings.
Then run 2b with the company name.
Query: "COMPANY_NAME" Surfaces: official website, Wikipedia, Crunchbase, AngelList, G2, Glassdoor, LinkedIn — whatever exists publicly.
Query: "COMPANY_NAME"+funding+revenue+employees Surfaces: Crunchbase, news articles, press releases, industry databases.
Query: "COMPANY_NAME"+contact+email+phone Surfaces: contact pages, email formats, phone directories.
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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.