/company/{id}/position/{id}/candidate/{id}/stream

Returns the candidate's activity stream on the position — a chronological array of StreamActivity events (e.g. stage moves, notes, interviews, questionnaire activity), each with a type, timestamp, first_of_day flag, and an object payload whose shape varies by event type. To add a note to the stream, use the corresponding POST on this same endpoint.

Pages hold 50 records; retrieve the full history with the skip query parameter (skip=50 for the second page, and so on). The stream's oldest record is flagged with first_activity: true, so a page containing it is the final page.

Switch on type before reading object. Most payloads share a common base — acting_user, candidate_id, company_id, position_id, and candidate/company/position snapshots — and add the fields listed below. Skip any type you do not recognize; new ones are added over time.

typeFires whenAdds to the base payload
candidateAddedCandidate is created on the position—
candidateStatusUpdatedCandidate changes pipeline stage or statusstage, stage_was, status, status_was, entered_stage, entered_previous_stage
candidateMovedCandidate is moved to another positionposition_was, position_id_was
candidateMergedCandidate profiles are mergedmerge, merged_date, position_was, errors
candidateArchivedCandidate is archived or restoredarchived, archived_by
candidateAssignedPostedCandidate is assigned to a team membermember
candidateSalaryUpdatedSalary expectation changessalary, salary_was
companyNotePostedAn internal note is postedbody, attachments, mentioned_ids
candidateInterviewAddedAn interview is scheduledinterview
candidateInterviewCancelAn interview is cancelledinterview
candidatePanelInterviewAddedA panel interview is scheduledpanel_interview
candidateMeetingTimesProposedInterview times are proposed to the candidateproposal
candidateDocumentAddedA document is attachedfile_name, file_url, file_size, creation_date
candidateDocumentDeletedA document is removedfile_name, file_url, file_size, creation_date
candidateEDocumentCompletedAn e-signature document is fully signedsignatures, signature_template, template_id
candidateAssessmentSentAn assessment is sentassessment, service_name, sent_by
candidateAssessmentCompletedAn assessment result returnsassessment, service_name, completed_date
questionnaireToCandidatePostedA questionnaire is sentname, status, questions, sent_by
questionnaireResponsePostedThe candidate submits a questionnairequestionnaire
candidateReferrerAddedA referrer is recordedreferrer
candidateReferrerUpdatedThe referrer changesreferrer, referrer_was
candidateReferrerRemovedThe referrer is clearedreferrer_was
candidateSourcingMatchedSourcing matches the candidate to a positionsourcing_result_id, target_position_id, overall_score, recommendation
candidateSourcingReachedOutSourcing outreach is sentsourcing_result_id, target_position_id, message
candidateSourcingDeclinedSourced candidate declinessourcing_result_id, target_position_id
candidateSourcingInvitedSourced candidate is invitedsourcing_result_id, source, imported_candidate_id
candidateSourcingImportedSourced candidate is importedsourcing_result_id, source, source_candidate_id
linkedInCandidateSyncA LinkedIn sync runsDoes not use the base payload — only candidate_id, company, status, errors
breezy_onboardingCreateEmployeeCandidate is pushed to Breezy OnboardingDoes not use the base payload — only candidate
companyBlockedCandidateAn email address is blockedDoes not use the base payload — candidate_email, blocked_candidate, no position context
companyUnblockedCandidateAn email address is unblockedDoes not use the base payload — candidate_email, blocked_candidate, candidate_data

Permissions affect which types you receive. The full set above requires the View candidate activity permission, held by Administrators and Hiring Managers by default. A token for a user without it receives only candidateMerged, candidateAdded, candidateAssignedPosted, candidateInterviewAdded, candidateInterviewCancel, candidateMeetingTimesProposed, candidatePanelInterviewAdded, candidateStatusUpdated, candidateMoved, companyNotePosted, candidateArchived, and the block/unblock pair. candidateSalaryUpdated additionally requires View candidate contact details. Many of the remaining types only occur if the company uses that feature, so most integrations see fewer than a dozen in practice.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required
string
required
string
required
Query Params
integer
≥ 0
Defaults to 0

Number of records to skip, for pagination. Values above 10000 are clamped.

Response

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json