Overview
On top of the full synchronization (GET /freelances),
partners can query the Pylote pool on demand, in 2 stages:
- Stage 1 — Anonymized search (
POST /partners/search): your query is ranked by our matching engine. You receive partial, anonymized profiles: enough to assess relevance, nothing to identify or contact. - Stage 2 — Reveal (
POST /partners/reveal): given theidof a result, you receive the full profile (JSON Resume format, identical toGET /freelances). This is when the freelancer is notified of the view (aprofile_viewevent is emitted automatically on Pylote’s side).
Stage 1 — Search
keywords semantics
Filters and referential
Filters are exact matches (no typo tolerance): an out-of-referential value does not raise an error, it simply matches no profile. Fetch the accepted values from the publicPOST /referential endpoint:
Geography is filtered by mobility areas (regions, countries), not by zip code
- radius: map your target areas to our regions.
What a result contains
Each Stage 1 profile contains:id (the Stage 2 key), headline, summary,
location (city/region/country/zip), skills, languages, seniority, professions,
availability, work preferences, work history (titles, durations and
descriptions, without an employer field), and matchRank.
All free text (profile and mission summary) is redacted: emails, phone
numbers, URLs and the freelancer’s own name are removed. These are texts
written by the freelancer: a company name may occasionally appear in the prose.
matchRank is the profile’s absolute rank in the relevance ranking
(1 = best match). It is a real rank, not a percentage score.
What Stage 1 never contains: name, email (even proxied), phone, profile links
(resume, LinkedIn), structured employer field.
Stage 2 — Reveal a profile
recruiterEmailmust be in your whitelist. Otherwise: 404. This is what feeds the ” via ” line the freelancer sees in their stats.- The
profile_viewevent is emitted automatically: do not callPOST /partners/eventsfor the view itself. Keep it for granular actions (click_cv, click_linkedin, add_favorite…). - Contact goes through the Pylote proxy email and the tracked LinkedIn link of the revealed profile. Phone numbers are not exposed through the partner channel.
- An
opt_outrecruiter cannot reveal a profile (403): a reveal exposes contact details, which requires tracking.
Rate limiting
120 requests/minute per API key, across all routes. Beyond that:429.
One search = one request, whatever the limit.