XY Planning Network Scraper — Fee-Only CFP® Advisor Leads avatar

XY Planning Network Scraper — Fee-Only CFP® Advisor Leads

Pricing

$4.00 / 1,000 per advisor returneds

Go to Apify Store
XY Planning Network Scraper — Fee-Only CFP® Advisor Leads

XY Planning Network Scraper — Fee-Only CFP® Advisor Leads

Export XYPN's Find an Advisor directory: fee-only CFP® advisor name, firm, city/state, client niches, full fee schedule (flat/hourly/monthly/quarterly/AUM), states served, website, LinkedIn and SEC IAPD links with CRD numbers. Filter by state, niche or name. No login. Export JSON/CSV.

Pricing

$4.00 / 1,000 per advisor returneds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Export the XY Planning Network public Find an Advisor directory as a clean lead list. One row = one fee-only advisor, carrying name, firmName, city, state, postalCode, designations, statesServed, nichePrimary/Secondary/Tertiary, nicheGeneration, feeFlat, feeHourly, feeMonthly, feeQuarterly, feeAum, websiteUrl, linkedinUrl, bookingUrl and the SEC IAPD links with the CRD numbers extracted for both the advisor and the firm.

1,233 advisors live on 2026-08-15 — and every single one holds the CFP® marks (1,233 of 1,233, measured). XYPN is the network for young, fee-for-service financial planners: no commissions, no wirehouses, heavy on virtual practices and startup RIAs. It is the highest-signal small list in the advisor world — the whole directory, enumerable to the last row, costs $4.93.

$0.004 per advisor — $4 per 1,000. No login. No API key. No CAPTCHA solving.

{ "maxItems": 100 }

Click Try for free and hit Start — that is the input this Actor ships with: 100 advisors for $0.40.


Quick start

  1. Click Try for free (an Apify account is free; no card for the free tier).
  2. Leave every field alone, or pick states and client niches from the drop-downs — each option shows its live advisor count, so you can size the run before you spend.
  3. Press Start, open the Dataset tab when the run turns green, export CSV / Excel / JSON.

Every filter is a drop-down read from XYPN's own live directory, so there is nothing to spell correctly.

From the API

// npm i apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('scrapersdelight/xy-planning-advisor-scraper').call({
states: ['CA'],
niches: ['Business Owners'],
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].name, items[0].firmName, items[0].feeAum, items[0].secIndividualCrd);
# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("scrapersdelight/xy-planning-advisor-scraper").call(run_input={
"niches": ["Equity Recipients (RS/RSU SOP ESPP)"],
"requireWebsite": True,
"maxItems": 0,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["name"], row["firmName"], row["websiteUrl"])

The wedge: the published fee schedule, and a 100% fee-only universe

Every advisor directory sells names and cities. Two things make this row worth more:

  1. The fee schedule, as the advisor published it. 91.6% of advisors publish at least one structured fee: feeAum on 67.1% of rows (e.g. ".75%"), feeFlat on 48.0% (e.g. "$6,000+"), feeHourly 38.6%, feeMonthly 38.6%, feeQuarterly 26.8%, plus a feeModels[] array telling you which models each advisor runs. 303 advisors (24.6%) publish fees with no AUM model at all — the flat-fee / advice-only segment that every AUM-based custodian and every subscription-planning vendor wants to find, and that no other public directory labels. NAPFA doesn't publish fees. CFP Board suppresses compensation entirely. XYPN prints the price list.

  2. A pre-qualified universe. XYPN membership requires the CFP® marks and a fee-for-service model — so the segmentation work is already done: 100% CFP®, 100% fee-only, skewed young and virtual (448 advisors — 36.3% — list more than one state served). And 77.4% of rows carry the advisor's individual SEC CRD (98.1% carry the firm CRD), extracted into secIndividualCrd/secFirmCrd with canonical IAPD links — the join key into BrokerCheck, Form ADV, AUM and disciplinary history without any name matching.


