Job data model

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)
namestringNothe job or position title
descriptionstringNo
codestringNothe integration's job code or position number, when it differs from id
is_activebooleanNo
employment_typeenumNoValues: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, CONSULTANT, VOLUNTEER, CASUAL, SEASONAL, FREELANCE, OTHER
company_idstringNo(reference to HrisCompany)
groupsHrisGroup[]Nothe groups (departments, teams, organizations) this job belongs to. May not have all of the Group fields present, but should have id and name
groups[].idstringNo
groups[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
groups[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
groups[].namestringNo
groups[].descriptionstringNo
groups[].parent_idstringNo
groups[].typeenumNoValues: TEAM, GROUP, DEPARTMENT, DIVISION, BUSINESS_UNIT, BRANCH, SUB_DEPARTMENT, PAY_GROUP
groups[].user_idsstring[]No(reference to HrisEmployee)
groups[].manager_idsstring[]No
groups[].is_activebooleanNo
groups[].company_idstringNo(reference to HrisCompany)
groups[].pay_frequencyenumNopay cycle when type is PAY_GROUP Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
groups[].next_paid_atstring (date-time)Nonext pay date when type is PAY_GROUP (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
locationsHrisLocation[]Nowhere this job is worked. May not have all of the Location fields present, but should have id and name
locations[].idstringNo
locations[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
locations[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
locations[].namestringNo
locations[].descriptionstringNo
locations[].addressobjectNo
locations[].address.address1stringNo
locations[].address.address2stringNo
locations[].address.citystringNo
locations[].address.regionstringNo
locations[].address.region_codestringNo
locations[].address.postal_codestringNo
locations[].address.countrystringNo
locations[].address.country_codestringNoISO 2-digit country code
locations[].parent_idstringNo
locations[].external_identifierstringNo
locations[].telephonesHrisTelephone[]No
locations[].telephones[].telephonestringYes
locations[].telephones[].typeenumNoValues: WORK, HOME, OTHER, FAX, MOBILE
locations[].timezonestringNo
locations[].currencystringNo
locations[].language_localestringNo
locations[].is_activebooleanNo
locations[].is_hqbooleanNoif this location is the headquarters of the company
locations[].company_idstringNo(reference to HrisCompany)
parent_idstringNothe hris_job this job reports to (position hierarchy)
usersHrisEmployee[]Nothe employees currently holding this job. May not have all of the Employee fields present, but should have id and name
users[].idstringNo
users[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].namestringNo
users[].first_namestringNo
users[].last_namestringNo
users[].emailsHrisEmail[]No
users[].emails[].emailstringYes
users[].emails[].typeenumNoValues: WORK, HOME, OTHER
users[].titlestringNo
users[].job_idstringNothe hris_job (position) this employee holds; their primary job when they hold more than one
users[].manager_idstringNo
users[].employment_statusenumNoValues: ACTIVE, INACTIVE
users[].genderenumNoValues: MALE, FEMALE, INTERSEX, TRANS, NON_BINARY
users[].telephonesHrisTelephone[]No
users[].telephones[].telephonestringYes
users[].telephones[].typeenumNoValues: WORK, HOME, OTHER, FAX, MOBILE
users[].date_of_birthstring (date-time)NoYYYYMM/DD
users[].employee_numberstringNothe company's ID for this employee
users[].hired_atstring (date-time)NoThe employee's start date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].terminated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].termination_reasonstringNo
users[].marital_statusenumNoValues: MARRIED, SINGLE
users[].employment_typeenumNoValues: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, CONSULTANT, VOLUNTEER, CASUAL, SEASONAL, FREELANCE, OTHER
users[].addressobjectNo
users[].address.address1stringNo
users[].address.address2stringNo
users[].address.citystringNo
users[].address.regionstringNo
users[].address.region_codestringNo
users[].address.postal_codestringNo
users[].address.countrystringNo
users[].address.country_codestringNoISO 2-digit country code
users[].language_localestringNo
users[].currencystringNo
users[].timezonestringNo
users[].image_urlstringNoThis link expires after 1 hour.
users[].company_idstringNo(reference to HrisCompany)
users[].pronounsstringNo
users[].employee_rolesenumNoValues: ADMIN, MANAGER, RECRUITER, SALESREP, INTERVIEWER, USER, EMPLOYEE
users[].compensationHrisCompensation[]No
users[].compensation[].typeenumNoValues: SALARY, BONUS, STOCK_OPTIONS, EQUITY, OTHER, HOURLY, COMMISSION
users[].compensation[].amountnumberNo
users[].compensation[].currencystringNo
users[].compensation[].frequencyenumNoValues: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
users[].compensation[].group_idstringNo(reference to HrisGroup)
users[].compensation[].notesstringNo
users[].salutationstringNoMr. Mrs. Ms.
users[].biostringNo
users[].ssn_sinstringNo
users[].groupsHrisGroup[]NoWhich groups/teams/units that this employee/user belongs to. May not have all of the Group fields present, but should have id, name, or email.
users[].groups[].idstringNo
users[].groups[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].groups[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].groups[].namestringNo
users[].groups[].descriptionstringNo
users[].groups[].parent_idstringNo
users[].groups[].typeenumNoValues: TEAM, GROUP, DEPARTMENT, DIVISION, BUSINESS_UNIT, BRANCH, SUB_DEPARTMENT, PAY_GROUP
users[].groups[].user_idsstring[]No(reference to HrisEmployee)
users[].groups[].manager_idsstring[]No
users[].groups[].is_activebooleanNo
users[].groups[].company_idstringNo(reference to HrisCompany)
users[].groups[].pay_frequencyenumNopay cycle when type is PAY_GROUP Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
users[].groups[].next_paid_atstring (date-time)Nonext pay date when type is PAY_GROUP (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].locationsHrisLocation[]No
users[].locations[].idstringNo
users[].locations[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].locations[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].locations[].namestringNo
users[].locations[].descriptionstringNo
users[].locations[].addressobjectNo
users[].locations[].address.address1stringNo
users[].locations[].address.address2stringNo
users[].locations[].address.citystringNo
users[].locations[].address.regionstringNo
users[].locations[].address.region_codestringNo
users[].locations[].address.postal_codestringNo
users[].locations[].address.countrystringNo
users[].locations[].address.country_codestringNoISO 2-digit country code
users[].locations[].parent_idstringNo
users[].locations[].external_identifierstringNo
users[].locations[].telephonesHrisTelephone[]No
users[].locations[].telephones[].telephonestringYes
users[].locations[].telephones[].typeenumNoValues: WORK, HOME, OTHER, FAX, MOBILE
users[].locations[].timezonestringNo
users[].locations[].currencystringNo
users[].locations[].language_localestringNo
users[].locations[].is_activebooleanNo
users[].locations[].is_hqbooleanNoif this location is the headquarters of the company
users[].locations[].company_idstringNo(reference to HrisCompany)
users[].metadataHrisMetadata[]No
users[].metadata[].idstringNo
users[].metadata[].valueobjectNo
users[].metadata[].namespacestringNo
users[].metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
users[].metadata[].extra_dataobjectNo
users[].metadata[].slugstringNo
users[].storage_quota_allocatednumberNo
users[].storage_quota_usednumberNo
users[].storage_quota_availablenumberNo
users[].relationshipsHrisEmployeerelationship[]Nothe employee's personal relationships (eg. emergency contacts, spouse, dependants, ...)
users[].relationships[].namestringNo
users[].relationships[].first_namestringNo
users[].relationships[].last_namestringNo
users[].relationships[].emailsHrisEmail[]No
users[].relationships[].emails[].emailstringYes
users[].relationships[].emails[].typeenumNoValues: WORK, HOME, OTHER
users[].relationships[].telephonesHrisTelephone[]No
users[].relationships[].telephones[].telephonestringYes
users[].relationships[].telephones[].typeenumNoValues: WORK, HOME, OTHER, FAX, MOBILE
users[].relationships[].addressHrisEmployeerelationship_addressNo
users[].relationships[].address.address1stringNo
users[].relationships[].address.address2stringNo
users[].relationships[].address.citystringNo
users[].relationships[].address.regionstringNo
users[].relationships[].address.region_codestringNo
users[].relationships[].address.postal_codestringNo
users[].relationships[].address.countrystringNo
users[].relationships[].address.country_codestringNoISO 2-digit country code
users[].relationships[].typeenumNoValues: EMERGENCY, SPOUSE, CHILD, PARENT, SIBLING, FRIEND, OTHER
users[].relationships[].is_dependentbooleanNo
users[].relationships[].is_beneficiarybooleanNo
users[].relationships[].start_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].relationships[].end_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
users[].has_mfabooleanNodoes the user/employee have multi-factor authentication enabled
users[].timeoff_days_totalnumberNoTotal time off allowance for the current leave period, in days (when reported by the provider)
users[].timeoff_days_usednumberNoTime off days used or booked in the current leave period (when reported by the provider)
users[].flsa_statusenumNoUS Fair Labor Standards Act classification Values: EXEMPT, NON_EXEMPT, SALARIED_NONEXEMPT, OWNER
users[].pay_frequencyenumNohow often the employee is paid (eg. BIWEEKLY) Values: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
compensationHrisCompensation[]Nopay attached to the job itself (eg. an hourly rate)
compensation[].typeenumNoValues: SALARY, BONUS, STOCK_OPTIONS, EQUITY, OTHER, HOURLY, COMMISSION
compensation[].amountnumberNo
compensation[].currencystringNo
compensation[].frequencyenumNoValues: ONE_TIME, DAY, QUARTER, YEAR, HOUR, MONTH, WEEK, BIWEEKLY, SEMIMONTHLY
compensation[].group_idstringNo(reference to HrisGroup)
compensation[].notesstringNo

TypeScript

TypeScript
export type HrisJob = {
	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)
	name?: string; // the job or position title
	description?: string;
	code?: string; // the integration's job code or position number, when it differs from id
	is_active?: boolean;
	employment_type?: 'FULL_TIME' | 'PART_TIME' | 'CONTRACTOR' | 'INTERN' | 'CONSULTANT' | 'VOLUNTEER' | 'CASUAL' | 'SEASONAL' | 'FREELANCE' | 'OTHER';
	company_id?: string; // (reference to HrisCompany)
	groups?: []; // the groups (departments, teams, organizations) this job belongs to. May not have all of the Group fields present, but should have id and name
	locations?: []; // where this job is worked. May not have all of the Location fields present, but should have id and name
	parent_id?: string; // the hris_job this job reports to (position hierarchy)
	users?: []; // the employees currently holding this job. May not have all of the Employee fields present, but should have id and name
	compensation?: []; // pay attached to the job itself (eg. an hourly rate)
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodHrisJob = 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)"),
	name: z.string().optional().describe("the job or position title"),
	description: z.string().optional(),
	code: z.string().optional().describe("the integration's job code or position number, when it differs from id"),
	is_active: z.boolean().optional(),
	employment_type: z.enum("FULL_TIME", "PART_TIME", "CONTRACTOR", "INTERN", "CONSULTANT", "VOLUNTEER", "CASUAL", "SEASONAL", "FREELANCE", "OTHER").optional(),
	company_id: z.string().optional().describe("(reference to HrisCompany)"),
	groups: z.array().optional().describe("the groups (departments, teams, organizations) this job belongs to. May not have all of the Group fields present, but should have id and name"),
	locations: z.array().optional().describe("where this job is worked. May not have all of the Location fields present, but should have id and name"),
	parent_id: z.string().optional().describe("the hris_job this job reports to (position hierarchy)"),
	users: z.array().optional().describe("the employees currently holding this job. May not have all of the Employee fields present, but should have id and name"),
	compensation: z.array().optional().describe("pay attached to the job itself (eg. an hourly rate)"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class HrisJobEmployment_type(str, Enum):
	FULL_TIME = 'FULL_TIME'
	PART_TIME = 'PART_TIME'
	CONTRACTOR = 'CONTRACTOR'
	INTERN = 'INTERN'
	CONSULTANT = 'CONSULTANT'
	VOLUNTEER = 'VOLUNTEER'
	CASUAL = 'CASUAL'
	SEASONAL = 'SEASONAL'
	FREELANCE = 'FREELANCE'
	OTHER = 'OTHER'

@dataclasses.dataclass
class HrisJob:
	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]
	"""the job or position title"""
	name: Optional[str]
	description: Optional[str]
	"""the integration's job code or position number, when it differs from id"""
	code: Optional[str]
	is_active: Optional[bool]
	employment_type: Optional[HrisJobEmployment_type]
	"""(reference to HrisCompany)"""
	company_id: Optional[str]
	"""the groups (departments, teams, organizations) this job belongs to. May not have all of the Group fields present, but should have id and name"""
	groups: Optional[PropertyHrisJobGroups]
	"""where this job is worked. May not have all of the Location fields present, but should have id and name"""
	locations: Optional[PropertyHrisJobLocations]
	"""the hris_job this job reports to (position hierarchy)"""
	parent_id: Optional[str]
	"""the employees currently holding this job. May not have all of the Employee fields present, but should have id and name"""
	users: Optional[PropertyHrisJobUsers]
	"""pay attached to the job itself (eg. an hourly rate)"""
	compensation: Optional[PropertyHrisJobCompensation]
Are we missing anything? Let us know
Was this page helpful?