Expertise.com Directory Scraper
Pricing
Pay per event
Expertise.com Directory Scraper
Scrape public Expertise.com directory pages for professional-service listings, websites, phones, ratings, addresses, and editorial ranks.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract structured professional-service listings from public Expertise.com directory pages.
Use this actor when you need clean local lead data from Expertise.com category and city pages without manually copying provider cards.
What This Actor Does
Expertise.com Directory Scraper reads public Expertise.com directory URLs and saves provider listings to an Apify dataset.
It is built for pages such as personal injury lawyers in Los Angeles, car accident lawyers in Los Angeles, and similar Expertise.com category/location directories.
The actor uses the public HTML returned by Expertise.com.
It does not require a login.
It does not use a browser.
It extracts structured listing data from provider JSON-LD and page context.
Who Is It For
Local lead-generation teams use this actor to build prospect lists.
Marketing agencies use it to research service providers in a city.
SEO teams use it to compare local competitors.
Sales teams use it to collect business websites and phone numbers.
Market researchers use it to monitor category coverage by location.
Why Scrape Expertise.com
Expertise.com curates local professional service providers across legal, home services, finance, health, and other categories.
The pages often include editorial ranking, service category, ratings, review counts, descriptions, phone numbers, and business websites.
That makes the source useful for focused B2B prospecting where a generic maps search is too broad.
Input Sources
The recommended input is a direct Expertise.com directory page URL.
Example:
{"startUrls": ["https://www.expertise.com/legal/personal-injury-lawyers/california/los-angeles"],"maxResults": 20}
Direct URLs are more reliable than generated URLs because Expertise.com category slugs can vary by vertical.
Fallback URL Builder
The actor also accepts category and location.
Use this only when you do not already have a page URL.
The fallback creates a simple path from your text.
For production jobs, provide startUrls.
Output Data
Each dataset item is one Expertise.com provider listing.
The actor stores both the original input URL and the canonical source URL.
It also stores normalized location and address fields where Expertise.com exposes them.
Output Fields
input_url is the URL supplied in actor input.
source_url is the canonical Expertise.com directory URL.
category is the top-level Expertise.com category.
vertical is the service vertical from the page path.
practice_area mirrors the service vertical for legal and professional-service workflows.
city is the directory city.
state is the state abbreviation when available.
listing_name is the provider or firm name.
profile_url is the Expertise.com page anchor for the provider when available.
website_url is the provider website.
phone is the public phone number.
address is the combined postal address.
locality, region, and postal_code are address components.
rating and review_count come from Expertise.com structured ratings.
editorial_rank is the provider position on the page.
listing_description is the Expertise.com provider summary.
awards_badges contains tags and badges shown on the provider card.
scraped_at is the extraction timestamp.
Example Output
{"listing_name": "Law Offices of Haleh Shekarchian","vertical": "personal injury lawyers","city": "los angeles","state": "CA","website_url": "https://www.halehshekarchian.com/","phone": "1-888-449-9606","rating": 4.61,"review_count": 222,"editorial_rank": 1}
How To Run
Create a new run.
Paste one or more Expertise.com directory URLs into startUrls.
Set maxResults to the number of listings you want.
Start the actor.
Download the dataset as JSON, CSV, Excel, XML, or HTML from Apify.
Input Tips
Start with one URL while validating a category.
Use maxResults to cap small tests.
Increase maxPages only if Expertise.com shows pagination for the directory.
Use direct URLs copied from Expertise.com for best coverage.
Avoid mixing unrelated city/category pages in one run if you need a clean segment.
Pricing
This actor uses pay-per-event pricing.
There is a small run-start event and a per-listing result event.
The final platform price is calibrated from cloud run costs before QA approval.
Small test runs with low maxResults keep costs predictable.
Performance
The actor is HTTP-first.
It avoids browser automation because Expertise.com exposes listing data in server-rendered HTML.
That keeps memory requirements low.
The default memory target is suitable for normal directory pages.
Data Quality
The extractor prefers JSON-LD LocalBusiness records because they are structured and stable.
Page metadata supplies category, vertical, city, and state context.
Provider article attributes supply editorial rank.
Duplicate listings are skipped within a run.
Common Use Cases
Build a city-specific attorney prospect list.
Research competing providers in a local service category.
Collect provider websites for enrichment.
Compare ratings and review counts in a market.
Monitor which providers appear on Expertise.com over time.
API Usage
You can run this actor through the Apify API.
Send JSON input with startUrls, maxResults, and optional retry/page limits.
Read results from the default dataset after the run succeeds.
Node.js example:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/expertise-com-directory-scraper').call({startUrls: ['https://www.expertise.com/legal/personal-injury-lawyers/california/los-angeles',],maxPages: 1,maxResults: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python example:
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation-lab/expertise-com-directory-scraper").call(run_input={"startUrls": ["https://www.expertise.com/legal/personal-injury-lawyers/california/los-angeles",],"maxPages": 1,"maxResults": 20,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL example:
curl "https://api.apify.com/v2/acts/automation-lab~expertise-com-directory-scraper/runs?token=$APIFY_TOKEN" \-H "content-type: application/json" \-d '{"startUrls": ["https://www.expertise.com/legal/personal-injury-lawyers/california/los-angeles"],"maxPages": 1,"maxResults": 20}'
Integrations
Use Apify datasets with Google Sheets, Make, Zapier, n8n, webhooks, or your own API client.
The output field names are stable and snake_case for downstream processing.
MCP And Agents
AI agents can call the actor to collect local provider data before enrichment, qualification, or outreach planning.
Use low maxResults for interactive agent workflows.
Use larger runs for batch exports.
Claude Desktop example command:
$claude mcp add apify -- npx -y @apify/actors-mcp-server --actors automation-lab/expertise-com-directory-scraper
MCP JSON configuration:
{"mcpServers": {"apify": {"command": "npx","args": ["-y","@apify/actors-mcp-server","--actors","automation-lab/expertise-com-directory-scraper"],"env": {"APIFY_TOKEN": "your-apify-token"}}}}
Example prompts:
- "Find Expertise.com personal injury lawyer listings in Los Angeles and summarize the providers with websites and ratings."
- "Run the Expertise.com Directory Scraper for this directory URL and return firms with phone numbers."
- "Compare the top-ranked providers across two Expertise.com legal categories."
Legality
Only public Expertise.com pages are scraped.
Respect Expertise.com, applicable law, and downstream contact rules.
Do not use scraped data for spam.
If you combine results with outreach tools, follow consent, privacy, and anti-spam requirements in your jurisdiction.
Limitations
The actor cannot access private or logged-in data.
It only extracts fields present in public page HTML.
Some provider cards may hide websites or phones.
Fallback URL generation may not match every Expertise.com category slug.
Use direct startUrls for reliable production runs.
Troubleshooting
If a run returns zero items, verify the URL is an Expertise.com directory page.
If the page redirects, use the canonical URL after the redirect.
If a field is empty, Expertise.com may not expose that value for the listing.
If a category path changes, copy a fresh URL from Expertise.com.
FAQ
Can this actor scrape any Expertise.com page?
It is designed for public category/location directory pages with provider listings.
Does it use residential proxies?
No proxy is required for the tested public pages.
Does it enrich emails?
No. It extracts public listing fields only.
Can I scrape several cities at once?
Yes. Add multiple URLs to startUrls.
Will it return the provider website?
Yes, when Expertise.com exposes it in the listing structured data.
Related Actors
Use Google Maps lead tools when you need broader business discovery.
Use website contact enrichment tools when you need emails from extracted provider websites.
Use directory-specific actors when you need fields unique to another source.
Changelog
Initial version extracts Expertise.com provider listings with JSON-LD-first parsing, page context, rank, badges, contact fields, and ratings.