Read this before you buy rows

  1. There are no email addresses and no phone numbers — no such columns exist. XYPN publishes neither, on 0 of 1,233 rows. The handle you enrich from is websiteUrl (83.7%) or linkedinUrl (83.9%). See Honest limits for the exact play.
  2. No years-of-experience or certification-year field. XYPN does not publish tenure. If you need it, join secIndividualCrd (77.4%) into IAPD/BrokerCheck, or use the CFP Board sibling Actor, which carries certificationYear on 100% of its rows.
  3. The state filter means "serves that state", not "lives there". XYPN advisors are heavily virtual; the server matches home state OR the advisor's published states-served list. California returns 379 advisors — only 167 are headquartered there. Segment territory on state (home) or statesServed[] after export if you need the distinction.
  4. The niche filter is OR, not AND. Picking Cryptocurrency and Attorneys returns advisors matching either (5 + 18 = 23, measured live). Multiple niches widen the result.
  5. search over-matches on common words. It is XYPN's own fuzzy search and it walks bios: "Livadary" returns exactly 1 advisor, but "Mana" returns 803 of 1,233. Use it for names; use the drop-downs for segments.

What you get

One row per advisor. All timestamps ISO-8601 UTC.

Identity & firm

FieldNotes
slugXYPN's stable profile id — the dedupe key
profileUrlCanonical public profile page
name / firstName / lastNameAs published
firmName100% fill
designations[] / designationsStrCFP® on 100%; MBA on 200 rows, EA 148, CFA 132, CPA 110…
isCfptrue on every row today; kept so a policy change is visible
headshotUrlAdvisor photo (S3)

Location & reach

FieldNotes
city / state / postalCode / addressHome office, parsed from XYPN's structured schema block
statesServed[] / statesServedCountHome state + the advisor's published additional states; 36.3% list more than one

Practice & fees

FieldNotes
nichePrimary / nicheSecondary / nicheTertiaryClient niches from XYPN's 128-value vocabulary
nicheGenerationGeneration focus (Gen X / Millennials / Boomers / Gen Z)
niches[]The four above, deduplicated
feeModels[]Which of Flat Rate / Hourly / Monthly / Quarterly / AUM this advisor publishes
feeFlat / feeHourly / feeMonthly / feeQuarterly / feeAumThe published amounts, verbatim (e.g. "$6,000+", ".75%")
feeAdditionalFree-text fee notes
bioShort / bioLongBoth 100% fill

Web presence

FieldNotes
websiteUrl83.7% — the enrichment handle
linkedinUrl83.9%
bookingUrl59.9% — a direct scheduling link (Calendly-class)
blogUrl / podcastUrl / introVideoUrl / facebookUrl / instagramUrl / twitterUrl / youtubeUrlSee fill table
mentions[] / publisherMentions[]Press mentions with links (19.0% / 19.6%)

Regulatory

FieldNotes
secIndividualCrd / secIndividualUrlAdvisor's own CRD + canonical IAPD link, 77.4%
secFirmCrd / secFirmUrlFirm CRD + IAPD link, 98.1%
formAdvUrlThe firm's Form ADV / fee brochure where published, 59.9%

Provenance: sourceUrl, profileUpdatedAt, scrapedAt.


Field fill — measured on the full directory, not a sample

One run of this Actor with no filters through the Apify datacenter proxy on 2026-08-15: all 42 pages, 1,233 rows, 1,233 unique. Sorted by fill; the sparse fields are bolded so they cannot mislead you.

FieldFill
slug, profileUrl, name, firstName, lastName, firmName100%
designations[], isCfp (all true), city, state, postalCode, address100%
statesServed[], bioShort, bioLong, headshotUrl, profileUpdatedAt100%
niches[]98.5%
nichePrimary · secFirmCrd + secFirmUrl98.1%
nicheSecondary95.5%
feeModels[] (≥1 structured fee)91.6%
nicheTertiary90.3%
linkedinUrl83.9%
websiteUrl83.7%
secIndividualCrd + secIndividualUrl77.4%
nicheGeneration75.2%
feeAum67.1%
bookingUrl · formAdvUrl59.9%
facebookUrl48.3%
feeFlat48.0%
blogUrl43.1%
feeHourly · feeMonthly38.6%
feeAdditional32.8%
feeQuarterly26.8%
instagramUrl25.5%
youtubeUrl25.1%
twitterUrl23.0%
publisherMentions[]19.6%
mentions[]19.0%
introVideoUrl9.0%
podcastUrl5.6%
email0.0% — no such column exists
phone0.0% — no such column exists

