finding-digital-agencies-via-google-search
Finds digital marketing agencies, creative studios, and web design firms via Google Search using apidojo's Google Search Scraper on Apify. Triggers when the user asks to: find digi…
API Dojo
@apidojo-io
Install
$ openclaw skills install @apidojo-io/finding-digital-agencies-via-google-searchFinding Digital Agencies Via Google Search
Inputs
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | Optional | [] | Google search URLs |
searchTerms | array | Optional | [] | Keywords to search on Google |
countryCode | string | Optional | US | Country for Google search (e.g. US, GB, TR) |
languageCode | string | Optional | — | Language for results (e.g. en) |
maxItems | number | Optional | Unlimited | Maximum results to return across all queries |
maxPagesPerQuery | integer | Optional | 1 | Maximum result pages per query |
mobileResults | boolean | Optional | false | Fetch mobile SERP layout |
customMapFunction | string | Optional | — | JavaScript function to transform each output object |
How to Run
Using run_actor.js (recommended)
# Quick answer (table)
node scripts/run_actor.js --actor "apidojo~google-search-scraper" --input '{"searchTerms": ["digital marketing agency NYC"], "countryCode": "US", "maxPagesPerQuery": 3}'
# Save as CSV
node scripts/run_actor.js --actor "apidojo~google-search-scraper" --input '{"searchTerms": ["digital marketing agency NYC"], "countryCode": "US", "maxPagesPerQuery": 3}' --output results.csv --format csv
# Save as JSON
node scripts/run_actor.js --actor "apidojo~google-search-scraper" --input '{"searchTerms": ["digital marketing agency NYC"], "countryCode": "US", "maxPagesPerQuery": 3}' --output results.json --format json
REST API fallback
curl -X POST "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["digital marketing agency NYC"], "countryCode": "US", "maxPagesPerQuery": 3}'
If Apify MCP is available:
Use the Apify MCP call_actor tool with actor apidojo~google-search-scraper and the input above.
Scoring & Ranking
Score each result by:
snippet_has_agency_signals(contains: agency, studio, services, clients, marketing, SEO) → weight 0.50is_agency_domain(not .gov, .edu, .wikipedia, .youtube) → weight 0.30position→ score = 1 - (position / total_results), weight 0.20
score = 0.50 * int(agency_signals) + 0.30 * int(valid_domain) + 0.20 * (1 - position/total)
Classification
| Score | Tier | Label |
|---|---|---|
| ≥ 0.70 | A | PRIME_PROSPECT |
| 0.40–0.69 | B | WARM_LEAD |
| < 0.40 | C | LOW_PRIORITY |
Edge Cases
- Directory sites in results: Clutch, Yelp, Upwork listings are not agencies. Filter by checking if domain matches snippet.
- Wikipedia/news results: Skip results with domains like wikipedia.org, bbc.com.
- Limited contact data: SERP only returns title, URL, snippet — no phone/email. Use results as a starting list for manual outreach.
- Duplicate agencies: Same agency may appear for multiple search terms — deduplicate by domain.
- Local vs global: Use city-specific search terms for local results.
Top skills in this category
bb-browser
@yan5xuTurn any website into a CLI command. 36 platforms, 103 commands — Twitter, Reddit, GitHub, YouTube, Zhihu, Bilibili, Weibo, and more. Uses OpenClaw's browser...
Demo Video Creator
@0xs4m1337Create product demo videos by automating browser interactions and capturing frames. Use when the user wants to record a demo, walkthrough, product showcase, or interactive video of a web application. Supports Playwright CDP screencast for high-quality capture and FFmpeg for video encoding.
SuperDesign
@mpociotExpert frontend design guidelines for creating beautiful, modern UIs. Use when building landing pages, dashboards, or any user interface.
Video Frames
@steipeteExtract frames or short clips from videos using ffmpeg.
Playwright (Automation + MCP + Scraper)
@ivangdavilaAutomates, tests, and debugs browsers with Playwright: locators, auto-waiting, traces, CI runs, and MCP browser control. Use when a test is flaky, times out, or fails only in CI or headless; when a locator matches multiple elements or the wrong one (strict mode violation); when clicks need force, waits become sleeps, or networkidle never settles; for storageState and login setup, request mocking and HAR replay, uploads and downloads, iframes and shadow DOM, popups and dialogs, screenshot diffs that change per machine, trace and report artifacts, sharding a slow suite, device and permission emulation, accessibility checks, driving a real browser through Playwright MCP, extracting data from JS-rendered pages, or porting a Cypress, Puppeteer, or Selenium suite to Playwright. Not for maintaining an existing Cypress or Puppeteer suite (cypress, puppeteer) or for work a plain HTTP request answers (http).