Input
sortField: "history" is not a true activity sort: the page is selected by talent creation date (talent.createdAt, in the requested sortOrder), then the candidates of that page are re-ordered in memory by their latest outreach activity (with desc, candidates without any activity come first, then the most recent activity first). To find who replied, read replyStatus on each item rather than relying on this sort.
Response
Each item is{ candidate, talent, lastActivityAt, lastActivityDirection, lastActivityChannel, lastActivityContent, replyStatus }.
Outreach activity
The latest outreach activity between the talent and the user who owns the API key, aggregated across every channel (LinkedIn, email, WhatsApp, SMS) and across legacy and dynamic sequences. This is the same scope as the candidates table this user sees in Kalent: messages and invitations sent by other members of the workspace are not taken into account.get_candidate returns the same fields with the same values.
replyStatus stays REPLIED even if a follow-up was sent after the talent replied (lastActivityDirection then becomes OUTBOUND). An accepted LinkedIn invitation counts as an inbound activity but not as a reply.

