add_candidate_note
ChatGPTAppend a note to a candidate's application. Use it when the recruiter dictates an observation they want on the record. The note is added below whatever is already there; nothing existing is replaced, and nothing is sent to the candidate.
add_candidate_to_job
ChatGPTPut a candidate who is already in the talent base onto a role's pipeline. Reversible in the product, and nobody is contacted. Use find_candidates to find the candidate id first. This only adds them to the role; use move_candidate_stage to move someone already on it.
call_candidate
ChatGPTPlace an AI screening call to a candidate, right now — the same action as Call Now in NeoTOD. This rings a real person's phone and cannot be undone, so ALWAYS confirm with the recruiter who you are about to call and on which number before using it. The candidate must already be on the role. Do not use it to reach several people in a row unless the recruiter asked for each one by name.
create_job
ChatGPTCreate a new hiring role. Needs a title and the business unit it belongs to — call list_business_units first for the unit id. Nobody is contacted and the role is not published to the careers site; it appears in NeoTOD for the recruiter to finish. Screening questions, the interview pipeline and assessments are NOT set here — say so, and point the recruiter at the role in NeoTOD to configure them.
find_candidates
ChatGPTSearch the organization's talent base by name, headline, location or tag, and return the candidate ids other tools need. Matches on text, not meaning: 'support agent' finds people whose profile says that, and will not infer it from an unrelated job history. For a full job-description match against every resume, the recruiter should use AI Search in NeoTOD, which is not available through this connection.
get_candidate_in_job
ChatGPTEverything known about one candidate's application to one role: their profile, where they are in the process, their scores, and the notes already on the record. Use it before answering a question about a specific person, rather than guessing from the pipeline summary.
get_dashboard
ChatGPTThe organization's current hiring numbers and what needs attention. Use it to answer 'how are we doing', 'what should I look at first' or 'how many roles are open'. Read the field names carefully: the totals are current counts, interviewsCompletedLast30Days covers only the last 30 days, and trendVsPreviousMonth compares how many were NEWLY CREATED in the last 30 days against the 30 before it — it is not the change in the totals, so do not report it as one. interviewsToday counts only the interviews still expected today — scheduled, joining, waiting or in progress — so it is normally lower than list_calendar_events(days=1), which covers the same day but counts every status including finished and cancelled ones. Do not try to reconcile the two. Figures cover what the signed-in recruiter can see, so a vendor sees their own submissions rather than the whole company's.
get_job
ChatGPTFull detail for one role: the job description, seniority, location, experience range, and the pipeline stages this role uses. Use it when the user asks what a role involves or whether someone fits it, and before move_candidate_stage to see which stages exist. Get the job id from list_jobs first.
get_job_pipeline
ChatGPTEvery candidate on one role, grouped by the stage they are in, with their scores. This answers most of what a recruiter wants to know in a morning: who is waiting, who is stuck, who is ready to move. Get the job id from list_jobs first.
list_business_units
ChatGPTList the business units in this organization. Every role belongs to one, so call this before create_job to get the unit id. Returns only the units the signed-in recruiter can see.
list_calendar_events
ChatGPTInterviews, AI screening calls and candidate bookings in a date window, earliest first. Use it for 'what have I got tomorrow', 'what is on this week' or 'is anything booked for that role'. Dates are whole days in UTC, so days=1 means today only. If your access is limited to particular roles you must name one; an administrator may omit it to see the whole organization. Open slots nobody has booked are not included.
list_candidate_tags
ChatGPTThe organization's candidate tags. Call this before tag_candidate so you use a tag that exists rather than inventing a new spelling of one.
list_interviews
ChatGPTInterviews for this organization, newest first, with who they are with, when, for which role, the outcome and the score if one exists. Includes AI screening calls as well as video interviews. Use it for questions like 'what have I got this week' or 'how did the interviews for the support role go'. Filter by role using a job id from list_jobs. If your access is limited to particular roles you must name one.
list_jobs
ChatGPTList the hiring roles in this organization, with how many candidates are in each. Start here when the user asks what they are hiring for, or when another tool needs a job id. Returns the roles the signed-in recruiter is allowed to see, which may be fewer than the organization has in total.
move_candidate_stage
ChatGPTMove one candidate to a different stage on a role's pipeline — the same move as dragging their card in NeoTOD. Call get_job first for the stage names this role actually has; they are configured per role and are not a fixed list. For most organizations the move is silent. For an organization that has switched on stage automation, moving someone into an automated stage sends them a WhatsApp message or places a screening call, so confirm with the recruiter before moving anyone there.
tag_candidate
ChatGPTAdd a candidate to one of the organization's named lists, e.g. 'shortlisted' or 'silver medallist'. Tags are how a recruiter finds a group again later. Reversible, and the candidate is never told. Only tags that already exist can be used — list_candidate_tags shows them.