Skip to main content
Two read endpoints let your CRM mirror talent-network membership without submitting anything. Both need talent_network:read, which every agency key carries. Both endpoints only ever return your own agency’s candidates. A candidate who is in the talent network through a different agency looks exactly like someone who isn’t in the network at all.

List your members

GET /talent-network/candidates returns every candidate your agency has in the network. It’s the same set your team sees on the in-app Talent Network tab, whether they entered by direct submission (directlySubmittedAt is set) or through a role submission (hasRoleSubmission is true).
Each row has candidateUserId, name, email, linkedinUrl, and a status:
  • on_market: ParaAI is actively considering the candidate. daysRemaining counts down the eligibility window and expiresAt is when it ends.
  • off_market: still in your network but not being considered. daysRemaining and expiresAt are null.

Filters

All filters are optional and combine. ?status=on_market&daysRemainingMax=7 is everyone about to fall off the market this week. Only on-market candidates have a daysRemaining, so these combinations return 400 instead of an empty page:
  • a days bound together with status=off_market
  • a daysRemainingMin greater than daysRemainingMax

Paging

Pass nextCursor back as cursor until it’s absent (limit defaults to 50, maximum 100). The walk is stable: it visits every candidate that existed when it started exactly once, even while your team keeps submitting. See Pagination. A candidate is listed through the agency member who owns them, and only while that member is an approved member of your agency. If the owning recruiter is deactivated or leaves, the candidate leaves this list too.

Pre-flight a bulk submit

POST /talent-network/candidates/lookup answers, for up to 500 identities at once, whether each is already in your network.
results is aligned by index with identities. Each result has inNetwork and, when it’s true, candidateUserId, status, and daysRemaining.
  • Each identity needs email, linkedinUrl, or both. When both are given, LinkedIn is matched first and wins, the same rule submission deduplication uses. So inNetwork: false means a submit would create new work.
  • Values are never rejected. An unparseable URL or unknown email just answers inNetwork: false.
  • Duplicate identities in one request get the same answer.
  • In rare cases a stored handle differs from yours only by letter case, and lookup answers false for a candidate a submit would deduplicate. Resubmitting is always safe.
Lookup only reads. It never creates or changes anything and ignores Idempotency-Key.