Proxycurl shut down in July 2025 and the migration backlog has finally cleared for most teams. This post walks through the exact adapter pattern our early customers used to cut over in under an afternoon. We cover field mapping, retry behaviour, and the couple of places where LinkFetch's typed envelope is stricter than Proxycurl's.
The adapter pattern
Most production pipelines had a single fetchProfile(url) seam. Wrapping
LinkFetch behind that same signature means the rest of the codebase doesn't
need to change. Internally, LinkFetch returns a { data, provenance }
envelope instead of Proxycurl's flat JSON — the adapter discards
provenance on the public API (we never leak it to callers) and returns
data shaped to match the old contract.
Where the typed envelope is stricter
Proxycurl's occupation was a free-text string. LinkFetch decomposes it into
current_role and current_company separately, which catches the 8–12%
of profiles where the old string parse drifted. If your pipeline relied on
the concatenated form, reassemble it in the adapter — otherwise take the
split fields and delete the parser.
If you're mid-migration and hit a snag, email info@linkfetch.io with the field you're stuck on and we'll walk through it.
Not sure LinkFetch is the right Proxycurl replacement for your use case? The full comparison of Proxycurl alternatives covers all six viable options in 2026 — ranked by compliance posture, data freshness, and real per-call cost. Once you have picked a provider, the breakdown of true cost per enriched record in 2026 helps you verify the advertised per-call price reflects what you will actually pay at production volume.