ATS
Pinpoint
API integration
Ship ATS features without building the integration. Full Pinpoint API access via Proxy, normalized data through Unified APIs, and 80+ MCP-ready tools for AI agents — all extensible to your exact use case.
Talk to usUse Cases
Why integrate with Pinpoint
Common scenarios for SaaS companies building Pinpoint integrations for their customers.
Sync hired candidates into your HRIS or payroll platform
HRIS and payroll SaaS companies can pull candidate and application data from Pinpoint the moment a hire is finalized, automatically creating employee records without manual re-entry. Using Truto's Unified ATS API, you read candidates, applications, jobs, departments, and locations to populate your system with accurate, structured data.
Trigger background checks on pipeline stage changes
Background screening platforms can monitor Pinpoint applications, pull candidate PII when a check is needed, and write results back as custom attributes or comments. Truto handles auth and pagination so your team focuses on the screening logic, not API plumbing.
Distribute jobs from Pinpoint to external talent marketplaces
Job distribution and AI sourcing tools can list all open Pinpoint jobs along with their departments and locations, then push matched candidates back as new applications. This lets your customers source talent from your platform directly into their ATS without switching tabs.
Inject assessment scores and interview insights into Pinpoint
Skills assessment and video interviewing platforms can update interview summaries with rich HTML content and write custom attributes back to candidate or application records. Hiring managers see your product's output natively inside Pinpoint's UI.
Automate IT provisioning from offer acceptance data
IT onboarding platforms can read accepted candidates' details, job information, and office locations from Pinpoint to provision hardware, software licenses, and workspace access before day one — eliminating manual handoffs between HR and IT.
What You Can Build
Ship these features with Truto + Pinpoint
Concrete product features your team can ship faster by leveraging Truto’s Pinpoint integration instead of building from scratch.
One-click candidate import from sourcing to Pinpoint
Create applications and attach parsed resumes directly into Pinpoint jobs using create_a_pinpoint_application, mapping candidates to the correct role, department, and location automatically.
Real-time org structure sync
Pull Pinpoint's departments, locations, divisions, and jobs via the Unified ATS API to keep your product's organizational hierarchy in lockstep with your customer's ATS configuration.
Custom attribute writeback for external scores and statuses
Use create_a_pinpoint_custom_attribute and update endpoints to push assessment results, screening statuses, or proprietary scores back into Pinpoint so they display natively on candidate profiles.
Interview summary enrichment with AI-generated notes
Update Pinpoint interview records via update_a_pinpoint_interview_by_id to inject HTML-formatted transcription summaries, AI-generated highlights, or external meeting links directly into the hiring manager's view.
Candidate activity feed via comments
Post timestamped comments to Pinpoint using create_a_pinpoint_comment, giving recruiters a running log of actions taken in your platform — like completed assessments or reference check milestones — without leaving Pinpoint.
Scorecard and survey analytics dashboard
Read scorecards and candidate surveys via list_all_pinpoint_scorecards and list_all_pinpoint_candidate_surveys to power hiring quality analytics and candidate experience reporting inside your product.
SuperAI
Pinpoint AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_pinpoint_users
List users in Pinpoint. Returns id, created_at, email, first_name, last_name, time_zone, and updated_at fields for each user in the response.
get_single_pinpoint_user_by_id
Get details for a specific user in Pinpoint. Requires id. Returns fields such as id, created_at, email, first_name, last_name, time_zone, and updated_at in the response.
delete_a_pinpoint_user_by_id
Delete a user in Pinpoint. Requires id. Returns meta information about the deletion in the response.
create_a_pinpoint_user
Create a user in Pinpoint. Requires first_name, last_name, email, and user_type. Returns user id, type, created_at, updated_at, email, first_name, last_name, and time_zone in the response.
list_all_pinpoint_access_groups
List all access groups in Pinpoint. Returns id, type, created_at, description, create_as_referral, name, number_of_roles, updated_at, wizard_enabled, wizard_requirements, and roles relationships in the response.
get_single_pinpoint_access_group_by_id
Get details for a specific access group in Pinpoint using id. Returns id, type, attributes (created_at, description, create_as_referral, name, number_of_roles, updated_at, wizard_enabled, wizard_requirements), and relationships (roles).
get_single_pinpoint_answer_by_id
Get an answer in Pinpoint by id. Returns fields such as id, title, additional_information, boolean_answer, number_answer, question_type, date_answer, url_answer, multiple_choice_answer, created_at, updated_at, relationships, and more.
create_a_pinpoint_answer
Create an answer in Pinpoint. Requires answerable and question relationships, plus required attributes depending on question type. Returns id, attributes such as title, boolean_answer, number_answer, text_answer, date_answer, url_answer, date_from_answer, date_to_answer, multiple_choice_answer, document_answer, attachments, question_type, and created_at/updated_at.
update_a_pinpoint_answer_by_id
Update an answer in Pinpoint by id. The fields returned in the response include id, type, attributes (such as title, boolean_answer, number_answer, date_answer, url_answer, text_answer, created_at, updated_at), and relationships. answerable and question cannot be updated via this endpoint.
delete_a_pinpoint_answer_by_id
Delete an answer in Pinpoint by id. Returns meta-information in the response.
list_all_pinpoint_applications
List applications in Pinpoint. Returns id, type, attributes (such as created_at, candidate_id, hired_at, internal_candidate, job_id, stage_id, contact details, and more), and relationships (job, stage, candidate, offers, etc.). Confidential jobs are excluded unless 'confidential' is included in the filter[job_visibility] parameter.
get_single_pinpoint_application_by_id
Get application details in Pinpoint using id. Returns fields such as created_at, updated_at, candidate_id, job_id, full_name, status dates, tags, and related resources in response. Confidential jobs are excluded by default.
create_a_pinpoint_application
Create an application in Pinpoint. Requires first_name, last_name, email, and job relationship. Returns id, candidate_id, job_id, stage_id, and created_at fields in the response.
update_a_pinpoint_application_by_id
Update an existing application in Pinpoint using its id. Returns updated fields such as first_name, last_name, email, phone, date_of_birth, linkedin_url, locale, and relationships like stage and candidate. Summary, résumé, job, and answers cannot be modified.
delete_a_pinpoint_application_by_id
Delete an existing application in Pinpoint using the required id. Returns meta information confirming the deletion in the response.
list_all_pinpoint_candidates
List candidates in Pinpoint. Returns id, address1, address2, country, date_of_birth, email, first_name, full_name, last_name, middle_name, locale, phone, phone_iso2, postcode, town, created_at, updated_at, and relationships in the response.
get_single_pinpoint_candidate_by_id
Get a specific candidate in Pinpoint by id. Returns candidate fields including id, full_name, email, address, date_of_birth, created_at, updated_at, and key relationships such as applications and skills.
update_a_pinpoint_candidate_by_id
Update a candidate in Pinpoint using id. Allows adding or updating custom_attributes and attaching documents via documents_base64. Returns candidate details including address, email, name, and related applications, skills, and custom_attributes.
list_all_pinpoint_departments
List departments in Pinpoint. Returns a list of departments with key fields: id, name, created_at, updated_at in the response.
get_single_pinpoint_department_by_id
Get information about a specific department in Pinpoint using id. Returns id, type, and attributes including created_at, name, and updated_at.
create_a_pinpoint_department
Create a new department in Pinpoint. Requires name. Returns id, name, created_at, and updated_at in the response.
update_a_pinpoint_department_by_id
Update a department in Pinpoint using id. Returns department details with fields id, name, created_at, and updated_at.
delete_a_pinpoint_department_by_id
Delete a specific department in Pinpoint using id. Returns meta object containing non-standard metadata about the operation result.
list_all_pinpoint_interviews
List interviews in Pinpoint. Returns for each interview: id, start_at, end_at, interviewable_id, interviewable_type, created_at, updated_at, status, summary, presence, and their relationships.
get_single_pinpoint_interview_by_id
Get interview details in Pinpoint. Requires id. Returns fields such as id, start_at, end_at, interviewable_id, interviewable_type, created_at, updated_at, status, summary, presence, and related resource objects in response.
update_a_pinpoint_interview_by_id
Update an existing interview in Pinpoint by id. Only the summary field can be updated and must be in HTML format using specific allowed elements. Returns interview details including start_at, end_at, status, and summary.
list_all_pinpoint_jobs
List jobs in Pinpoint. Returns id, type, attributes (such as title, description, compensation, status), and relationships fields for each job. Confidential jobs are excluded by default unless 'confidential' is specified in filter[visibility].
get_single_pinpoint_job_by_id
Get details about a specific job in Pinpoint using id. Returns key job fields such as title, description, compensation, status, required candidate information, responsibilities, benefits, and relationships.
create_a_pinpoint_job
Create a new job in Pinpoint. Requires title, status, selected_hiring_workflow_id, and structure_link. Returns job id, title, status, visibility, employment_type, and created_at in the response.
update_a_pinpoint_job_by_id
Update a specific job in Pinpoint using job id. Returns job attributes including title, description, employment_type, compensation details, and relationships such as department, division, and location.
delete_a_pinpoint_job_by_id
Delete a specific job in Pinpoint. Requires id. Returns meta object in the response with non-standard meta-information about the deletion result.
list_all_pinpoint_job_seekers
List job seekers in Pinpoint. Returns id, candidate_id, first_name, last_name, full_name, email, phone, date_of_birth, summary, created_at, updated_at, locale, channel, channel_source, pipeline_source, address1, address2, town, country, postcode, and key relationships in the response.
get_single_pinpoint_job_seeker_by_id
Get a specific job-seekers resource in Pinpoint using id. Returns job seeker fields such as candidate_id, first_name, last_name, email, phone, summary, created_at, as well as relationships to answers, candidate, comments, custom_attributes, and structured_section_responses.
list_all_pinpoint_requisitions
List requisitions in Pinpoint. Returns an array with fields such as id, name, requisition_template_id, identifier, job_id, creator_id, status, created_at, and updated_at in the response.
get_single_pinpoint_requisition_by_id
Get requisition details in Pinpoint by id. Returns fields such as id, requisition_template_id, name, identifier, job_id, creator_id, status, created_at, updated_at, and relationship data in the response.
create_a_pinpoint_requisition
Create a new requisition in Pinpoint. Requires a relationship to requisition_template. Returns id, name, identifier, status, creator_id, requisition_template_id, and timestamps. Created requisitions are auto-approved and cannot extend job headcount.
update_a_pinpoint_requisition_by_id
Archive a specific requisition in Pinpoint. Requires id. Archives requisition by setting 'archive': true. Returns requisition details including id, name, identifier, status, creator_id, and timestamps.
delete_a_pinpoint_requisition_by_id
Delete a specific requisition in Pinpoint by id. Returns a meta object confirming the deletion. Requires id.
list_all_pinpoint_positions
List positions in Pinpoint. Returns id, type, attributes such as archived_at, discarded_at, identifier, name, parent_position_id, created_at, updated_at, and related relationships like position_openings, current_position_opening, child_positions, parent_position, and custom_attributes for each position.
get_single_pinpoint_position_by_id
Get information about a specific position in Pinpoint. Requires id. Returns fields such as archived_at, discarded_at, identifier, name, parent_position_id, created_at, updated_at, and key relationships.
list_all_pinpoint_locations
List locations in Pinpoint. Returns id, type, attributes (city, country_code, created_at, name, postal_code, province, street_address, updated_at), and relationships for each location in the response.
get_single_pinpoint_location_by_id
Get location in Pinpoint by id. Returns id, type, attributes (city, country_code, created_at, name, postal_code, province, street_address, updated_at), and relationships (equality_monitoring_template) in the response.
create_a_pinpoint_location
Create a new location in Pinpoint. Requires name and country_code. Returns id, name, country_code, city, province, postal_code, street_address, created_at, and updated_at in the response.
update_a_pinpoint_location_by_id
Update a specific location in Pinpoint using id. Returns location fields including city, country_code, name, postal_code, province, street_address, created_at, and updated_at.
delete_a_pinpoint_location_by_id
Delete a specific location in Pinpoint using id. Returns meta information confirming the deletion.
list_all_pinpoint_divisions
List divisions in Pinpoint. Returns id, type, and attributes (created_at, name, updated_at) for each division in the response.
get_single_pinpoint_division_by_id
Get a specific division in Pinpoint by id. Returns id, type, created_at, name, and updated_at fields in the response.
create_a_pinpoint_division
Create a new division in Pinpoint. Returns id, type, and attributes including name, created_at, and updated_at in the response.
update_a_pinpoint_division_by_id
Update a specific division in Pinpoint. Requires id. Returns division fields including id, name, created_at, and updated_at for tracking and identification.
delete_a_pinpoint_division_by_id
Delete a specific division in Pinpoint using id. Requires a valid id. Returns meta information confirming the deletion status in the response.
list_all_pinpoint_scorecards
List scorecards in Pinpoint. Returns id, name, interview_guidance, is_active, scorecardable_id, scorecardable_type, updated_at, created_at, and relationships: scorecard_notes, scorecard_sections, stages for each scorecard.
get_single_pinpoint_scorecard_by_id
Get a specific scorecard in Pinpoint by id. Returns fields including id, name, interview_guidance, is_active, scorecardable_id, scorecardable_type, updated_at, created_at, as well as relationships to scorecard_notes, scorecard_sections, and stages.
list_all_pinpoint_candidate_surveys
List Candidate Surveys in Pinpoint. Returns surveys sent to candidates, including key fields such as rating, comment, responded_at, created_at, and updated_at. Response also includes related application data if requested.
get_single_pinpoint_candidate_survey_by_id
Get a specific candidate-survey in Pinpoint by id. Returns key fields including rating, comment, responded_at, created_at, and updated_at, as well as associated application data when included.
list_all_pinpoint_comments
List Comments in Pinpoint. Returns each comment's id, body_text, commentable_id, commentable_type, created_at, private_comment, updated_at, and user_id.
get_single_pinpoint_comment_by_id
Get a specific comment in Pinpoint using id. Returns fields such as body_text, commentable_id, commentable_type, created_at, private_comment, updated_at, and user_id in the response.
create_a_pinpoint_comment
Create a new comment in Pinpoint. Requires body_text and commentable relationship (applications, job_seekers, or candidates). Returns id, body_text, commentable_id, commentable_type, created_at, updated_at, and user_id in the response.
list_all_pinpoint_custom_attributes
List all Custom Attributes in Pinpoint for a specific object by providing custom_attributable_id and custom_attributable_type. Returns id, value, field_name, option_value, option_label, created_at, and updated_at fields in the response.
get_single_pinpoint_custom_attribute_by_id
Get a specific custom attribute in Pinpoint using id. Returns fields including value, field_name, option_value, option_label, created_at, and updated_at, along with relationships to custom_field and custom_attributable.
create_a_pinpoint_custom_attribute
Create a new custom attribute in Pinpoint. Requires custom_attributable_type, custom_attributable_id, and custom_field_id. Returns id, field_name, option_value, option_label, created_at, and updated_at for the new custom attribute.
update_a_pinpoint_custom_attribute_by_id
Update a specific custom attribute in Pinpoint using id. You can modify only the _value field matching the field_type of the associated custom field. The response returns id, field_name, value, option_value, option_label, created_at, and updated_at.
delete_a_pinpoint_custom_attribute_by_id
Delete a specific custom attribute in Pinpoint using id. Returns a meta object in the response confirming successful deletion.
list_all_pinpoint_custom_fields
List all custom fields in Pinpoint. Returns id, name, description, field_type, required, position, created_at, updated_at, and relationships to custom_field_options in the response.
get_single_pinpoint_custom_field_by_id
Get details about a specific custom field in Pinpoint. Requires id. Returns attributes like name, field_type, description, options, required, resource_type, created_at, and updated_at.
create_a_pinpoint_custom_field
Create a new custom field in Pinpoint. Requires name, field_type, resource_type, and sample_value. Returns id, field_type, name, resource_type, required, created_at, and updated_at in the response.
update_a_pinpoint_custom_field_by_id
Update a custom field in Pinpoint using its id. Cannot modify field_type or resource_type. Returns id, name, description, position, required, sample_value, and timestamps.
delete_a_pinpoint_custom_field_by_id
Delete a specific custom field in Pinpoint using id. Returns meta object confirming deletion.
list_all_pinpoint_equality_monitoring_categories
List equality-monitoring-categories in Pinpoint. Returns id, name, enabled, created_at, and updated_at fields along with related equality_monitoring_options if included.
get_single_pinpoint_equality_monitoring_category_by_id
Get details of an equality monitoring category in Pinpoint using id. Returns created_at, enabled, name, and updated_at attributes, along with related equality_monitoring_options if included.
list_all_pinpoint_hiring_workflows
List all hiring workflows in Pinpoint. Returns each workflow's id, name, creation date, update date, and related stages in the response.
get_single_pinpoint_hiring_workflow_by_id
Get details for a specific hiring-workflow in Pinpoint using id. Returns attributes such as created_at, name, and updated_at, and relationships including stages for the workflow.
list_all_pinpoint_job_templates
List job templates in Pinpoint. Returns an array of job templates with id, title, created_at, and updated_at fields in the response.
list_all_pinpoint_onboarding_applications
List Onboarding Applications in Pinpoint. Returns a collection of onboarding applications with fields id, created_at, start_at, status, and updated_at, as well as related application and onboarding_answers data.
get_single_pinpoint_onboarding_application_by_id
Get a specific onboarding application in Pinpoint using id. Returns key fields including created_at, start_at, status, and updated_at, along with related onboarding_answers and applications if included.
list_all_pinpoint_questions
List questions in Pinpoint. Returns id, banked, created_at, updated_at, additional_information, num_required_answer_options, max_num_required_answer_options, question_type, required, title, and multiple_choice_options for each question.
list_all_pinpoint_requisition_templates
List Requisition Templates in Pinpoint. Returns id, name, enforced_maximum_headcount, has_enforced_maximum_headcount, created_at, and updated_at fields for each requisition template.
get_single_pinpoint_requisition_template_by_id
Get a specific requisition template in Pinpoint using id. Returns fields such as name, enforced_maximum_headcount, has_enforced_maximum_headcount, created_at, updated_at, and related requisition_template_fields.
list_all_pinpoint_structure_custom_group_ones
List Structure Custom Group Ones in Pinpoint. Returns id, name, title, created_at, updated_at, and related jobs for each structure_custom_group_one.
get_single_pinpoint_structure_custom_group_one_by_id
Get a specific structure custom group one in Pinpoint by id. Returns id, name, title, created_at, updated_at, and related jobs in the response.
create_a_pinpoint_structure_custom_group_one
Create a structure custom group one in Pinpoint. Requires name. Returns id, name, title, created_at, updated_at, and related jobs in the response.
update_a_pinpoint_structure_custom_group_one_by_id
Update structure custom group one in Pinpoint using id. Returns id, name, title, created_at, updated_at, and related jobs in the response.
delete_a_pinpoint_structure_custom_group_one_by_id
Delete a specific structure custom group one in Pinpoint by id. Requires id. Returns meta information confirming successful deletion in the response.
list_all_pinpoint_structure_links
List structure links in Pinpoint. Returns id, created_at, updated_at, division_id, location_id, department_id, structure_custom_group_one_id, accepts_speculative_applications, and optionally names and in_use fields indicating associated structure items and usage status.
get_single_pinpoint_structure_link_by_id
Get a specific structure link in Pinpoint using id. Returns fields such as created_at, updated_at, division_id, location_id, department_id, structure_custom_group_one_id, accepts_speculative_applications, names, and in_use.
create_a_pinpoint_structure_link
Create a new structure link in Pinpoint. Requires department and location relationships (and division or structure_custom_group_one if applicable). Returns id, created_at, updated_at, and relationship identifiers (division_id, location_id, department_id, structure_custom_group_one_id).
update_a_pinpoint_structure_link_by_id
Update a specific structure link in Pinpoint using id. Only accepts_speculative_applications attribute can be updated. Returns id, type, accepts_speculative_applications, and relationship details in the response.
delete_a_pinpoint_structure_link_by_id
Delete a specific structure link in Pinpoint by id. Returns meta information in the response. If the structure link is in use (assigned to resources like jobs), the request will return a 409 Conflict and must be disassociated before deletion.
list_all_pinpoint_structured_sections
List all structured-sections in Pinpoint. Returns id, title, description, internal_name, created_at, updated_at, and related questions fields in the response.
get_single_pinpoint_structured_section_by_id
Get a specific structured section in Pinpoint by id. Returns title, description, internal_name, created_at, updated_at, and related questions in the response.
Why Truto
Why use Truto’s MCP server for Pinpoint
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Pinpoint
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified User Directory API
Users
The User object represents a User.
Unified ATS API
Applications
The applications represent an application for a job.
Candidates
The candidates represent a candidate.
Departments
The departments represent a department.
Interviews
The interviews represent an interview.
Jobs
The jobs represent a job.
Offices
The offices represent an office.
Users
The users represent a user.
How It Works
From zero to integrated
Go live with Pinpoint in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Pinpoint account
Use Truto’s frontend SDK to connect your customer’s Pinpoint account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Pinpoint
Truto’s Proxy API is a 1-to-1 mapping of the Pinpoint API. You call us, we call Pinpoint, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Pinpoint’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Pinpoint on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What authentication method does the Pinpoint integration use?
Pinpoint uses API key-based authentication. Your end users provide their Pinpoint API key, and Truto manages credential storage, token injection, and secure request signing on every call.
Which Pinpoint objects are available through Truto's Unified ATS API?
The Unified ATS API maps Pinpoint's Applications, Candidates, Departments, Interviews, Jobs, Offices (via Pinpoint Locations), and Users. You can use these unified models alongside 60+ Pinpoint-specific proxy endpoints for resources like requisitions, scorecards, custom fields, divisions, and more.
Can I write data back to Pinpoint or is it read-only?
Pinpoint supports full CRUD across many resources. You can create and update applications, candidates, jobs, departments, locations, custom attributes, custom fields, comments, answers, divisions, requisitions, and users. Delete operations are also available for most writable resources.
How do I handle Pinpoint's custom fields and custom attributes?
Pinpoint distinguishes between custom fields (form-level definitions) and custom attributes (entity-level data). Truto exposes both via dedicated list, get, create, update, and delete tools, so you can dynamically discover your customer's schema and read or write bespoke data like assessment URLs or screening statuses.
Does Truto handle pagination for Pinpoint list endpoints?
Yes. Truto automatically handles pagination across all Pinpoint list endpoints, so you receive complete result sets without managing page tokens or cursor logic in your code.
Can I access confidential jobs from Pinpoint?
Pinpoint filters out confidential jobs by default. To include them, you need to pass the appropriate visibility filter parameter when calling list_all_pinpoint_jobs. Truto supports passing these filters through to the underlying Pinpoint API.
Pinpoint
Get Pinpoint integrated into your app
Our team understands what it takes to make a Pinpoint integration successful. A short, crisp 30 minute call with folks who understand the problem.
Talk to us