Expertise.com Directory Scraper avatar

Expertise.com Directory Scraper

Pricing

Pay per event

Go to Apify Store
Expertise.com Directory Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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 ApifyClient
import os
client = 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().items
print(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.

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.