The headline that could mislead you: this is not a contact-scrape. It is a practice-model and credential product — fee schedules, niches, states served, and a CRD join key — with a website/LinkedIn handle on ~84% of rows to enrich contact from. If you need a direct email today, the NAPFA sibling publishes one on ~65% of its rows.


Sample row

A real row from the full run on 2026-08-15, unedited (bios truncated for display only):

{
"slug": "cristina-livadary-11070",
"profileUrl": "https://connect.xyplanningnetwork.com/find-an-advisor/cristina-livadary-11070",
"name": "Cristina Livadary",
"firstName": "Cristina",
"lastName": "Livadary",
"firmName": "Mana Financial Life Design, LLC",
"designations": ["CFP®", "RLP®"],
"designationsStr": "CFP®, RLP®",
"isCfp": true,
"city": "South Pasadena",
"state": "CA",
"postalCode": "91030",
"address": "South Pasadena, CA, 91030",
"statesServed": ["CA"],
"statesServedCount": 1,
"nichePrimary": "Equity Recipients (RS/RSU SOP ESPP)",
"nicheSecondary": "Sandwich Generation",
"nicheTertiary": "Business Executives",
"nicheGeneration": "Gen X",
"niches": ["Equity Recipients (RS/RSU SOP ESPP)", "Sandwich Generation", "Business Executives", "Gen X"],
"feeModels": ["Flat Rate", "AUM"],
"feeFlat": "$6,000+",
"feeHourly": null,
"feeMonthly": null,
"feeQuarterly": null,
"feeAum": ".75%",
"feeAdditional": "Financial Life Design consists of an annual planning fee, starting at $6,000 - this is calculated based on the complexity and unique needs of each client.",
"bioShort": "Life continually throws us curveballs, and we know that these changes and new responsibilities can feel overwhelming. …",
"bioLong": "Mana FLD offers professional financial advice that empowers you to protect and celebrate your hard earned money. …",
"websiteUrl": null,
"linkedinUrl": "https://www.linkedin.com/company/manafld/",
"facebookUrl": "https://www.facebook.com/ManaFinancialLifeDesign/",
"instagramUrl": "https://www.instagram.com/manafld",
"secIndividualCrd": "5179231",
"secIndividualUrl": "https://adviserinfo.sec.gov/individual/summary/5179231",
"secFirmCrd": "298277",
"secFirmUrl": "https://adviserinfo.sec.gov/firm/summary/298277",
"headshotUrl": "https://portal-prod-assets.s3.us-west-2.amazonaws.com/cristina-livadary-11070/advisor-profile-headshot?t=2024-08-27T03%3A01%3A23.532205Z",
"profileUpdatedAt": "2024-08-27T03:01:23.532205Z",
"sourceUrl": "https://connect.xyplanningnetwork.com/find-an-advisor/cristina-livadary-11070",
"scrapedAt": "2026-08-15T04:20:38.406Z"
}

Fields people misread:

  • feeAum: ".75%" is the advisor's published AUM rate, verbatim — kept as a string on purpose (source values include ranges and footnote-style text). Parse it yourself if you need a number.
  • state is the home office; statesServed[] is the advisor's reach. Filtering by state in the input uses the reach.
  • isCfp is derived from designations[] and is true on every row today because XYPN requires the CFP® marks. It exists so that a membership-policy change shows up as data instead of silently.

How to run it

Recipe 1 — the default: a cheap first look

{ "maxItems": 100 }

100 advisors, 4 requests, $0.40. This is what ships prefilled.

Recipe 2 — the whole directory

{ "maxItems": 0 }

All 1,233 advisors, 42 requests, $4.93. Schedule it monthly from the Schedules tab and diff on slug to track new members.

Recipe 3 — everyone serving one state

{ "states": ["CA"], "maxItems": 0 }

379 advisors serve California (167 headquartered there) = $1.52. The filter runs server-side — you never pay for out-of-scope rows.

Recipe 4 — a client niche

{ "niches": ["Equity Recipients (RS/RSU SOP ESPP)"], "maxItems": 0 }

142 advisors specialise in equity-compensation clients = $0.57. Niches are OR — add more to widen: ["Cryptocurrency", "FIRE (Financial Independence Retire Early)"].

