F
finding-law-firms-via-google-search
About finding-law-firms-via-google-search
A skill for finding law firms in Google search results using the apidojo Google search scraper. It supports query and regional settings, then offers scoring guidance to rank prospective firms.
Key features
- 01关键词或搜索 URL 查询
- 02设置国家和结果语言
- 03限制查询页数和结果数
- 04按法律相关信号和域名评分
- 05对搜索结果分类排序
Use cases
- 01按执业领域和城市寻找律所
- 02按国家或语言收集搜索结果
- 03从搜索结果构建律所候选名单
MCP support
Apify MCP 的 call_actor 工具可调用 apidojo~google-search-scraper。
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill finding-law-firms-via-google-searchAfter installing, type/finding-law-firms-via-google-searchin Claude Code to confirm it loaded.
Details
From the project READMEFinding 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 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": ["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_score
Classification
| 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.
Comments
Markdown supported