Skip to main content
Three endpoints let your systems read roles as one of your agency’s members sees them. They need an agency key with agency_roles:read, and Paraform must have enabled external API access for your agency. They don’t depend on Talent Network.

Choose the member with recruiterEmail

Every call requires recruiterEmail: the email of a currently approved member of your agency. It selects whose permissions the read uses. It doesn’t authenticate anyone, because your key does that. Membership is re-checked on every request. If the email isn’t an approved member of your agency, the call answers 403.

List a member’s roles

GET /agency/roles returns the member’s approved roles, most recently updated first. Confidentiality filtering can make a page partial or even empty. Keep going until nextCursor is null. Approval on a role isn’t proof that a particular candidate can be submitted to it.

Search the marketplace

GET /agency/roles/search searches active roles with typo-tolerant matching and the member’s visibility rules.
  • Filters combine with AND. Repeat an array parameter (location, workplace, roleType, industry, techStack) to match any of up to 20 values.
  • Filter values must be the platform’s filter keys, listed on the reference page. Unknown parameters and invalid values are rejected with 400.
  • minSalary and maxSalary are annual whole currency units, compared in 1,000-unit steps without currency conversion.
  • Text searches are ordered by relevance. Without query, results are ordered by marketplace priority.
  • limit defaults to 20, maximum 50. Results are live, so pages can be shorter or empty. Continue while nextCursor is present.
Search excludes hidden or experimental roles the member can’t see, roles not accepting recruiters, and roles whose hiring manager isn’t reviewing. Appearing in search doesn’t grant a recruiting slot or permission to submit.

Read a role brief

GET /agency/roles/{roleId} returns the recruiter-facing brief: description, requirements, responsibilities, interview stages, submission questions, recruiting guidance, candidate targeting, and company information. The role doesn’t need to be in the member’s approved list. A role that’s missing or that the member can’t see returns 404.
includeIntakeTranscripts=true adds the intake-call transcripts the member is permitted to read, chosen by the role’s intake settings. It defaults to false, which omits the field. Permitted transcripts with no readable text come back as an empty array. Summaries never stand in for transcript text, and recording or playback URLs are never returned.

What these endpoints never return

Recruiter fees, rewards, commissions, and bonuses; candidate and application histories; company logos; hiring-manager contact details; and candidate calibration examples. Unknown or withheld fields are null, and withheld collections are empty.