Pinpoint integration
Pinpoint is an applicant tracking and recruiting platform. List, read, create and update jobs, applications, candidates, job seekers, requisitions, comments, answers and custom attributes; read interviews, scorecards, hiring workflows, job postings, positions, questions, surveys, background checks, assessments, onboarding applications and reference checks; manage departments, divisions, locations, structure groups and links, custom fields and users. Authentication is an API key from Settings, API & Webhooks, API Keys (the Pinpoint API toggle must be on), sent in the X-API-KEY header to your account's subdomain host.
Say what should happen.
The workflow builds itself.
What you can do with Pinpoint
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Application, 5 operations
create_applicationCreate applicationPOSTCreates an application on a job and emails Application Received to the applicant and New Application to users, unless data.attributes.skip_notifications_on_create is true. Needs first_name, last_name, email and the job relationship.delete_applicationDelete applicationDELETEPermanently deletes one application by id (from list_applications). Pinpoint answers with an empty meta object.get_applicationGet applicationGETFetches one application by id (from list_applications). extra_fields[applications]=attachments adds its files (such as the CV); include adds related records in included.list_applicationsList applicationsGETLists job applications as JSON:API records in data. Applications to confidential jobs are left out unless filter[job_visibility] lists confidential. Page with page[number] and page[size].update_applicationUpdate applicationPUTUpdates one application by id (from list_applications), such as its details or stage: send data with the same id, type applications and only what changes. The summary, CV, job and answers cannot be changed here.
Custom attribute, 5 operations
create_custom_attributeCreate custom attributePOSTStores a custom field value on a record: set the custom_field and custom_attributable relationships and the one *_value attribute matching the field_type of the field. One value per field and record.delete_custom_attributeDelete custom attributeDELETEPermanently deletes one custom attribute by id (from list_custom_attributes). Pinpoint answers with an empty meta object.get_custom_attributeGet custom attributeGETFetches one custom attribute by id (from list_custom_attributes) as a JSON:API record in data; include adds related records in included.list_custom_attributesList custom attributesGETLists custom field values stored on a record (application, candidate, job, job seeker, offer...), as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_custom_attributeUpdate custom attributePUTChanges the value of one custom attribute by id (from list_custom_attributes): set the *_value attribute matching the field_type of its custom field. Its custom field and record cannot be changed.
Custom field, 5 operations
create_custom_fieldCreate custom fieldPOSTCreates a custom field definition: name, field_type, resource_type and sample_value are required, options too for single_select and multi_select fields.delete_custom_fieldDelete custom fieldDELETEPermanently deletes one custom field by id (from list_custom_fields). Pinpoint answers with an empty meta object.get_custom_fieldGet custom fieldGETFetches one custom field by id (from list_custom_fields) as a JSON:API record in data; include adds related records in included.list_custom_fieldsList custom fieldsGETLists custom field definitions (name, field type, resource type), as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_custom_fieldUpdate custom fieldPUTUpdates one custom field by id (from list_custom_fields): send data with the same id and type custom_fields and only what changes. Its field_type and resource_type cannot be changed.
Department, 5 operations
create_departmentCreate departmentPOSTCreates a department from data (type departments); name is required.delete_departmentDelete departmentDELETEPermanently deletes one department by id (from list_departments). Pinpoint answers with an empty meta object.get_departmentGet departmentGETFetches one department by id (from list_departments) as a JSON:API record in data; include adds related records in included.list_departmentsList departmentsGETLists departments, one layer of the organisation structure, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_departmentUpdate departmentPUTUpdates one department by id (from list_departments): send data with the same id and type departments and only the attributes and relationships to change.
Division, 5 operations
create_divisionCreate divisionPOSTCreates a division from data (type divisions); name is required.delete_divisionDelete divisionDELETEPermanently deletes one division by id (from list_divisions). Pinpoint answers with an empty meta object.get_divisionGet divisionGETFetches one division by id (from list_divisions) as a JSON:API record in data; include adds related records in included.list_divisionsList divisionsGETLists divisions, an optional layer of the organisation structure, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_divisionUpdate divisionPUTUpdates one division by id (from list_divisions): send data with the same id and type divisions and only the attributes and relationships to change.
Job, 5 operations
create_jobCreate jobPOSTCreates a job. Needs title, status, selected_hiring_workflow_id (list_hiring_workflows) and the structure_link relationship. Status open makes it accept applications at once and skips sign-off; pending_approval starts sign-off.delete_jobDelete jobDELETEPermanently deletes one job by id (from list_jobs). Pinpoint answers with an empty meta object.get_jobGet jobGETFetches one job by id (from list_jobs) as a JSON:API record in data; include adds related records in included.list_jobsList jobsGETLists jobs as JSON:API records in data. Confidential jobs are left out unless filter[visibility] lists confidential. Page with page[number] and page[size] (default 100, max 1000).update_jobUpdate jobPUTUpdates one job by id (from list_jobs): send data with the same id, type jobs and only what changes. Changing status to open makes it accept applications; users_emails_with_job_level_visibility replaces the whole list.
Job seeker, 5 operations
create_job_seekerCreate job seekerPOSTCreates a job seeker from a JSON:API record in data (type job_seekers, attributes, relationships); returns the created record.delete_job_seekerDelete job seekerDELETEPermanently deletes one job seeker by id (from list_job_seekers). Pinpoint answers with an empty meta object.get_job_seekerGet job seekerGETFetches one job seeker by id (from list_job_seekers) as a JSON:API record in data; include adds related records in included.list_job_seekersList job seekersGETLists job seekers in the talent pool, not tied to one job, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_job_seekerUpdate job seekerPUTUpdates one job seeker by id (from list_job_seekers): send data with the same id and type job_seekers and only the attributes and relationships to change.
Location, 5 operations
create_locationCreate locationPOSTCreates a location from data (type locations); name and country_code (ISO 3166 alpha-2) are required, street_address, city, province and postal_code optional.delete_locationDelete locationDELETEPermanently deletes one location by id (from list_locations). Pinpoint answers with an empty meta object.get_locationGet locationGETFetches one location by id (from list_locations) as a JSON:API record in data; include adds related records in included.list_locationsList locationsGETLists locations, a required layer of the organisation structure, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_locationUpdate locationPUTUpdates one location by id (from list_locations): send data with the same id and type locations and only the attributes and relationships to change.
Requisition, 5 operations
create_requisitionCreate requisitionPOSTCreates a requisition, already approved (no sign-off runs): relate a requisition_template and send requisition_details in included for every required template field (get_requisition_template with include).delete_requisitionDelete requisitionDELETEPermanently deletes one requisition by id (from list_requisitions). Pinpoint answers with an empty meta object.get_requisitionGet requisitionGETFetches one requisition by id (from list_requisitions) as a JSON:API record in data; include adds related records in included.list_requisitionsList requisitionsGETLists requisitions, requests to open a new job, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_requisitionUpdate requisitionPUTArchives one requisition by id (from list_requisitions) with attributes {"archive": true}; archiving cannot be undone. Its status and other details are not changed by this route.
Structure custom group one, 5 operations
create_structure_custom_group_oneCreate structure custom group onePOSTCreates a custom structure group from data (type structure_custom_group_ones); name is required.delete_structure_custom_group_oneDelete structure custom group oneDELETEPermanently deletes one structure custom group one by id (from list_structure_custom_group_ones). Pinpoint answers with an empty meta object.get_structure_custom_group_oneGet structure custom group oneGETFetches one structure custom group one by id (from list_structure_custom_group_ones) as a JSON:API record in data; include adds related records in included.list_structure_custom_group_onesList structure custom group onesGETLists custom structure groups, an optional fourth layer of the organisation structure, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_structure_custom_group_oneUpdate structure custom group onePUTUpdates one structure custom group one by id (from list_structure_custom_group_ones): send data with the same id and type structure_custom_group_ones and only the attributes and relationships to change.
Structure link, 5 operations
create_structure_linkCreate structure linkPOSTCreates a structure link joining a location and a department (plus a division and a custom structure group when your account uses them), the unit a job is assigned to.delete_structure_linkDelete structure linkDELETEPermanently deletes one structure link by id (from list_structure_links). A link still assigned to a job is refused with HTTP 409 until it is detached.get_structure_linkGet structure linkGETFetches one structure link by id (from list_structure_links) as a JSON:API record in data; include adds related records in included.list_structure_linksList structure linksGETLists structure links, the combinations of location, department and optional division and custom group a job is assigned to as JSON:API records in data. Page with page[number] and page[size]; filter[...] params narrow it.update_structure_linkUpdate structure linkPUTUpdates one structure link by id (from list_structure_links); only accepts_speculative_applications can change, its relationships cannot (create a new link instead).
User, 5 operations
create_userCreate userPOSTCreates a Pinpoint user: first_name, last_name, email and user_type (employee or recruiter) are required. No invitation email is sent unless send_invitation is true.delete_userDelete userDELETEPermanently deletes one user by id (from list_users). Pinpoint answers with an empty meta object.get_userGet userGETFetches one user by id (from list_users) as a JSON:API record in data; include adds related records in included.list_usersList usersGETLists Pinpoint users (employees and recruiters), as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_userUpdate userPUTUpdates one user by id (from list_users): send data with the same id, type users and only what changes. send_invitation true emails the user an invitation.
Answer, 4 operations
create_answerCreate answerPOSTAnswers a question for an application or job seeker: set the question and answerable relationships and the answer attribute that matches the question type (text_answer, boolean_answer, date_answer...).delete_answerDelete answerDELETEPermanently deletes one answer by id (from an application or job seeker read with include=answers). Pinpoint answers with an empty meta object.get_answerGet answerGETFetches one answer by id (from an application or job seeker read with include=answers) as a JSON:API record in data; include adds related records in included.update_answerUpdate answerPUTUpdates one answer by id (from an application or job seeker read with include=answers): send data with the same id and type answers and the new value. Its question and answerable cannot change.
Background check, 4 operations
create_background_checkCreate background checkPOSTRecords a background check run in an external provider on an application (application relationship); meant for provider integrations, it does not itself order a check. Test with provider_code example_check.get_background_checkGet background checkGETFetches one background check by id (from list_background_checks) as a JSON:API record in data; include adds related records in included.list_background_checksList background checksGETLists records of background check requests made in integrated external providers, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_background_checkUpdate background checkPUTUpdates the status or result of one background check record by id (from list_background_checks), as a provider integration does when the external check progresses.
Candidate assessment, 4 operations
create_candidate_assessmentCreate candidate assessmentPOSTRecords an assessment run in an external provider on an application (application relationship); meant for provider integrations, it does not itself send an assessment. Test with provider_code example_assessment.get_candidate_assessmentGet candidate assessmentGETFetches one candidate assessment by id (from list_candidate_assessments) as a JSON:API record in data; include adds related records in included.list_candidate_assessmentsList candidate assessmentsGETLists records of assessment requests made in integrated external providers, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_candidate_assessmentUpdate candidate assessmentPUTUpdates the status or result of one candidate assessment record by id (from list_candidate_assessments), as a provider integration does when the external assessment progresses.
Comment, 4 operations
create_commentCreate commentPOSTAdds a comment (body_text) to an application, job seeker or candidate (commentable relationship), posted as the company system user; Pinpoint notifies relevant users. Mentions cannot be added through the API.delete_commentDelete commentDELETEPermanently deletes one comment by id (from list_comments). Pinpoint answers with an empty meta object.get_commentGet commentGETFetches one comment by id (from list_comments) as a JSON:API record in data; include adds related records in included.list_commentsList commentsGETLists comments left on applications, job seekers or candidates, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Candidate, 3 operations
get_candidateGet candidateGETFetches one candidate by id (from list_candidates) as a JSON:API record in data; include adds related records in included.list_candidatesList candidatesGETLists candidate people, each linked to their applications and job seeker records, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_candidateUpdate candidatePUTUpdates one candidate by id (from list_candidates): send data with the same id, type candidates and only what changes; custom attributes are created through included (temp-id, method create).
Interview, 3 operations
get_interviewGet interviewGETFetches one interview by id (from list_interviews) as a JSON:API record in data; include adds related records in included.list_interviewsList interviewsGETLists scheduled interviews of applications or job seekers, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.update_interviewUpdate interviewPUTUpdates the summary of one interview by id (from list_interviews), the only attribute that can change, as HTML with a limited set of allowed tags.
Structured section response, 3 operations
create_structured_section_responseCreate structured section responsePOSTCreates a response to a structured section (such as one work history entry) for an application or job seeker: structured_section and answerable relationships are required, answers go in included.delete_structured_section_responseDelete structured section responseDELETEPermanently deletes one structured section response by id (from an application or job seeker read with include=structured_section_responses).update_structured_section_responseUpdate structured section responsePUTUpdates one structured section response by id (from an application or job seeker read with include=structured_section_responses): send data with the same id and only the relationships to change.
Access group, 2 operations
get_access_groupGet access groupGETFetches one access group by id (from list_access_groups) as a JSON:API record in data; include adds related records in included.list_access_groupsList access groupsGETLists permission groups that set what a Pinpoint user can see and do, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Candidate survey, 2 operations
get_candidate_surveyGet candidate surveyGETFetches one candidate survey by id (from list_candidate_surveys) as a JSON:API record in data; include adds related records in included.list_candidate_surveysList candidate surveysGETLists candidate experience surveys sent after a candidate is hired or rejected, answered or not (filter[responded]=true keeps answered ones), with rating (1 to 10) and comment. Page with page[number] and page[size].
Equality monitoring category, 2 operations
get_equality_monitoring_categoryGet equality monitoring categoryGETFetches one equality monitoring category by id (from list_equality_monitoring_categories) as a JSON:API record in data; include adds related records in included.list_equality_monitoring_categoriesList equality monitoring categoriesGETLists equality monitoring question categories and their options, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Hiring workflow, 2 operations
get_hiring_workflowGet hiring workflowGETFetches one hiring workflow by id (from list_hiring_workflows) as a JSON:API record in data; include adds related records in included.list_hiring_workflowsList hiring workflowsGETLists hiring workflows (the stage sets a job can use), as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Job posting, 2 operations
get_job_postingGet job postingGETFetches one job posting by id (from list_job_postings) as a JSON:API record in data; include adds related records in included.list_job_postingsList job postingsGETLists job postings, where a job is advertised and applied through, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Onboarding application, 2 operations
get_onboarding_applicationGet onboarding applicationGETFetches one onboarding application by id (from list_onboarding_applications); include=onboarding_answers adds its answers in included (uploaded files, images and e-signatures are left out).list_onboarding_applicationsList onboarding applicationsGETLists onboarding processes of hired applications with their status; include=onboarding_answers adds the answers (uploaded files, images and e-signatures are left out). Page with page[number] and page[size] (default 100, max 1000).
One way video interview, 2 operations
get_one_way_video_interviewGet one way video interviewGETFetches one one way video interview by id (from list_one_way_video_interviews) as a JSON:API record in data; include adds related records in included.list_one_way_video_interviewsList one way video interviewsGETLists one way video interviews sent to candidates, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Position, 2 operations
get_positionGet positionGETFetches one position by id (from list_positions) as a JSON:API record in data; include adds related records in included.list_positionsList positionsGETLists positions, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Quality of hire survey, 2 operations
get_quality_of_hire_surveyGet quality of hire surveyGETFetches one quality of hire survey by id (from list_quality_of_hire_surveys) as a JSON:API record in data; include adds related records in included.list_quality_of_hire_surveysList quality of hire surveysGETLists quality of hire surveys, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Reference check, 2 operations
get_reference_checkGet reference checkGETFetches one reference check by id (from list_reference_checks) as a JSON:API record in data; include adds related records in included.list_reference_checksList reference checksGETLists reference checks, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Requisition template, 2 operations
get_requisition_templateGet requisition templateGETFetches one requisition template by id (from list_requisition_templates) as a JSON:API record in data; include adds related records in included.list_requisition_templatesList requisition templatesGETLists requisition templates (include requisition_template_fields to see the fields a requisition must answer), as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Scorecard, 2 operations
get_scorecardGet scorecardGETFetches one scorecard by id (from list_scorecards) as a JSON:API record in data; include adds related records in included.list_scorecardsList scorecardsGETLists interview scorecards, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Structured section, 2 operations
get_structured_sectionGet structured sectionGETFetches one structured section by id (from list_structured_sections) as a JSON:API record in data; include adds related records in included.list_structured_sectionsList structured sectionsGETLists structured sections of application forms (repeating groups such as work history), as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Job template, 1 operation
list_job_templatesList job templatesGETLists job templates, as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Question, 1 operation
list_questionsList questionsGETLists job application questions (include=conditional_questions adds follow-up questions), as JSON:API records in data. Page with page[number] and page[size] (default 100, max 1000); filter[...] params narrow it.
Use Pinpoint from Claude Code, Cursor or Codex
Connect Pinpoint in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Pinpoint operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Pinpoint
- Create your workspace
Sign up free. Nothing to install.
- Connect Pinpoint once
Add your Pinpoint connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Pinpoint integration FAQ
What can you do with the Pinpoint integration?
LiveContext exposes 113 operations on Pinpoint, covering application, custom attribute, custom field and department.
