Keller Williams France Scraper
Pricing
from $9.99 / 1,000 results
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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.
| Mode | How it works | Best for |
|---|---|---|
list | Scrapes full directory with pagination (30 concurrent detail requests) | Full France advisor list |
urls | Enriches specific advisor profile URLs you provide | CRM 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?
| Category | Fields |
|---|---|
| Contact | email, phone, phoneFormatted, phonePro, phonePerso |
| Profile | name, role, agency, url, negoId |
| Links | honorairesUrl (fees PDF), biensUrl (listings) |
linkedInUrl, 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
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | String | "list" | "list" (full directory) or "urls" (enrich links) |
startUrls | Array | — | [mode=urls] Advisor profile URLs — one per line |
maxResults | Integer | 0 | Max 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)
- Open the Actor Input tab
- Set Mode to List — All advisors (directory)
- (Optional) Set
maxResultsto limit; leave at0for full directory - Click Start
- Download results from the Dataset tab (streams progressively)
Step-by-step (URLs mode)
- Go to kwfrance.com/conseillers and collect advisor profile URLs
- Set Mode to URLs — Enrich advisor profile URLs
- Paste URLs into Advisor URLs (one per line)
- Click Start
- Download results from the Dataset tab
LinkedIn column: Enable enrichment in Actor settings. LinkedIn URLs are added automatically.
Local development
npm installnpm 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 || trueapify 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
| Advisors | Scraping only | With 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
linkedInUrlfor 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.