Skip to main content
For general webhook concepts like bubble-up behavior, payload visibility rules, and versioned snapshots, see Webhook Concepts.

Description

This event is triggered when a new candidate profile is created in the system.

Integration Details

  • Subscription Key: can.candidate.created
  • Use Case: Sync new candidate records to your ATS or trigger onboarding workflows.
  • Related Events: can.candidate.updated

Trigger

  • Event Type: can_candidate_created
  • Source: Insertion of a record into the can.candidate table.

Payload Example

{
  "id": 101,
  "first_name": "Jane",
  "middle_name": "Marie",
  "last_name": "Doe",
  "email": "jane.doe@example.com",
  "phone_number": "+19876543210",
  "country": "USA",
  "user_id": 123,
  "external_id": "ext_can_101",
  "old_id": null,
  "resume_file_id": null,
  "profile_pic_file_id": null,
  "cf": {},
  "meta": {},
  "is_active": true,
  "is_tnc_accepted": false,
  "is_recording_consent_accepted": null,
  "thread_id": null,
  "notice_period": null,
  "work_authorization": null,
  "expected_salary": null,
  "total_years_experience": null,
  "avg_tenure_months": null,
  "created_at": "2023-11-01T10:00:00Z",
  "created_by": 1,
  "updated_at": "2023-11-01T10:00:00Z",
  "updated_by": 1,
  "attachments": [],
  "contacts": [],
  "calendars": [],
  "education": [],
  "experiences": [],
  "certifications": [],
  "preferred_locations": [],
  "projects": [],
  "skill_proficiencies": [],
  "social_media_links": []
}

Payload Type Showcase

{
  id: number;
  first_name: string | null;
  middle_name: string | null;
  last_name: string | null;
  email: string;
  phone_number: string | null;
  country: string | null;
  user_id: number;
  external_id: string | null;
  old_id: number | null;
  resume_file_id: number | null;
  profile_pic_file_id: number | null;
  cf: Record<string, any>;
  meta: Record<string, any>;
  is_active: boolean;
  is_tnc_accepted: boolean;
  is_recording_consent_accepted: boolean | null;
  thread_id: number | null;
  notice_period: string | null;
  work_authorization: string | null;
  expected_salary: string | null;
  total_years_experience: number | null;
  avg_tenure_months: number | null;
  created_at: string;
  created_by: number;
  updated_at: string;
  updated_by: number;
  attachments: {
    id: number;
    file_id: number;
    file_type_id: number;
    education_id: number | null;
    experience_id: number | null;
    external_id: string | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  contacts: {
    id: number;
    phone_number: string | null;
    address: string | null;
    city: string | null;
    state: string | null;
    country: string | null;
    zipcode: string | null;
    is_current: boolean;
    external_id: string | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  calendars: {
    id: number;
    from: string;
    to: string;
    availability_status: string;
    external_id: string | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  education: {
    id: number;
    title: string | null;
    type: string | null;
    field_of_study: string | null;
    awarding_board: string | null;
    institute: string | null;
    grade: string | null;
    gpa_value: number | null;
    started_at: string | null;
    completed_at: string | null;
    is_current: boolean;
    external_id: string | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  experiences: {
    id: number;
    type: string | null;
    organization: string | null;
    location: string | null;
    designation: string | null;
    description: string | null;
    started_at: string | null;
    completed_at: string | null;
    is_current: boolean;
    responsibilities: any[];
    tools_used: any[];
    external_id: string | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  certifications: {
    id: number;
    name: string;
    issuer: string | null;
    issue_date: string | null;
    expiry_date: string | null;
    external_id: string | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  preferred_locations: {
    id: number;
    location: Record<string, any>;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  projects: {
    id: number;
    title: string;
    description: string | null;
    start_date: string | null;
    end_date: string | null;
    external_id: string | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
    technologies: {
      id: number;
      technology: string;
      created_at: string;
      created_by: number;
      updated_at: string;
      updated_by: number;
    }[];
  }[];
  skill_proficiencies: {
    id: number;
    skill_id: number;
    proficiency: string | null;
    proficiency_label: string | null;
    last_used: string | null;
    evidence_snippet: Record<string, any> | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
  social_media_links: {
    id: number;
    social_media: string;
    link: string;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
  }[];
}

Field Notes

  • cf (custom fields) and meta are JSONB — shape varies per tenant configuration.
  • responsibilities and tools_used on experiences are JSONB arrays.
  • evidence_snippet on skill proficiencies is JSONB containing parsed resume excerpts.
  • location on preferred_locations is JSONB with structured geo data.
  • projects nests technologies as a second-level subordinate.
  • file_type_id on attachments references a lookup enum to distinguish resumes, certificates, etc.
  • All subordinate arrays are pre-filtered to exclude soft-deleted records.