MCP docs › Tools › Ad Library Lead Finder
Ad Library Lead Finder
ad_library_lead_finder slow · returns a job Ad intelligence
Find local businesses in a niche + city and report which ones are running ads. For every business it checks BOTH Google's Ads Transparency Center and Meta's Ad Library, then returns a scored, ranked sales-lead list with phone, website, rating, reviews, live ad counts, a verdict and a suggested opening line. Ad status is tristate: 'advertising', 'not_advertising' or 'unknown' — a check that could not be completed is NEVER reported as 'not advertising'. Use mode='cold' to rank businesses running nothing highest, or mode='spending' to rank current advertisers highest.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
niche |
string | yes | — | Business type to search for, e.g. 'dentists', 'roofers', 'gyms'. |
city |
string | no | — | City or area to search in, e.g. 'Miami, FL'. |
mode |
string | no | "cold" |
'cold' ranks businesses running NO ads highest (pitch: you're invisible); 'spending' ranks current advertisers highest (pitch: we'll beat your agency); 'all' ranks on business quality only. One of: cold, spending, all. |
country |
string | no | "US" |
ISO country code for both ad libraries, e.g. 'US', 'GB'. |
limit |
integer | no | 20 |
How many businesses to build the list from and check (clamped to the account tier ceiling). |
check_google |
boolean | no | true |
Check Google Ads Transparency. Fast. |
check_meta |
boolean | no | true |
Check the Meta Ad Library. Needs a browser per business, so it is the slow half — set false for a quick Google-only sweep. |
min_score |
integer | no | 0 |
Drop leads scoring below this (0-100). 0 keeps everything. |
only_verified |
boolean | no | false |
Return only rows where BOTH ad checks completed (no 'unknown'). |
Returns
One scored lead per business, ranked. Ad status is tristate — 'unknown' means the check could not complete, never 'not advertising'.
Each row typically carries: name verdict lead_score phone website google_ads_status google_ads_count meta_ads_status meta_ads_count rating review_count address pitch
The response body is { status, count, fields, results }. Runs that exceed the inline wait return { status: "running", job_id, tool_flow } instead — see Jobs & errors.
Call it over MCP
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ad_library_lead_finder",
"arguments": {
"niche": "roofers",
"city": "Austin, TX",
"mode": "cold",
"limit": 20,
"check_meta": false
}
}
}
Call it over the REST API
curl -X POST https://convertfleet.online/api/tool-run \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tool":"adleads","params":{"query":"roofers","location":"Austin, TX","mode":"cold","max_results":20,"check_meta":false}}'
Both paths run the same job engine, enforce the same plan limits and count against the same monthly quota. See the REST API page.
Related tools
JSON Schema
{
"type": "object",
"properties": {
"niche": {
"type": "string",
"description": "Business type to search for, e.g. 'dentists', 'roofers', 'gyms'."
},
"city": {
"type": "string",
"description": "City or area to search in, e.g. 'Miami, FL'."
},
"mode": {
"type": "string",
"description": "'cold' ranks businesses running NO ads highest (pitch: you're invisible); 'spending' ranks current advertisers highest (pitch: we'll beat your agency); 'all' ranks on business quality only.",
"enum": [
"cold",
"spending",
"all"
],
"default": "cold"
},
"country": {
"type": "string",
"description": "ISO country code for both ad libraries, e.g. 'US', 'GB'.",
"default": "US"
},
"limit": {
"type": "integer",
"description": "How many businesses to build the list from and check (clamped to the account tier ceiling).",
"default": 20
},
"check_google": {
"type": "boolean",
"description": "Check Google Ads Transparency. Fast.",
"default": true
},
"check_meta": {
"type": "boolean",
"description": "Check the Meta Ad Library. Needs a browser per business, so it is the slow half — set false for a quick Google-only sweep.",
"default": true
},
"min_score": {
"type": "integer",
"description": "Drop leads scoring below this (0-100). 0 keeps everything.",
"default": 0
},
"only_verified": {
"type": "boolean",
"description": "Return only rows where BOTH ad checks completed (no 'unknown').",
"default": false
}
},
"additionalProperties": false,
"required": [
"niche"
]
}