Keller Williams France Scraper avatar

Keller Williams France Scraper

Pricing

from $9.99 / 1,000 results

Go to Apify Store
Keller Williams France Scraper

Keller Williams France Scraper

Scrape Keller Williams France advisors — emails, phones, roles, LinkedIn. Full directory. Export CSV, JSON, Excel. Lead gen, CRM. One click.

Pricing

from $9.99 / 1,000 results

Rating

0.0

(0)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Keller Williams France — Advisors Scraper

Extract advisor contact data from Keller Williams France. Input: List mode (full directory) or URLs (enrich specific profiles). Output: names, phones, emails, roles, LinkedIn URLs. Export as CSV, JSON, or Excel. One click.

Built for: lead generation · franchise recruitment · CRM enrichment · LinkedIn outreach · market mapping

Custom setup or integration? corentin@outreacher.fr


What does it do?

Keller Williams France is a major real estate network. Advisors publish profiles on kwfrance.com/conseillers. This Actor scrapes the directory at scale, extracts contact details (emails via internal API when available), and enriches profiles with LinkedIn URLs when enrichment is enabled.

ModeHow it worksBest for
listScrapes full directory with pagination (30 concurrent detail requests)Full France advisor list
urlsEnriches specific advisor profile URLs you provideCRM refresh, adding missing fields

Phase 1: List advisors via HTML pagination. Phase 2: Scrape detail pages + AgentDetail API (email). Phase 3: LinkedIn enrichment when enabled. No proxy required.

LinkedIn column — Profiles are enriched with LinkedIn URLs when enrichment is enabled in Actor settings. No input needed. Progress is logged during the run.


What data does it extract?

CategoryFields
Contactemail, phone, phoneFormatted, phonePro, phonePerso
Profilename, role, agency, url, negoId
LinkshonorairesUrl (fees PDF), biensUrl (listings)
LinkedInlinkedInUrl, linkedInCorrelationScore (when env keys set)

Emails from AgentDetail API or deduced from URL (firstname.lastname@kwfrance.com). Phones: 06/07 = personal, 01–05/08–09 = professional. Fields not present are null.


Input

List mode (full directory):

{
"mode": "list"
}

Set maxResults to limit; 0 or empty = unlimited.

List mode with limit:

{
"mode": "list",
"maxResults": 50
}

URLs mode (enrich specific profiles):

{
"mode": "urls",
"startUrls": [
{ "url": "https://www.kwfrance.com/conseiller/abdelhakim.hachemi,2448" },
{ "url": "https://www.kwfrance.com/conseiller/alexandre.ustyanowski,2238" }
]
}

Input parameters

ParameterTypeDefaultDescription
modeString"list""list" (full directory) or "urls" (enrich links)
startUrlsArray[mode=urls] Advisor profile URLs — one per line
maxResultsInteger0Max advisors to extract. 0 = no limit (full directory)

LinkedIn enrichment runs when enabled in Actor settings. No input fields needed.


Output

Each advisor is one row. Results stream to the Dataset tab during the run.

{
"url": "https://www.kwfrance.com/conseiller/abdelhakim.hachemi,2448",
"name": "Abdelhakim HACHEMI",
"role": "Agent",
"agency": null,
"phone": "07 68 74 77 28",
"phoneFormatted": "+33 7 68 74 77 28",
"phonePro": null,
"phonePerso": "+33 7 68 74 77 28",
"email": "abdelhakim.hachemi@kwfrance.com",
"honorairesUrl": "https://media.kwfrance.com/mc/74/public/3955_658d601765f20.pdf",
"biensUrl": "https://www.kwfrance.com/vente?nego=2448&include_agency_products=4",
"negoId": "2448",
"linkedInUrl": "https://fr.linkedin.com/in/abdel-hakim-hachemi-112278149",
"linkedInCorrelationScore": 50,
"error": null
}

Download in JSON, CSV, Excel, or HTML from the Dataset tab. LinkedIn fields appear when enrichment is enabled.


How to use

Step-by-step (List mode)

  1. Open the Actor Input tab
  2. Set Mode to List — All advisors (directory)
  3. (Optional) Set maxResults to limit; leave at 0 for full directory
  4. Click Start
  5. Download results from the Dataset tab (streams progressively)

Step-by-step (URLs mode)

  1. Go to kwfrance.com/conseillers and collect advisor profile URLs
  2. Set Mode to URLs — Enrich advisor profile URLs
  3. Paste URLs into Advisor URLs (one per line)
  4. Click Start
  5. Download results from the Dataset tab

LinkedIn column: Enable enrichment in Actor settings. LinkedIn URLs are added automatically.


Local development

npm install
npm run build

Edit storage/key_value_stores/default/INPUT.json or create it at the project root, then run:

cp INPUT.json storage/key_value_stores/default/INPUT.json 2>/dev/null || true
apify run --purge-none

Example for List mode:

{
"mode": "list"
}

Example for URLs mode:

{
"mode": "urls",
"startUrls": [
{ "url": "https://www.kwfrance.com/conseiller/abdelhakim.hachemi,2448" }
]
}

Output: output.csv and storage/datasets/default/. Deploy with apify push.

Tests: npm test (unit tests) · SMOKE=1 npm run test:linkedin (LinkedIn smoke, 1 advisor, requires API keys).


Performance and cost

AdvisorsScraping onlyWith LinkedIn
50~30–60 s~3–5 min
62 (full)~1–2 min~6–12 min

Scraping: 30 concurrent detail requests. LinkedIn: 8 concurrent. No proxy required. Cost uses Apify consumption-based pricing (Compute Units). Check Apify pricing for current rates.


Use cases

  • Lead generation: Build lists of real estate advisors by role
  • Franchise recruitment: Find advisors for partnership opportunities
  • CRM enrichment: Add contact data or LinkedIn URLs to existing records
  • LinkedIn outreach: Export advisor lists with linkedInUrl for sales campaigns
  • Market mapping: Analyze advisor distribution by agency or region

FAQ

Why are some emails empty?
A few profiles have incomplete data. When available, emails come from the AgentDetail API; otherwise deduced from the URL slug.

Why is agency often null?
The KW France site does not always expose agency in the scraped data.

Works outside France?
Keller Williams France is France-focused. Advisors cover mainland and overseas territories.

Proxy required?
No. The site does not block standard requests.

Can I run on a schedule?
Yes. Use Apify Scheduler for recurring runs (e.g. weekly refresh).

LinkedIn enrichment skipped?
Enable enrichment in Actor settings. The Actor logs a message when enrichment is not configured.

CSV separator?
Semicolon (;) for Excel compatibility when exporting from Apify.


Support

For questions, custom solutions, or feedback, use the Issues tab on the Actor page.

Ready? Set mode: List, pick your target, and click Start.