Skip to main content
Two partner obligations, of a different nature:

1. Whitelist: essential for recruiter-freelancer contact

Why it is essential

Pylote protects freelancers’ identity: their real email is never exposed. Every profile returned by GET /freelances has a proxy email at @freelance.pylote.io. For the proxy to work both ways, the recruiter must also have a proxy email. Pylote generates one when you whitelist them: lutessa.marieg@recruiter.pylote.io. This pair of proxy emails is what enables:
  • The recruiter to send an email to the freelancer (relayed by Pylote)
  • The freelancer to reply (relayed the other way)
  • Pylote to measure interactions in the freelancer’s dashboard
Without whitelisting, the recruiter simply cannot reach Pylote freelancers. No message will get through, the proxy email does not exist.Whitelist every recruiter on your platform as soon as they access Pylote profiles.

Initial setup: whitelist all your recruiters at once

At onboarding, you probably already have dozens (or even hundreds) of recruiters on your platform. Rather than making N single calls, use POST /partners/whitelist/batch which accepts up to 500 per call.
Response (partial success possible - one recruiter in error does not fail the others):

Ongoing: whitelist a new recruiter

For each new recruiter later added to your platform, the single endpoint:
Response:
The company field must be the recruiter’s company (e.g. “Lutessa”), not yours (e.g. “Agrega”). This is the name shown in the freelancer’s dashboard.

2. Tracking: contractual obligation

Why it is mandatory

Pylote offers freelancers a visibility feature: they see in real time which companies view their profile, with which keywords and which actions. It is a premium feature and a major conversion lever for Pylote. Without partner tracking, freelancers see nothing of the views going through your platform - which degrades the product experience and the value of Pylote.
Tracking is a contractual commitment. Any partner using the Pylote API commits to reporting every recruiter interaction via POST /partners/events.Failure to comply may result in suspension of API access.

What the freelancer sees

When a Lutessa recruiter views a profile via Agrega, the freelancer sees in their dashboard:

Events to track

Every recruiter-freelancer interaction must trigger a call to POST /partners/events.
At a minimum, profile_view, click_cv and click_linkedin must be tracked. The click_phone, click_email and add_favorite events are also expected if those actions are available on your platform.

Sending an event

Response:

Implementation example (Node.js)

Full flow

Deletion obligations

In addition to tracking, you must delete deleted profiles from your database within 30 days of receiving the deletion status. When GET /freelances returns a profile with meta.status: "deleted":
  1. Delete the profile from your database
  2. Delete all associated data (cached CV, notes, etc.)
  3. Keep only the ID to avoid re-importing the profile
The 30-day deadline is contractual. Beyond it, Pylote reserves the right to suspend API access.
The deletion statuses are:
  • account_deleted - the freelancer deleted their account
  • account_banned - account banned by Pylote
  • account_excluded - account excluded
  • account_invisible - profile made invisible
Use the GET /freelances/deleted-freelances route to fetch the full list of profiles to delete if you missed some syncs.

Data destruction on termination

If the partnership agreement is terminated (for any reason whatsoever):
  1. Your API key will be revoked on the effective date of termination
  2. You must stop all use of the API immediately
  3. You must destroy all data obtained from the API stored in your systems
Exception: data already integrated into the profiles of your recruiter clients and processed under their own responsibility is not subject to this destruction obligation.