---
title: Dvinci API Integration on Truto
slug: dvinci
category: ATS
canonical: "https://truto.one/integrations/detail/dvinci/"
---

# Dvinci API Integration on Truto



**Category:** ATS  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 75 tools for Dvinci that AI agents can call directly.

- **list_all_dvinci_applications** — List applications using the dvinci API.
- **create_a_dvinci_application** — Create applications using the dvinci API.
- **get_single_dvinci_application_by_id** — Get applications using the dvinci API.
- **update_a_dvinci_application_by_id** — Update applications using the dvinci API.
- **delete_a_dvinci_application_by_id** — Delete applications using the dvinci API.
- **dvinci_applications_change_status** — Change status applications using the dvinci API.
- **dvinci_applications_move_job_opening** — Move job opening applications using the dvinci API.
- **dvinci_applications_get_by_external_id** — Get applications by external ID.
- **list_all_dvinci_application_attachments** — List application attachments using the dvinci API.
- **create_a_dvinci_application_attachment** — Create application attachments using the dvinci API.
- **get_single_dvinci_application_attachment_by_id** — Get application attachments using the dvinci API.
- **dvinci_application_attachments_get_pdf** — Get pdf application attachments using the dvinci API.
- **delete_a_dvinci_application_attachment_by_id** — Delete application attachments using the dvinci API.
- **list_all_dvinci_application_history** — List application history using the dvinci API.
- **dvinci_application_history_upsert** — Upsert application history using the dvinci API.
- **dvinci_application_history_upsert_entry** — Upsert entry application history using the dvinci API.
- **list_all_dvinci_configuration_external_links** — List configuration external links using the dvinci API.
- **dvinci_configuration_external_links_upsert** — Upsert configuration external links using the dvinci API.
- **list_all_dvinci_hiring_requests** — List hiring requests using the dvinci API.
- **create_a_dvinci_hiring_request** — Create hiring requests using the dvinci API.
- **get_single_dvinci_hiring_request_by_id** — Get hiring requests using the dvinci API.
- **update_a_dvinci_hiring_request_by_id** — Update hiring requests using the dvinci API.
- **dvinci_hiring_requests_get_by_external_id** — Get hiring requests by external ID.
- **list_all_dvinci_hiring_request_history** — List hiring request history using the dvinci API.
- **list_all_dvinci_hiring_request_approvers** — List hiring request approvers using the dvinci API.
- **list_all_dvinci_job_openings** — List job openings using the dvinci API.
- **create_a_dvinci_job_opening** — Create job openings using the dvinci API.
- **get_single_dvinci_job_opening_by_id** — Get job openings using the dvinci API.
- **update_a_dvinci_job_opening_by_id** — Update job openings using the dvinci API.
- **delete_a_dvinci_job_opening_by_id** — Delete job openings using the dvinci API.
- **dvinci_job_openings_get_by_external_id** — Get job openings by external ID.
- **list_all_dvinci_job_opening_history** — List job opening history using the dvinci API.
- **dvinci_job_opening_history_upsert** — Upsert job opening history using the dvinci API.
- **dvinci_job_opening_history_upsert_entry** — Upsert entry job opening history using the dvinci API.
- **list_all_dvinci_job_publications** — List job publications using the dvinci API.
- **create_a_dvinci_job_publication** — Create job publications using the dvinci API.
- **get_single_dvinci_job_publication_by_id** — Get job publications using the dvinci API.
- **update_a_dvinci_job_publication_by_id** — Update job publications using the dvinci API.
- **delete_a_dvinci_job_publication_by_id** — Delete job publications using the dvinci API.
- **dvinci_job_publications_delete_deprecated** — Delete job publications through the vendor's deprecated POST route.
- **dvinci_job_publications_get_by_external_id** — Get job publications by external ID.
- **list_all_dvinci_locations** — List locations using the dvinci API.
- **create_a_dvinci_location** — Create locations using the dvinci API.
- **get_single_dvinci_location_by_id** — Get locations using the dvinci API.
- **update_a_dvinci_location_by_id** — Update locations using the dvinci API.
- **delete_a_dvinci_location_by_id** — Delete locations using the dvinci API.
- **list_all_dvinci_onboardings** — List onboardings using the dvinci API.
- **get_single_dvinci_onboarding_by_id** — Get onboardings using the dvinci API.
- **delete_a_dvinci_onboarding_by_id** — Delete onboardings using the dvinci API.
- **list_all_dvinci_onboarding_attachments** — List onboarding attachments using the dvinci API.
- **get_single_dvinci_onboarding_attachment_by_id** — Get onboarding attachments using the dvinci API.
- **dvinci_onboarding_attachments_get_pdf** — Get pdf onboarding attachments using the dvinci API.
- **list_all_dvinci_org_units** — List org units using the dvinci API.
- **get_single_dvinci_org_unit_by_id** — Get org units using the dvinci API.
- **list_all_dvinci_persons** — List persons using the dvinci API.
- **create_a_dvinci_person** — Create persons using the dvinci API.
- **get_single_dvinci_person_by_id** — Get persons using the dvinci API.
- **update_a_dvinci_person_by_id** — Update persons using the dvinci API.
- **delete_a_dvinci_person_by_id** — Delete persons using the dvinci API.
- **dvinci_persons_get_by_external_id** — Get persons by external ID.
- **get_single_dvinci_person_photo_by_id** — Get person photos using the dvinci API.
- **create_a_dvinci_person_photo** — Create person photos using the dvinci API.
- **delete_a_dvinci_person_photo_by_id** — Delete person photos using the dvinci API.
- **list_all_dvinci_roles** — List roles using the dvinci API.
- **get_single_dvinci_role_by_id** — Get roles using the dvinci API.
- **list_all_dvinci_users** — List users using the dvinci API.
- **create_a_dvinci_user** — Create users using the dvinci API.
- **get_single_dvinci_user_by_id** — Get users using the dvinci API.
- **update_a_dvinci_user_by_id** — Update users using the dvinci API.
- **delete_a_dvinci_user_by_id** — Delete users using the dvinci API.
- **list_all_dvinci_user_groups** — List user groups using the dvinci API.
- **create_a_dvinci_user_group** — Create user groups using the dvinci API.
- **get_single_dvinci_user_group_by_id** — Get user groups using the dvinci API.
- **update_a_dvinci_user_group_by_id** — Update user groups using the dvinci API.
- **delete_a_dvinci_user_group_by_id** — Delete user groups using the dvinci API.

