skills/sales-openwebninja/SKILL.md
OpenWeb Ninja platform help — real-time public data API stack with 30+ APIs for web scraping, enrichment, and business data. Key APIs include Website Contacts Scraper, Email Search, Local Business Data (Google Maps), Real-Time Web Search (SERP), JSearch (job postings), and Product Data. Use when you can't pull emails or contacts from a domain, Google Maps scraping isn't returning results, SERP API data looks incomplete, job posting aggregation is missing listings, product data isn't fetching, or any OpenWeb Ninja API call is failing. Do NOT use for cross-platform enrichment strategy (use /sales-enrich), prospect list building strategy (use /sales-prospect-list), or connecting tools (use /sales-integration).
npx skillsauth add sales-skills/sales sales-openwebninjaInstall 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.
Help the user with OpenWeb Ninja platform questions — from Website Contacts Scraper and Email Search through Local Business Data, Real-Time Web Search, JSearch, Product Data APIs, Web Unblocker, and more. OpenWeb Ninja is a Sunnyvale-based real-time public data API stack with 30+ APIs, 50K+ subscribers, 1T+ monthly requests, and a 4.8/5 rating on G2. Each API is a separate product with its own subscription, endpoints, and rate limits, available via the app.openwebninja.com portal or RapidAPI marketplace.
If references/learnings.md exists, read it first for accumulated knowledge.
Ask the user:
What area of OpenWeb Ninja do you need help with?
What's your role?
What are you trying to accomplish? (describe your specific goal or question)
If the user's request already provides most of this context, skip directly to the relevant step. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end — don't gate your response behind gathering complete context.
Note: If the user needs a specialized skill, route them there with a brief explanation of why that skill is a better fit.
If the request maps to a specialized skill, route:
/sales-enrich/sales-prospect-list/sales-integration/sales-lobstr/sales-outscraper/sales-apolloOtherwise, answer directly from platform knowledge using the reference below.
Read references/platform-guide.md for detailed module documentation, pricing, integrations, and data model.
You no longer need the platform guide details — focus on the user's specific situation.
Based on the user's specific question:
Extracting contacts from a list of target company websites:
Building a local business prospect list from Google Maps:
Running competitive intelligence via web search API:
Best-effort from research — review these, especially items about per-API subscriptions and pricing that may have changed.
Each API is a separate subscription — costs add up across multiple APIs. OpenWeb Ninja is not a single platform subscription. If you need Website Contacts Scraper, Local Business Data, and Email Search, that is three separate subscriptions. Subscribing to Pro on all three costs $75/mo, not $25/mo. Audit which APIs you actually need before subscribing, and consider pay-as-you-go ($0.001-0.005/request) for APIs you use infrequently.
Free tier is very limited (50-500 requests) and varies by API — it is evaluation-only. Some APIs offer 500 free requests per month, others offer only 50. The free tier is rate-limited to 1 request per second and is not suitable for production use. Always check the specific API's free tier allocation before relying on it for testing.
Rate limits vary by plan AND by API — do not assume uniform limits. A Pro plan on one API might allow 5 requests/sec while Pro on another allows 10/sec. If you are integrating multiple APIs, you need to track rate limits per API independently. Exceeding rate limits returns errors, not queued requests.
Local Business Data counts per business returned, not per search query. A single search that returns 20 businesses consumes 20 requests from your quota. Large-area searches or broad categories can consume your monthly allocation quickly. Use specific categories and tight geographic filters to control request consumption. Monitor your usage dashboard closely during bulk operations.
Web Unblocker returns raw HTML, not structured data — you must parse it yourself. Unlike the other APIs that return structured JSON, Web Unblocker gives you the full rendered HTML of a page. You need your own parsing logic (BeautifulSoup, Cheerio, etc.) to extract useful data. Use the structured APIs (Local Business Data, Product Data, etc.) whenever they cover your target data — Web Unblocker is a fallback for sites not covered by specialized APIs.
RapidAPI vs direct portal pricing may differ — compare before subscribing. OpenWeb Ninja APIs are available both through the app.openwebninja.com portal and the RapidAPI marketplace. Pricing, rate limits, and plan tiers may not be identical across both platforms. If you are cost-sensitive, compare pricing on both before committing. Also note that RapidAPI uses its own API key header (X-RapidAPI-Key) while the direct portal may use a different authentication method.
No native CRM integrations — OpenWeb Ninja is API-only. Unlike platforms with built-in HubSpot/Salesforce connectors, OpenWeb Ninja requires custom integration work to push data into your CRM, spreadsheets, or other tools. Use middleware platforms (Zapier, Make, n8n) or build direct API integrations. Factor in this development effort when evaluating total cost of adoption.
Email Search returns publicly indexed emails only — these are not verified. The Email Search API discovers email addresses that are publicly available on the web. These emails are not verified for deliverability, may be outdated, and could include role-based addresses (info@, support@). Always run discovered emails through a separate verification service before using them for outreach. Combine with Website Contacts Scraper for more comprehensive coverage.
Response times vary significantly by endpoint — plan your integration accordingly. Website Contacts Scraper takes 0.5-3 seconds per request, Email Search takes 1-2 seconds, but Web Unblocker (with JS rendering) and Local Business Data (with full detail fetches) can take longer. For high-volume pipelines, implement async processing and queuing rather than synchronous request chains. Timeout settings should be generous (10+ seconds) to account for variability.
references/learnings.md with today's date./sales-enrich — Cross-platform datan enrichment strategy (multi-tool enrichment workflows, waterfall enrichment)/sales-prospect-list — Prospect list building strategy and best practices/sales-integration — Connect OpenWeb Ninja to CRM, automation tools, or other platforms/sales-lobstr — Lobstr platform help (web scraping and data extraction)/sales-outscraper — Outscraper platform help (Google Maps scraping and business data)/sales-apollo — Apollo platform help (B2B database and sales engagement)/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-doUser says: "I need to find all plumbing companies in Phoenix, AZ with their phone numbers and websites for my sales team to call." Skill does:
User says: "I have 200 company domains I want to scrape for email addresses and social media links. How do I set this up?" Skill does:
User says: "I want to track when competitor companies post new engineering jobs — it could signal they're building new products we should pitch against." Skill does:
Symptom: Calling the Website Contacts Scraper with a well-known company domain returns no emails, phone numbers, or social links. Cause: The company may not list contact information prominently on their website, may use JavaScript-rendered contact forms instead of plain text emails, may use obfuscated email formats (e.g., "name [at] company [dot] com"), or may have recently redesigned their website. Some companies deliberately avoid listing direct contact info on public pages. Solution: Try the Email Search API as a fallback — it searches the broader web, not just the company's website. Check if the domain redirects to a different URL (e.g., www vs non-www, or a parent company domain). Try the Social Links Search to find their social profiles, which may list contact info. For companies that heavily use JavaScript, the Web Unblocker API may capture content that the Website Contacts Scraper misses, though you will need to parse the HTML yourself.
Symptom: Search results include duplicate entries for the same business (different place IDs) or businesses that have closed. Cause: Google Maps data can contain duplicates when businesses have multiple listings (e.g., different departments, old and new listings). Closed businesses may remain in Google Maps data with a "permanently closed" status that needs to be checked in the response. Solution: Deduplicate results by phone number or address, not just business name (franchises share names). Filter out businesses with a "permanently closed" or "temporarily closed" status field. Cross-reference with the business's website (via Website Contacts Scraper) to verify they are still operating. For high-value prospect lists, manually verify a sample of results before bulk outreach.
Symptom: Receiving 429 (Too Many Requests) errors when calling multiple OpenWeb Ninja APIs in a pipeline. Cause: Each API has its own independent rate limit, but if you are calling multiple APIs in rapid succession from the same integration, you may be exceeding limits on one or more. Rate limits are per API and per plan — Free is 1/sec, Pro is 5-10/sec, and so on. Solution: Implement per-API rate limiting in your code — track request timestamps for each API independently. Add exponential backoff with jitter on 429 responses. Consider upgrading the specific API that is bottlenecking your pipeline rather than upgrading all APIs. For complex pipelines hitting multiple APIs, use a queue-based architecture that respects each API's individual rate limit.
tools
UpViral platform help — viral referral marketing and list-building platform (by Emarky) for viral sweepstakes, giveaway/reward campaigns, pre-launch waiting lists, and milestone referral programs, with REST API (app.upviral.com/api/v1/), callback-URL webhooks, PHP SDK, fraud detection (IP-based suspicious-referral flagging), A/B testing, smart leaderboards, unlockable incentives, and 30+ native ESP/CRM integrations (Mailchimp, ActiveCampaign, ConvertKit, AWeber, HubSpot, Klaviyo, Intercom) plus Zapier/Make/Pipedream/Integrately/Pabbly. Use when UpViral campaigns aren't tracking referral points correctly, deciding between Starter $79/mo annual (10K leads, 1 brand, NO API) vs Business $119/mo (25K, 2 brands, API + webhooks unlocked) vs Premium $319/mo (100K, 5 brands, dedicated account manager), the API returns errors because you're on the Starter tier where API/webhooks are gated, building an UpViral→CRM or UpViral→data-warehouse pipeline with add_contact / get_leads / get_leads_points / add_points / get_custom_fields / lists methods (uvapikey + uvmethod form-encoded POST), interpreting fraud flags where same-IP referrals get marked suspicious and you must manually activate/delete/blacklist, setting up the Callback URL (webhook) to fire on reward-unlock events, Zapier New Lead / New Reward Unlocked triggers not firing, ClickFunnels/Shopify/funnel-builder integration breaking, the drag-and-drop page builder showing broken widgets or limited customization, the setup feeling long and complicated for your first campaign, or picking UpViral over Viral Loops / KickoffLabs / Vyper / Prefinery / Gleam / KingSumo / ShortStack for a viral campaign. Do NOT use for general newsletter audience growth strategy across all platforms (use /sales-audience-growth), newsletter monetization (use /sales-newsletter), KickoffLabs-specific help (use /sales-kickofflabs), no-code merge-tag newsletter referrals (use /sales-referralkit), SparkLoop paid recommendations (use /sales-sparkloop), or full-stack multi-level Level-1/2/3 referral/affiliate tracking (use /sales-referralhero).
development
ReferralHero platform help — full-stack referral, affiliate, waitlist, contest, and NPS platform with subscriber API, webhooks, Zapier, Mailchimp/Kit/AWeber/Klaviyo/ActiveCampaign/SendLane connectors, coupon codes, multi-level referral tracking (Level 1/2/3), anti-fraud, and 5,000 calls/hour rate limit. Use when ReferralHero campaigns aren't tracking referrals correctly, deciding between PRO $199/mo (10K members, includes API + webhooks) and PREMIUM $399/mo (50K members, adds ReCaptcha + SMS verification), authentication is failing with no_token or X-API-Key header is being ignored, multi-level referral counts (Level 2/3) aren't appearing for downline subscribers, coupon group endpoints return 404 or coupon arrays max out, hitting the 5,000 calls/hour soft limit and getting too_many_calls 429s, the Mailchimp/Kit native integration is double-adding subscribers, webhook payloads aren't firing on confirmation events, importing Stripe customer IDs through transaction tracking, generating reward fulfillment when subscribers cross milestone thresholds (promote/unlock_promoted_reward), comparing ReferralHero against SparkLoop/ReferralKit/Viral Loops/GrowSurf/KickoffLabs for referral marketing, or routing referral data via add_bulk_transactions (500-transaction batch limit). Do NOT use for general newsletter audience growth strategy (use /sales-audience-growth), general newsletter monetization (use /sales-newsletter), no-code newsletter-only referral with merge-tag insertion (use /sales-referralkit), SparkLoop's paid recommendations or partner network (use /sales-sparkloop), or affiliate program strategy across many platforms (use /sales-affiliate-program).
tools
KickoffLabs platform help — viral marketing platform for pre-launch waitlists, bonus-entry giveaways, milestone-reward referral programs, leaderboard giveaways, and email opt-in bribes with REST API v1 + v2, server-side webhooks (in/out), KOL.js JavaScript library, AnyForm script for custom pages, fraud detection (duplicate_ip / bounced / duplidate_email flags), SMS verification add-on, native ESP integrations (Klaviyo, Mailchimp, ActiveCampaign, Brevo), website builders (Webflow, Wix, Squarespace, Weebly), Shopify, Facebook Audiences, Slack, Zapier. Use when KickoffLabs viral campaigns aren't tracking referrals correctly, deciding between Hobby $13/mo annual (500 leads/mo no A/B no reward emails) vs Premium $48/mo (2.5K + A/B + reward emails + tracking pixels) vs Business $99/mo (10K + custom email templates + custom domains + advanced reporting + 3 team) vs Enterprise $202/mo (25K + 5 team + SMS included), API key getting rejected because you embedded it in client-side JavaScript instead of server-side, can't decide whether to use v1 /subscribe vs v2 /tags/:TAG_ID/lead for lead creation, webhook payloads firing with `__fraudulent` flag and you need to interpret the duplicate_ip/bounced/duplidate_email reason codes (yes, duplidate is spelled that way in their docs), AnyForm script not posting to KickoffLabs vs native API endpoint, leaderboard endpoint returning more than 50 leads is not allowed, social_id (kid in share URLs) attribution chain breaking between v1 and v2, contest score vs lead count metrics in the webhook payload are confusing, SMS Verification only available on Premium+ as $50/mo add-on (Enterprise includes), per-month lead cap auto-upgrades at $8 per 1000 overage leads, picking between KickoffLabs and Viral Loops / UpViral / Prefinery / ReferralCandy / Voucherify for viral campaign type fit, or rate limit per tier (10-100 calls/minute) is hitting on bulk imports. Do NOT use for general newsletter audience growth strategy (use /sales-audience-growth), general newsletter monetization (use /sales-newsletter), no-code merge-tag-only newsletter referrals (use /sales-referralkit), SparkLoop paid recommendations + partner network (use /sales-sparkloop), or full-stack referral/affiliate with multi-level Level-1/2/3 tracking (use /sales-referralhero).
development
Routes any sales, marketing, ad, or GTM objective to the right specialized skill and outputs the install command for that skill plus a ready-to-paste prompt packed with the user's context. Asks clarifying questions when the objective is ambiguous, then hands back a copy-paste-runnable next step. Covers prospecting, outbound cadences, deals, proposals, forecasting, deliverability, enrichment, intent, content, coaching, CRO, SEO, launch directories, newsletters, email/SMS/push marketing, chatbots, influencer marketing, social media, employee advocacy, media relations, reviews, data hygiene, B2B advertising, retargeting, affiliate, loyalty, digital products, memberships, webinars, checkout, and platform-specific help. Use when the user has a sales or marketing question and isn't sure which skill to use, or wants a multi-skill sequence with a batch install command. Do NOT use to solve problems directly — this skill only routes.