Safti Consultants · Full profiles infos (emails, phones)
Pricing
from $9.99 / 1,000 results
Safti Consultants · Full profiles infos (emails, phones)
Export SAFTI advisors from the public finder: contacts, RSAC, areas, listings, socials, bios. Full France run or paste profile URLs. CRM-ready. Custom work: corentin@outreacher.fr
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
6 days ago
Last modified
Categories
Share
SAFTI France Advisors Scraper
Export SAFTI real estate advisors from the public finder at safti.fr/trouver-un-conseiller. You get export-ready rows: names, phones, RSAC, coverage areas, listings count, social links, and full presentation text — for CRM, prospecting, or territory mapping.
Built for: Lead lists · Territory mapping · CRM enrichment · Market research
Custom automation or integrations: corentin@outreacher.fr
What does it do?
| Mode | What you get | Best for |
|---|---|---|
| Full directory | Every advisor listed on the paginated finder, then one row per profile page | National or large-scale export |
| URLs | Only the profile pages you paste | Refreshing or enriching an existing list |
The site embeds structured data in the first HTML response (__NEXT_DATA__). This Actor uses HTTP only (no browser): listing pages for slugs, then profile pages for full text, RSAC, and social links.
Email: The public JSON does not include an email field. Rows set email to the usual pattern prenom.nom@safti.fr (accent-stripped, lowercase) and emailDerived: true so you can tell guessed addresses from any future scraped value. Always verify before sending mail.
How it works
- Full directory: Load page 1 of the finder to read the total advisor count and page size, build the page range, then fetch listing pages with a bounded worker pool (your Directory parallelism input, default 40). Each page contributes advisor slugs; duplicates are removed as you go.
- URLs: Parse
safti.fr/votre-conseiller-safti/{slug}/links into slugs (duplicates removed). - Profiles: Same pool pattern for profile URLs (Profile parallelism, default 55). Each slot runs fetch → parse embedded JSON →
pushDataso rows appear while other profiles still load. - Local only: After a successful run, write
output.csvnext to the project (UTF-8 BOM,;separator) for Excel.
Output fields
| Category | Fields |
|---|---|
| Identity | slug, displayName, firstName, lastName, subtitle / principalArea |
| Geography | city, postCode, ville, departement, otherAreas, locations |
| Contact | email, emailDerived, phones, profileUrl, photoUrl |
| Compliance / trust | rsac, nbProperties, googleMBRating, googleMBUrl |
| Social | facebook, linkedin, instagram, twitter |
| Copy | aboutFull (presentation text) |
Use the Dataset view Advisors — Overview for a slim table; the default dataset contains full rows.
Sample output (one advisor)
{"slug": "sophie-charlon","profileUrl": "https://www.safti.fr/votre-conseiller-safti/sophie-charlon","displayName": "Sophie CHARLON","subtitle": "MONTELEGER (26760)","city": "MONTELEGER","postCode": "26760","email": "sophie.charlon@safti.fr","emailDerived": true,"phones": ["+33 6 87 36 90 96"],"rsac": "848 775 078 RSAC ROMANS","nbProperties": 2}
Run log and status
- Console / Apify log: Phase banners (
====), progress lines, counts, and duration — English only. - RUN_LOG: The same lines are written to the default key-value store as
RUN_LOG(text) so you can follow progress while the run is active. - Run page: On Apify Cloud, short status messages describe the current phase (listing, fetching profiles, done).
Quick start (Apify Console)
- Create a run and choose Full directory or URLs.
- For URLs, paste links such as
https://www.safti.fr/votre-conseiller-safti/sophie-charlon/. - Optional: set Max advisors via API or local
input.jsonfor a trial (Full directory only). The form prefill for quick tests does not change API defaults (0 = no cap). - Open Dataset for JSON/CSV export, or Key-value store → RUN_LOG for live text progress.
Input examples
Full directory (no cap):
{"mode": "list"}
Full directory — first 50 advisors after listing:
{"mode": "list","maxResults": 50}
URLs only:
{"mode": "urls","startUrls": [{ "url": "https://www.safti.fr/votre-conseiller-safti/sophie-charlon/" }]}
Local development
npm installnpm testapify run
- Local runs: defaults from
input.jsonare merged first; thenActor.getInput()overwrites (soapify run/ CLI input wins). - Apify Cloud:
input.jsonis ignored — only the run input from the Console or API is used (somode: "urls"is not overwritten by a leftover file in the image). - Dataset JSON files are written under
storage/datasets/default/. - After a run,
output.csvis written at the project root when not on Apify Cloud.
Important
- Public data only — Use exported data in line with applicable law and your own compliance review.
- Availability — The site layout or embedded JSON shape can change; if a run returns empty rows, check the Actor version and open an issue with a sample URL.
Support
Contact corentin@outreacher.fr if you need a custom scraper, scheduling, or data delivery integration.