## How it works

1. **Link your customer's Dvinci account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Dvinci.** The Proxy API is a 1-to-1 mapping of the Dvinci API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed d.vinci into career site builders** — Let your SaaS pull live job publications, locations, and org units from your customers' d.vinci instances to render dynamic, SEO-friendly career pages — and post applications with resumes back without manual recruiter entry.
- **Power AI screening and interview tools** — Offer your customers an AI screening product that reads candidate context from d.vinci, advances applicants through pipeline stages, and writes interview summaries directly into the applicant history timeline.
- **Automate background checks and compliance workflows** — Trigger background verification when candidates hit a specific stage, fetch applicant PII from d.vinci, and push signed compliance PDFs back into the digital applicant file — critical for DACH customers with strict audit requirements.
- **Sync hiring requests with internal approval bots** — Build Slack or Teams bots that surface open d.vinci hiring requests to department heads, track approver chains, and update requisition status once budgets are signed off.
- **Provision IT and HR systems on hire** — Let downstream IT, payroll, or core HR tools listen to d.vinci onboardings and automatically generate tickets for laptops, accounts, and licenses the moment a candidate is marked as hired.

## What you can build

- **Headless job board sync** — Fetch d.vinci job publications, locations, and org units to render dynamic career pages, with new applications and attachments posted straight back into d.vinci.
- **Stage-triggered candidate automation** — Move candidates between stages and across job openings programmatically using the applications status and move endpoints to drive assessments, screens, and offer flows.
- **Timeline event injection** — Write recruiter notes, AI interview summaries, or vendor results directly into the application history so d.vinci stays the single source of truth.
- **Digital applicant file sync** — Upload CVs, cover letters, and signed compliance PDFs as application attachments, and fetch onboarding attachment PDFs for downstream archival.
- **Hiring request approval workflows** — List, create, and update hiring requests and surface approver chains inside your own product to orchestrate headcount approvals outside of d.vinci.
- **Onboarding-to-provisioning handoff** — Read onboardings and onboarding attachments to trigger IT provisioning, payroll setup, or welcome workflows the moment a candidate converts to a hire.

## FAQs

### How does authentication to d.vinci work through Truto?

Truto handles the d.vinci auth handshake and token storage for each of your end users' connected accounts, so you don't manage credentials or refresh logic. Your end users connect their d.vinci tenant once and your product calls Truto's unified endpoints from there.

### Which d.vinci objects can I read and write?

The integration covers applications, application attachments and history, hiring requests and approvers, job openings, job publications, locations, org units, onboardings and onboarding attachments, persons and person photos, roles, users, user groups, and configuration external links — with list, get, create, update, and delete operations where d.vinci supports them.

### Can I move candidates through the pipeline programmatically?

Yes. You can call dedicated endpoints to change an application's status and move an application to a different job opening, which lets you build stage-triggered automations and reassign candidates across requisitions.

### How do I keep d.vinci as the system of record for recruiter activity?

Use the application history upsert endpoints to inject events, notes, or external tool results directly into the applicant timeline, so recruiters see everything inside d.vinci without context switching.

### Can I look up records by my own IDs instead of d.vinci's internal IDs?

Yes. Applications, persons, hiring requests, job openings, and job publications all expose get-by-external-id endpoints, which makes idempotent syncs and cross-system reconciliation much simpler.

### How do I handle resumes and signed onboarding documents?

You can list, create, fetch, and delete application attachments, retrieve attachment PDFs, and pull PDFs from the onboarding attachments endpoint — enough to support the digital applicant file workflows common with DACH customers.

### Is data fetched live or cached?

Truto proxies requests to d.vinci on demand, so reads reflect the current state of the customer's tenant. For high-volume use cases you can layer scheduled syncs on top of the list endpoints rather than hitting d.vinci on every user action.

## Related reading

- [Connect Dvinci to Claude: Manage hiring requests and job postings](https://truto.one/blog/connect-dvinci-to-claude-manage-hiring-requests-and-job-postings/) — Learn how to connect Dvinci to Claude using a managed MCP server. Automate hiring requests, job postings, and candidate tracking with natural language.
- [Connect Dvinci to ChatGPT: Automate candidate and job management](https://truto.one/blog/connect-dvinci-to-chatgpt-automate-candidate-and-job-management/) — Learn how to connect Dvinci to ChatGPT using a managed MCP server. Automate candidate tracking, job publications, and hiring workflows with AI agents.
- [Connect Dvinci to AI Agents: Orchestrate applicant tracking tasks](https://truto.one/blog/connect-dvinci-to-ai-agents-orchestrate-applicant-tracking-tasks/) — A complete developer guide to connecting Dvinci to AI Agents using Truto. Learn how to bind Dvinci tools to your LLM and build autonomous ATS workflows.
