Document data model

Updated:

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
document_urlstringNoThis link expires after 1 hour.
document_datastringNobase64 encoded file contents used for create/update actions. Use this field to send an attachment e.g. a resume, a profile, or other text content
filenamestringNoThe document's file name, including its extension (e.g. resume.pdf)
typeenumNoThe kind of document Values: RESUME, COVER_LETTER, OFFER_PACKET, OFFER_LETTER, TAKE_HOME_TEST, OTHER
candidate_idstringNoThe ID of the candidate the document belongs to (an AtsCandidate ID)
application_idstringNo
job_idstringNo
user_idstringNo(reference to HrisEmployee)
metadataAtsMetadata[]No
metadata[].idstringNoThe ID of the custom field definition (from the metadata/metadata endpoint).
metadata[].slugstringNoThe integration's API name (key) of an existing custom field. List valid slugs for this object with the metadata/metadata endpoint; unknown slugs are rejected by the integration.
metadata[].valueobjectNoThe field's value, typed by format: DATE as ISO-8601 (YYYY-MM-DD, or YYYY-MM-DDTHH:MM:SSZ for date-times); NUMBER, PRICE and CURRENCY as a number; BOOLEAN and YES_NO as true/false; MULTIPLE_SELECT as an array of option values; otherwise a string.
metadata[].namespacestringNo
metadata[].formatenumNoThe data type of the custom field, which determines how value is formatted. Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo

TypeScript

TypeScript
export type AtsDocument = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	document_url?: string; // This link expires after 1 hour. 
	document_data?: string; // base64 encoded file contents used for create/update actions. Use this field to send an attachment e.g. a resume, a profile, or other text content
	filename?: string; // The document's file name, including its extension (e.g. resume.pdf)
	type?: 'RESUME' | 'COVER_LETTER' | 'OFFER_PACKET' | 'OFFER_LETTER' | 'TAKE_HOME_TEST' | 'OTHER'; // The kind of document
	candidate_id?: string; // The ID of the candidate the document belongs to (an AtsCandidate ID)
	application_id?: string;
	job_id?: string;
	user_id?: string; // (reference to HrisEmployee)
	metadata?: [];
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodAtsDocument = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	document_url: z.string().optional().describe("This link expires after 1 hour. "),
	document_data: z.string().optional().describe("base64 encoded file contents used for create/update actions. Use this field to send an attachment e.g. a resume, a profile, or other text content"),
	filename: z.string().optional().describe("The document's file name, including its extension (e.g. resume.pdf)"),
	type: z.enum("RESUME", "COVER_LETTER", "OFFER_PACKET", "OFFER_LETTER", "TAKE_HOME_TEST", "OTHER").optional().describe("The kind of document"),
	candidate_id: z.string().optional().describe("The ID of the candidate the document belongs to (an AtsCandidate ID)"),
	application_id: z.string().optional(),
	job_id: z.string().optional(),
	user_id: z.string().optional().describe("(reference to HrisEmployee)"),
	metadata: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class AtsDocumentType(str, Enum):
	RESUME = 'RESUME'
	COVER_LETTER = 'COVER_LETTER'
	OFFER_PACKET = 'OFFER_PACKET'
	OFFER_LETTER = 'OFFER_LETTER'
	TAKE_HOME_TEST = 'TAKE_HOME_TEST'
	OTHER = 'OTHER'

@dataclasses.dataclass
class AtsDocument:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""This link expires after 1 hour. """
	document_url: Optional[str]
	"""base64 encoded file contents used for create/update actions. Use this field to send an attachment e.g. a resume, a profile, or other text content"""
	document_data: Optional[str]
	"""The document's file name, including its extension (e.g. resume.pdf)"""
	filename: Optional[str]
	"""The kind of document"""
	type: Optional[AtsDocumentType]
	"""The ID of the candidate the document belongs to (an AtsCandidate ID)"""
	candidate_id: Optional[str]
	application_id: Optional[str]
	job_id: Optional[str]
	"""(reference to HrisEmployee)"""
	user_id: Optional[str]
	metadata: Optional[PropertyAtsDocumentMetadata]
Are we missing anything? Let us know
Was this page helpful?