Candidate accounts and talent

Build candidate profiles and resume import, then expose the permitted talent directory.

Build two deliberately separate experiences: a candidate’s private profile editor under board.me, and the board’s public or employer-only talent directory under board.talent.

Prerequisites

  • board.context().features.candidates is true for candidate accounts.
  • A server-owned board-user session for every board.me request.
  • features.talentDirectory checked before creating a talent route (!== 'off').

The examples expect a stateless server client and pass the access token per call.

Load and update the candidate profile

update is a merge patch: omitted fields remain unchanged. Check handle availability before submission for responsive feedback, but treat the update response as authoritative because availability can change.

For the candidate's location, use a board.locations.search picker and send the picked id as locationId, with commuteRadiusKm and openToRelocate next to it. Job matches use these to keep on-site and hybrid jobs within commuting distance. Show the distance in miles for a US or UK home and kilometres elsewhere; see Home location and commute distance.

Import a resume

Resume parsing is asynchronous. Upload once, then poll until parseStatus is parsed or failed.

Use replace_all only after an explicit confirmation. The SDK requires confirmReplaceAll: true for that destructive import mode.

Load the talent directory

Only public profiles appear. On an employers_only board, anonymous requests throw a 403 talent_directory_restricted; render an employer sign-in or upsell rather than pretending the directory is empty.

Expected result

The private account loader returns the signed-in candidate’s profile and parsed resume state. The talent loader returns only profiles visible to the current viewer, or no route when the directory is off.

Verify the result

  • Candidate profile responses never enter a shared cache.
  • A profile update returns the edited values from the server.
  • Resume import reaches parsed or shows the returned failure reason.
  • Hidden and logged-in-only profiles do not appear in anonymous talent reads.
  • An employers-only directory distinguishes 403 restricted access from 404 disabled access.

Production cautions

  • Stop polling when the request is aborted or the user leaves the page.
  • Keep short-lived resume download URLs out of logs and durable caches.
  • Do not expose board.me profile data through public loaders.
  • Treat jobSearchStatus: null in a talent profile as an intentional visibility outcome.

Next, let candidates act on jobs with Applications.