Recipe 5 — the flat-fee segment for an email-finder chain

{ "requireWebsite": true, "maxItems": 0 }

Then filter the export to rows where feeModels lacks "AUM" (303 advisors publish fees with no AUM model), and feed websiteUrl to an email-finder Actor. Rows without a website are dropped before billing.

Recipe 6 — look up one advisor

{ "search": "Livadary", "maxItems": 5 }

Returns exactly the one matching advisor — a $0.004 verification that someone is (still) an XYPN member, with their current fee schedule.


Input

Every field ships with a default, so a zero-edit run works.

FieldTypeDefaultWhat it does
statesmulti-select[]"Serves-state" filter, applied server-side; 51 options (50 states + DC), each labelled with its live advisor count measured 2026-08-15. Empty = whole directory. Multi-state runs dedupe on slug and never bill an advisor twice.
nichesmulti-select[]XYPN's live 128-niche vocabulary in 10 groups, each with its advisor count. OR semantics. Re-validated against the live metadata endpoint at run start — an unknown label throws with the current list printed, before anything is billed.
searchtext""XYPN's fuzzy search. Best for names; broad words over-match (see Read this before you buy).
requireWebsitecheckboxfalseDrop advisors with no website (16.3%). Dropped rows are not billed.
maxItemsnumber100Hard cost cap. 0 = everything in scope. Duplicates never count against it.
proxyConfigurationproxyApify datacenterMeasured 100% on sustained load. You should not need to change this.

Pricing

$0.004 per advisor returned — $4 per 1,000, charged on the advisor-scraped event. No run-start fee, no monthly fee from this Actor.

RunAdvisorsCost
The default first click100$0.40
Everyone serving California379$1.52
Equity-compensation specialists142$0.57
Every advisor serving Texas319$1.28
The entire directory1,233$4.93

What you are never charged for: duplicates (dropped on slug before delivery), rows removed by requireWebsite, retries, or the niche-vocabulary validation request. Rows are charged as they are pushed (Actor.pushData(items, 'advisor-scraped')) — if you hit a platform spend cap mid-run you get whole rows and a clean stop, never a half-billed dataset.

Store context, checked 2026-08-15: per-advisor directory rows on Apify run $0.001–$0.012, and several rivals add a $0.03–$0.10 charge just to start a run. This Actor has no run fee and sits at the price of its own CFP Board sibling.


Honest limits

1. No email, no phone. Nothing here can produce one. XYPN publishes neither anywhere in its directory payload — measured 0 of 1,233 rows. Any XYPN product advertising emails is joining another source. The play instead: websiteUrl (83.7%) → an email-finder Actor (Decision-Maker Email Finder, Local Business Contact Enricher), or use the NAPFA sibling, which carries a direct email on ~65% of rows.

2. No tenure fields. No years of experience, no certification year, no start date — XYPN simply does not publish them. Join secIndividualCrd into IAPD/BrokerCheck for employment history, or use the CFP Board sibling (certificationYear on 100% of rows).

3. No explicit virtual/in-person flag. The directory's own signal is statesServed[] — the site renders it as "States Served", and 36.3% of advisors list more than one. XYPN's model is virtual-first; treat a multi-state list as the virtual-practice tell. This Actor will not invent a boolean the source does not publish.

4. Fee fields are verbatim strings, 26.8–67.1% each. Advisors publish the models they run, in their own words ("$200-$400", ".75%", "$6,000+"). 91.6% publish at least one; 8.4% publish none. The strings are cleaned of whitespace cruft but deliberately not parsed into numbers — a range flattened to a float is a lie.

