How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/apidojo-io/apidojo-skills --skill finding-law-firms-via-google-searchBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Finding Law Firms 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": ["personal injury law firm Dallas"], "countryCode": "US", "maxPagesPerQuery": 3}'
# Save as CSV
node scripts/run_actor.js --actor "apidojo~google-search-scraper" --input '{"searchTerms": ["personal injury law firm Dallas"], "countryCode": "US", "maxPagesPerQuery": 3}' --output results.csv --format csv
# Save as JSON
node scripts/run_actor.js --actor "apidojo~google-search-scraper" --input '{"searchTerms": ["personal injury law firm Dallas"], "countryCode": "US", "maxPagesPerQuery": 3}' --output results.json --format jsonREST 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": ["personal injury law firm Dallas"], "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_legal_signals(contains: law firm, attorneys, legal, lawyers, counsel, practice, LLP, PC) → weight 0.50valid_domain(not directory sites: avvo.com, findlaw.com, lawyers.com) → weight 0.30position_score→ 1 - (position / total), weight 0.20
score = 0.50 * int(legal_signals) + 0.30 * int(valid_domain) + 0.20 * position_scoreClassification
| Score | Tier | Label |
|---|---|---|
| ≥ 0.70 | A | PRIME_PROSPECT |
| 0.40–0.69 | B | WARM_LEAD |
| < 0.40 | C | LOW_PRIORITY |
Edge Cases
- Legal directories: Avvo, FindLaw, Martindale are directories — not law firms. Filter by domain.
- No contact data: SERP returns URL and snippet — no phone/email. Use as starting list.
- Practice area filter: Add specialty: "immigration law firm", "family law attorney Dallas".
- Large vs boutique: Big firms may be harder to reach. Filter by snippet to identify size.
- Duplicate firms: Same firm may appear across multiple search terms — deduplicate by domain.