5. The SEC links needed repair, and 22.6% of advisors have no individual one. Live source values include a doubled URL (…/individual/https://adviserinfo.sec.gov/individual/summary/5366139) and free-text like …/firm/N/A - In Progress or …/firm/Don't have one yet. This Actor extracts the CRD digits and rebuilds canonical IAPD URLs; garbage becomes null rather than a broken link. Newer advisors genuinely lack an individual CRD entry.

6. One advisor is Canadian. The directory contains exactly one Ontario-based advisor (Mississauga, ON) whose row carries state: "ON". The state drop-down covers the 50 US states + DC; the Canadian row is only returned by unfiltered or search runs.

7. The directory drifts. 1,233 on 2026-08-15. XYPN adds and removes members continuously — treat every count on this page as a measurement with a date, not a constant.

8. Small directory, priced accordingly. This is a 1,233-row universe, not a 72,000-row one. You are buying pre-qualification (100% fee-only CFP®s) and fields nobody else publishes (fee schedules), not bulk.


How it works, and the transport ladder

XYPN's directory is a plain JSON API — no key, no login, no CAPTCHA:

GET https://app.xyplanningnetwork.com/api/v1/find-an-advisor?page=<n>&perPage=30[&q=][&state=CA][&niches=]

The shuffle trap this Actor works around (it silently corrupts a naive scraper): the API returns a random permutation per session. Page 1 fetched twice with no cookie shares only 7/30 rows. The permutation is pinned by a session cookie — but the server rotates the cookie value on every response, and only the freshest value keeps the walk consistent. Measured on the full 42-page directory:

Cookie handlingResult
No cookie7/30 overlap on a page-1 repeat — heavy silent dupes and misses
First cookie value, reused794 unique + 439 duplicates (35.6%)
Cookie rotated per response (this Actor)1,233 unique, 0 duplicates — totalItems exactly

Each scope therefore walks sequentially, carrying the latest Set-Cookie forward. Two more contract details handled: perPage is server-clamped to 30 (asking for 100 echoes 30 back — honest, but asserted anyway), and items is null, not [], on a zero-match search.

Transport, measured through the Apify proxy rather than assumed (2026-08-15):

RungResult
Direct, no proxy (residential home line)42/42 full walk — reported, then ignored: no Apify container has a home IP
Apify datacenter, rotating IPs (default)19/20 sustained (95%) — the one miss was a proxy-side TLS disconnect, retried clean on a fresh IP; the pinning cookie survives IP rotation (0 dupes)
Apify datacenter, pinned session20/20 (100%), 600/600 unique
Apify RESIDENTIAL20/20 (100%) — no better, costs more
Production proof: the full directory through the datacenter proxy42/42 pages, 1,233/1,233 rows, 0 duplicates, one proxy-side abort auto-retried

robots.txt, fetched 2026-08-15: the API host app.xyplanningnetwork.com/robots.txt returns 404 (no rules published); the directory host connect.xyplanningnetwork.com/robots.txt opens with User-agent: * / Allow: / and disallows only HubSpot preview/preference paths, none of which this Actor touches. Pages are walked sequentially with a courtesy delay.


Uniqueness and deduplication

The dedupe key is slug — XYPN's stable profile id, the same one the profile URL is built from. Dedup happens before anything is pushed, so the dataset and your bill never hold the same advisor twice — including across multi-state runs, where an advisor serving two chosen states appears in both scopes and is billed once.

Measured: full unfiltered walk 2026-08-15 — 1,233 rows, 1,233 unique, 0 duplicates, an exact match to the API's own totalItems. Across separate runs, dedup is per-run: diff on slug after export.


When a run fails

Built to fail loudly rather than finish green on an empty dataset.

  • Zero rows throws, with pages fetched, rows dropped by your filters, and the filters themselves — there is no legitimate empty run.
  • An unrecognised niche throws before anything is billed, printing XYPN's live 128-value vocabulary (the Console drop-down makes this unreachable; it protects API callers).
  • A changed page contract throws (more rows than the clamped page size = a corrupted walk, stopped).
  • A mid-walk index shift warns with both numbers (walked vs reported) instead of silently under-delivering.

Who buys this

  • Wealthtech vendors — planning, portfolio, tax and CRM software. XYPN advisors are startup RIAs actively assembling a stack; feeModels[] tells you who runs subscription billing (476 monthly-fee practices) vs AUM.
  • Custodians and RIA platforms — the fee-only, virtual-first segment is exactly the book Altruist-class custodians compete for; statesServed[] maps reach, secFirmCrd joins to Form ADV for AUM.
  • Advisor recruiters and M&A — 1,233 independent fee-only CFP®s with firm names and IAPD join keys.
  • Email-enrichment pipelineswebsiteUrl on 83.7% + bookingUrl on 59.9% of rows; chain into an email-finder for outreach.
  • Consumer lead-gen marketplaces — the niche taxonomy (128 values: equity comp, FIRE, physicians, veterans…) is a ready-made matching layer.

Sibling Actors — which advisor dataset do you actually want

ActorUniverseRecordSizeEmail?The field only it has
XY Planning Scraper (this one)XYPN members: young, fee-only, virtual-firstCFP® individual + firm1,233NoPublished fee schedules + niches
NAPFA Advisor ScraperNAPFA, the fee-only associationIndividual + firm~4,000Yes ~65%Direct email
CFP Board ScraperEveryone holding the CFP® marks, any firmCertified individual72,207NoCRD on 97.6% + certification year
SEC Investment Adviser ScraperEvery SEC/state-registered adviser firmFirm (Form ADV)~45,500Firm-levelAUM, employees, disciplinary flags

Put plainly: CFP Board is the census, SEC IAPD is the regulator's firm register, NAPFA is the fee-only association with emails, and XYPN is the curated young fee-only segment with price lists. The four join on the CRD: this Actor emits secIndividualCrd and secFirmCrd precisely so you can hop between them without name-matching. Prospecting the next generation of independent RIAs? Start here — it is the smallest, cheapest, highest-signal list of the four.


FAQ

Does this need an account, login or API key? No. The XYPN directory API is public JSON. Nothing is collected from behind any authentication.

How many advisors can I get? All of them — 1,233 on 2026-08-15, a full enumeration verified against the API's own total, not a capped sample.

Can I get emails or phone numbers? No, and no XYPN export can — the source publishes neither. Use websiteUrl (83.7%) with an email-finder Actor, or the NAPFA sibling for direct emails.

Are these really all fee-only fiduciaries? XYPN membership requires a fee-for-service model, the fiduciary oath and the CFP® marks; every row measured carries CFP® in designations[]. The published fee schedule on 91.6% of rows is the receipt.

Why did my California run include a Denver advisor? Because the state filter means serves California (XYPN is virtual-first). Their home office is in state/city; their reach is statesServed[]. Filter the export on state === "CA" if you want headquarters only — that is 167 of the 379.

Two runs — will I get duplicates? Within a run, never (0 measured on the full walk, deduped on slug before billing). Across runs, yes — dedup on slug after export.

Will a run ever succeed with zero rows? No. Zero rows throws with the filters in play. There is no legitimate empty result.

Can I schedule it? Yes — the Schedules tab. The whole directory is $4.93, so a monthly full run + slug diff is the cheapest new-member tracker in the segment.


Changelog

VersionDateChange
0.12026-08-15First release. Full 1,233-row enumeration verified (0 dupes); shuffle-pinning cookie walk; state (51) and niche (128) drop-downs read from the live directory with measured counts; SEC CRD extraction incl. malformed-URL repair; field fill measured on the whole directory.

Last verified against the live source: 2026-08-15 — 1,233 advisors, full walk clean, vocabularies re-read, zero-edit run green.


This Actor exports public professional-directory information that XY Planning Network publishes so consumers can find and vet an advisor. It reads a public JSON endpoint; it does not log in, does not solve CAPTCHAs, and collects nothing behind authentication. Rows describe identifiable professionals in their business capacity. You are responsible for complying with XYPN's Terms of Use and with CAN-SPAM, TCPA, GDPR/CCPA and applicable privacy law when you contact them or store their data. CFP® and CERTIFIED FINANCIAL PLANNER™ are certification marks of CFP Board. This Actor is not affiliated with or endorsed by XY Planning Network.


Support

Found a missing field or want a new filter? Open an issue on the Issues tab — requests against fields XYPN already publishes are usually quick. If this Actor saved you time, a rating helps other buyers find it.


Keywords: XY Planning Network scraper · XYPN advisor directory · fee-only financial advisor list · flat fee financial advisor leads · advice-only planner list · virtual financial advisor directory · CFP advisor leads · financial planner fee comparison data · RIA lead list · wealthtech sales leads · advisor recruiting data · RIA M&A targets · financial advisor niches · equity compensation advisor · FIRE financial planner · SEC IAPD CRD lookup · fee-only fiduciary directory export · financial advisor database · subscription financial planning firms · XYPN member list