Semantius Logo

Candidate Interviews

1. Overview

Interview scheduling, panel coordination, scorecards, and structured assessments. Realizes INTERVIEW-MGMT. Realizes the interviewing lifecycle state on job_applications (state pruned when this module is not installed).

2. Entity summary

Namedata_objectDescription
Assessmentscandidate_assessmentsSkills, cognitive, technical, or personality test results attached to an application, often sourced from an external assessment provider.
Candidate Assessment Templatescandidate_assessment_templatesReusable assessment definitions such as coding challenges, work samples, and skills tests, with time limit and scoring rubric, assigned to candidates.
Interview Kitsinterview_kitsReusable interview templates per role and stage, bundling questions, target competencies, recommended scorecard, and expected duration.
Interview Panelsinterview_panelsInterviewers assigned to a specific interview, with each person’s role on the panel and weight on the consolidated scorecard.
Interview Questionsinterview_questionsReusable interview questions tied to competencies, with question type, suggested follow-ups, and scoring rubric.
Interview Scorecardsinterview_scorecardsStructured interviewer feedback against a rubric: per-competency ratings, written notes, and a hire or no-hire recommendation.
Interviewer Availability Slotsinterviewer_availability_slotsBookable time windows an interviewer has marked available, with allowed interview types, driving self-serve scheduling.
InterviewsinterviewsScheduled assessment events between a candidate and one or more interviewers, with time, location, panel, and outcome.
Applicationsjob_applicationsCandidate submissions against a specific requisition, with pipeline stage, status, source, and full evaluation history.
CandidatescandidatesPeople known to the recruiting organization, with or without an active application, carrying contact details, resume, tags, consent, and source.
flowchart TD
  classDef master fill:#d4f4dd,stroke:#27ae60,color:#0b3d20;
  classDef embedded_master fill:#fff4cc,stroke:#c79100,color:#5b4500;
  classDef platform_builtin fill:#e0e0e0,stroke:#424242,color:#1a1a1a;
  interviews["Interviews"]
  interview_scorecards["Interview Scorecards"]
  candidates["Candidates"]
  job_applications["Applications"]
  candidate_assessments["Assessments"]
  interview_kits["Interview Kits"]
  interview_panels["Interview Panels"]
  candidate_assessment_templates["Candidate Assessment Templates"]
  interview_questions["Interview Questions"]
  interviewer_availability_slots["Interviewer Availability Slots"]
  users["Users"]
  interview_kits -->|"shapes"| interviews
  interview_kits -->|"includes"| interview_questions
  interviews -->|"convenes"| interview_panels
  interview_panels -->|"produces"| interview_scorecards
  candidate_assessment_templates -->|"instantiates_as"| candidate_assessments
  interviewer_availability_slots -->|"booked_for"| interviews
  candidates -->|"submits"| job_applications
  job_applications -->|"schedules"| interviews
  interviews -->|"is scored via"| interview_scorecards
  job_applications -->|"requires"| candidate_assessments
  candidates -->|"has owning recruiter"| users
  candidate_assessments -->|"has invitation author"| users
  interviewer_availability_slots -->|"has owner"| users
  interview_panels -->|"has owner"| users
  job_applications -->|"has owning recruiter"| users
  interviews -->|"has coordinator and panelists"| users
  interview_scorecards -->|"has interviewer as author"| users
  class interviews master;
  class interview_scorecards master;
  class candidates embedded_master;
  class job_applications embedded_master;
  class candidate_assessments master;
  class interview_kits master;
  class interview_panels master;
  class candidate_assessment_templates master;
  class interview_questions master;
  class interviewer_availability_slots master;
  class users platform_builtin;
  style interviewer_availability_slots stroke-dasharray:5 5;

3. Entities catalog

#data_objectcanonical codesingularpluralrolemastered inmastered labelnecessitypersonal_contententity_typewrite tiernotes
1candidate_assessmentscandidate_assessmentsAssessmentAssessmentsmaster--required-operational_workflow:manage-
2candidate_assessment_templatescandidate_assessment_templatesCandidate Assessment TemplateCandidate Assessment Templatesmaster--required-catalog:admin-
3interview_kitsinterview_kitsInterview KitInterview Kitsmaster--required-catalog:admin-
4interview_panelsinterview_panelsInterview PanelInterview Panelsmaster--required-junction:manage-
5interview_questionsinterview_questionsInterview QuestionInterview Questionsmaster--required-catalog:admin-
6interview_scorecardsinterview_scorecardsInterview ScorecardInterview Scorecardsmaster--requiredyesoperational_workflow:manage-
7interviewer_availability_slotsinterviewer_availability_slotsInterviewer Availability SlotInterviewer Availability Slotsmaster--optional-operational_workflow:manage-
8interviewsinterviewsInterviewInterviewsmaster--required-operational_workflow:manage-
9job_applicationsjob_applicationsApplicationApplicationsembedded_masterats-recruitment-pipelineRecruitment Pipelinerequiredyesoperational_workflow:manage-
10candidatescandidatesCandidateCandidatesembedded_masterats-candidate-crmCandidate CRMrequiredyesoperational_workflow:manage-

4. Aliases and industry synonyms

(none: no industry-scoped aliases for this scope)

5. Relationships

5.1 Intra-scope edges

fromverbtocardinalitykindnecessityowner_sidedelete_modefk_formatnotes
interview_kitsshapesinterviewsone_to_manyreferenceoptionalsourceclearreference-
interview_kitsincludesinterview_questionsmany_to_manyreferenceoptionalsourceclearreference-
interviewsconvenesinterview_panelsone_to_onecompositionrequiredsourcecascadeparent-
interview_panelsproducesinterview_scorecardsone_to_manycompositionoptionalsourcecascadeparent-
candidate_assessment_templatesinstantiates_ascandidate_assessmentsone_to_manyreferenceoptionalsourceclearreference-
interviewer_availability_slotsbooked_forinterviewsone_to_onereferenceoptionalsourceclearreference-
candidatessubmitsjob_applicationsone_to_manyreferencerequiredtargetrestrictreference-
job_applicationsschedulesinterviewsone_to_manyreferencerequiredsourcerestrictreference-
interviewsis scored viainterview_scorecardsone_to_manyreferencerequiredsourcerestrictreference-
job_applicationsrequirescandidate_assessmentsone_to_manyreferencerequiredsourcerestrictreference-

5.2 Built-in edges (users and other platform built-ins)

fromverbtocardinalitynecessityowner_sidedelete_modefk_formatnotes
candidateshas owning recruiterusersmany_to_manyoptionalsourceclearreference-
candidate_assessmentshas invitation authorusersmany_to_manyrequiredsourcerestrictreference-
interviewer_availability_slotshas ownerusersmany_to_manyrequiredsourcerestrictreference-
interview_panelshas ownerusersmany_to_manyoptionalsourceclearreference-
job_applicationshas owning recruiterusersmany_to_manyrequiredsourcerestrictreference-
interviewshas coordinator and panelistsusersmany_to_manyrequiredsourcerestrictreference-
interview_scorecardshas interviewer as authorusersmany_to_manyrequiredsourcerestrictreference-

5.3 Cross-scope edges

5.3a Outbound from this scope’s masters and contributors

Edges this scope drives: the in-scope endpoint has role of master or contributor.

(none: no outbound cross-scope edges from this scope’s masters or contributors)

5.3b Context edges on embedded shells and consumed entities

Edges the canonical owner drives, shown for context: the in-scope endpoint has role of embedded_master, consumer, or derived.

fromverbtocardinalitynecessitydelete_modefk_formatnotes
candidatesverified_viaright_to_work_verificationsone_to_manyoptionalnonen/a-
candidatesengaged_viacandidate_engagementsone_to_manyoptionalnonen/a-
candidatesattends_viarecruiting_event_attendancesone_to_manyrequirednone (required-if-present)n/a-
candidatesnoted_viarecruiter_interactionsone_to_manyoptionalnonen/a-
candidatesconsents_viacandidate_consentsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
candidatesmember_of_viatalent_pool_membershipsone_to_manyrequirednone (required-if-present)n/a-
candidatesdiscloses_viafcra_disclosuresone_to_manyrequired⚠ audit: required composed child out of scopen/a-
job_applicationstransitions_viaapplication_stage_transitionsone_to_manyrequired⚠ audit: required composed child out of scopen/a-
job_applicationsanswers_viaapplication_screening_answersone_to_manyoptionalnonen/a-
candidatesself_identifies_viaeeo_responsesone_to_manyoptionalnonen/a-
candidatessubmits_viadata_subject_requestsone_to_manyoptionalnonen/a-
candidatesself_ids_viavoluntary_self_identificationsone_to_manyoptionalnonen/a-
candidatesacknowledges_viafcra_summary_of_rights_acknowledgementsone_to_manyoptionalnonen/a-
job_applicationsdisposed_viaapplication_dispositionsone_to_manyoptionalnonen/a-
job_applicationslogged_viaapplicant_flow_recordsone_to_onerequired⚠ audit: required composed child out of scopen/a-
candidatesdocumented_viacandidate_documentsone_to_manyoptionalnonen/a-
candidatesannotated_viacandidate_notesone_to_manyoptionalnonen/a-
candidatestagged_viacandidate_tag_assignmentsone_to_manyoptionalnonen/a-
skill_profilesfeedscandidatesone_to_manyoptionalnonen/a-
job_requisitionsreceivesjob_applicationsone_to_manyrequirednone (required-if-present)n/a-
job_postingsis applied to viajob_applicationsone_to_manyrequirednone (required-if-present)n/a-
candidate_referralsintroducescandidatesone_to_manyrequirednone (required-if-present)n/a-
recruitment_sourcesattributescandidatesone_to_manyrequirednone (required-if-present)n/a-
recruitment_agenciessourcescandidatesone_to_manyrequirednone (required-if-present)n/a-
recruitment_eventsattractscandidatesone_to_manyrequirednone (required-if-present)n/a-
talent_poolsgroupscandidatesmany_to_manyrequirednone (required-if-present)n/a-
job_applicationsresults injob_offersone_to_manyrequirednone (required-if-present)n/a-
candidatesbecomesemployeesone_to_onerequirednone (required-if-present)n/a-
candidatesbecomes pre-employeepre_employeesone_to_onerequirednone (required-if-present)n/a-
employeesapplies_ascandidatesone_to_manyoptionalnonen/a-
candidatescorresponds_viacandidate_emailsone_to_manyoptionalnonen/a-
candidatesscreened_viadrug_health_screeningsone_to_manyoptionalnonen/a-
candidatessubmitted_viaagency_submissionsone_to_manyoptionalnonen/a-

6. Cross-domain context

6.1 Master consumers (other modules / domains that embed this scope’s masters)

data_objectother module / domainrolenecessitynotes
candidate_assessmentsHCM-LIFECYCLE-WORKFLOWS (Employee Lifecycle Workflows) - HCMconsumeroptional-
candidate_assessmentsTALENT-PERFORMANCE-MGMT (Performance and Goal Management) - TALENT-MGMTconsumeroptional-
interview_scorecardsHIRING-STARTER (Hiring Starter) - ATSembedded_masteroptional-
interviewsHIRING-STARTER (Hiring Starter) - ATSembedded_masterrequired-

6.2 Outbound handoffs (events this scope publishes)

source moduletarget domaintarget moduletrigger_eventtransitionpayloadintegrationfrictiondescription
ATS-CANDIDATE-CRMHCMHCM-LIFECYCLE-WORKFLOWScandidate.hiredhired (lifecycle)candidatesevent_streamhighHired-candidate event publishes the hiring outcome to HCM, which must create the employee record. Identifier mapping (candidate_id -> employee_id) is the canonical reconciliation gap.
ATS-INTERVIEWSHCMHCM-LIFECYCLE-WORKFLOWScandidate_assessment.failed(lifecycle)candidate_assessmentsevent_streamlowFailed-assessment outcomes close the candidate’s loop in ATS and propagate to HCM only if the candidate is an internal-mobility applicant whose profile should reflect the development gap.
ATS-INTERVIEWSHCMHCM-LIFECYCLE-WORKFLOWScandidate_assessment.passed(lifecycle)candidate_assessmentsevent_streammediumPassing an assessment advances the candidate; on eventual hire, HCM uses the assessment result as the first data point for the new-hire skill profile.
ATS-RECRUITMENT-PIPELINEATSATS-TALENT-POOLSjob_application.rejected(state_change)job_applicationslifecycle_progressionlow-
ATS-INTERVIEWSATSATS-RECRUITMENT-PIPELINEcandidate_assessment.failed(lifecycle)job_applicationslifecycle_progressionlow-
ATS-INTERVIEWSATSATS-RECRUITMENT-PIPELINEcandidate_assessment.passed(lifecycle)job_applicationslifecycle_progressionlow-
ATS-INTERVIEWSATSATS-RECRUITMENT-PIPELINEinterview.completed(lifecycle)job_applicationslifecycle_progressionlow-
ATS-INTERVIEWSTALENT-MGMTTALENT-SUCCESSION-CAREERcandidate_assessment.passed(lifecycle)candidate_assessmentsapi_callmediumCompleted assessment scores seed the talent-management skill profile for hired candidates and a structured talent pool for non-hires.
ATS-CANDIDATE-CRMBEN-ADMINBEN-ENROLLMENTcandidate.hiredhired (lifecycle)candidatesevent_streamlowHired candidate triggers eligibility window in BEN-ADMIN.
ATS-INTERVIEWSPAPA-WORKFORCE-METRICSinterview_scorecard.submitted(lifecycle)interview_scorecardsevent_streamlow-
ATS-CANDIDATE-CRMONBOARDINGONB-JOURNEY-MGMTcandidate.hiredhired (lifecycle)candidatesevent_streammediumHired candidate drives onboarding-plan kickoff with role/location/manager context from ATS payload.

6.3 Inbound handoffs (events this scope reacts to)

target modulesource domainsource moduletrigger_eventtransitionpayloadintegrationfrictiondescription
ATS-CANDIDATE-CRMHCMHCM-CORE-WORKERemployee.applied_internallyactiveactive (signal)candidatesapi_callmediumWhen an employee applies internally, HCM hands the worker context to the applicant tracker, which materializes an internal candidate record from the worker profile. Friction: reconciling the worker identity against the candidate identity space.
ATS-RECRUITMENT-PIPELINEATSATS-TALENT-POOLStalent_pool.candidate_activated(state_change)job_applicationslifecycle_progressionlow-
ATS-CANDIDATE-CRMATSATS-REFERRALScandidate_referral.submitted(lifecycle)candidateslifecycle_progressionlow-
ATS-INTERVIEWSATSATS-RECRUITMENT-PIPELINEjob_application.advanced(state_change)interviewslifecycle_progressionlow-

6.4 Master providers (modules / domains that own masters this scope embeds)

data_objectrole herenecessitycanonical owner(s)slice notes
candidatesembedded_masterrequiredATS-CANDIDATE-CRM (ATS)-
job_applicationsembedded_masterrequiredATS-RECRUITMENT-PIPELINE (ATS)-

7. Lifecycle states

candidate_assessment_templates (Candidate Assessment Template)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Template being authored / validated.
2active----Template assignable to candidates.
3retired---Template no longer assignable.

candidate_assessments (Assessment)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1invited---Assessment invitation sent to the candidate by the partner system.
2in_progress----Candidate is actively taking the assessment.
3completed---Candidate finished the assessment and a score/result is recorded.
4expired---Invitation lapsed before the candidate completed the assessment.
5canceled---Assessment withdrawn before completion.

candidates (Candidate)

This scope holds candidates as embedded_master; the canonical state machine is owned by ATS-CANDIDATE-CRM.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1prospect---Person known to the recruiting org with no active application.
2active----Candidate has at least one open application or is actively engaged.
3hired-ats-interviews:hire_candidateCandidate accepted an offer and converted to employee.
4do_not_hire-ats-interviews:flag_do_not_hireCandidate flagged as ineligible for future consideration; gated decision.
5archived---Candidate kept in the database but not active in any pipeline.

interview_kits (Interview Kit)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Kit being authored.
2active----Kit in use for live interviews.
3archived---Kit retired; no new interviews schedule against it.

interview_panels (Interview Panel)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1forming---Recruiter assembling the panel.
2assembled----All panel members confirmed; interview can proceed.
3completed---Interview held; consolidated debrief done.
4canceled---Panel disbanded before interview.

interview_scorecards (Interview Scorecard)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Interviewer is filling in ratings and notes against the rubric.
2submitted-ats-interviews:submit_scorecardScorecard submitted and locked; hire/no-hire recommendation recorded.

interviewer_availability_slots (Interviewer Availability Slot)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1available---Slot bookable.
2booked----Slot reserved for an interview.
3released---Booking canceled; slot freed.
4past---Slot expired without booking.

interviews (Interview)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1scheduled---Interview booked with candidate, panel, time, and medium.
2confirmed----Candidate and panel confirmed attendance.
3completed---Interview took place; scorecards are being collected.
4no_show---Candidate or panel did not attend; interview did not occur.
5canceled---Interview canceled before it took place.
6rescheduled---Original slot abandoned in favor of a new scheduled interview record.

job_applications (Application)

This scope holds job_applications as embedded_master; the canonical state machine is owned by ATS-RECRUITMENT-PIPELINE.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1applied---Candidate submitted an application against the requisition.
2screening----Recruiter is reviewing resume and qualifications.
3interviewing----Candidate is progressing through interview loops.
4offer_extended----An offer has been generated and is in flight for this application.
5hired-ats-interviews:hire_candidateCandidate accepted the offer and was hired; gated transition.
6rejected---Application closed without progression by recruiter or hiring manager.
7withdrawn---Candidate withdrew their application.

8. Permissions and business rules (derived)

8.1 Permissions

permissiontierdescriptionincluded in :admin?
ats-interviews:readbaseline-readRead access to every entity in the module
ats-interviews:managebaseline-manageEdit operational records
ats-interviews:adminbaseline-adminEdit reference data and inherit every workflow gate below-
ats-interviews:hire_candidateworkflow-gate (lifecycle)Transition candidates into state hired
ats-interviews:flag_do_not_hireworkflow-gate (lifecycle)Transition candidates into state do_not_hire
ats-interviews:submit_scorecardworkflow-gate (lifecycle)Transition interview_scorecards into state submitted
ats-interviews:view_all_interview_scorecardsoverride (personal_content)View all interview_scorecards rows beyond row-scope
ats-interviews:manage_all_interview_scorecardsoverride (personal_content)Manage all interview_scorecards rows beyond row-scope
ats-interviews:view_all_candidatesoverride (personal_content)View all candidates rows beyond row-scope
ats-interviews:manage_all_candidatesoverride (personal_content)Manage all candidates rows beyond row-scope
ats-interviews:view_all_applicationsoverride (personal_content)View all job_applications rows beyond row-scope
ats-interviews:manage_all_applicationsoverride (personal_content)Manage all job_applications rows beyond row-scope

8.2 Business rules

rule_namedata_objectsource flagintent
interview_scorecard_edit_scopeinterview_scorecardshas_personal_contentRow-scope by default; override via ats-interviews:view_all_interview_scorecards / ats-interviews:manage_all_interview_scorecards
candidate_edit_scopecandidateshas_personal_contentRow-scope by default; override via ats-interviews:view_all_candidates / ats-interviews:manage_all_candidates
application_edit_scopejob_applicationshas_personal_contentRow-scope by default; override via ats-interviews:view_all_applications / ats-interviews:manage_all_applications

9. Roles, RACI, and responsibilities (derived)

Baseline roles, the permission hierarchy, and RACI realization are DERIVED from this scope’s entity-type write tiers + process_raci; none of it is stored in the catalog (the deployer provisions it from this blueprint).

9.1 ATS-INTERVIEWS

Baseline roles:

rolebaseline grant
ats-interviews_viewerats-interviews:read
ats-interviews_managerats-interviews:manage
ats-interviews_adminats-interviews:admin

Permission hierarchy:

permissionincludes
ats-interviews:adminats-interviews:manage
ats-interviews:manageats-interviews:read
ats-interviews:adminats-interviews:hire_candidate
ats-interviews:adminats-interviews:flag_do_not_hire
ats-interviews:adminats-interviews:submit_scorecard
ats-interviews:adminats-interviews:view_all_interview_scorecards
ats-interviews:adminats-interviews:manage_all_interview_scorecards
ats-interviews:adminats-interviews:view_all_candidates
ats-interviews:adminats-interviews:manage_all_candidates
ats-interviews:adminats-interviews:view_all_applications
ats-interviews:adminats-interviews:manage_all_applications

Processes wired:

process_keyprocess_namePCF codePCF IDleveldescription
hire_candidateHire candidate7.2.4.3104654Wrapping up the process for hiring candidates. Agree to all hiring terms and conditions. Have the candidate accept and sign the job offer.
interview_candidatesInterview candidates7.2.3.2104574Assessing the candidates by their performance in the interviews. Conduct HR interview, technical interview, hiring manager interview, etc. Understand the mindset of the candidate, and comprehend his/her personal and professional lives.

RACI realization:

actorkindraciprocess_keyrealization
RECRUITING-RECRUITERpersonaresponsiblehire_candidategrant gates [ats-interviews:hire_candidate, ats-interviews:hire_candidate] + the gated entities’ write tier
HIRING-MANAGERpersonaaccountablehire_candidateapproval gate
LEGAL-COMPLIANCE-SPECIALISTpersonainformedhire_candidatenotification side effect (trigger_event / webhook_receiver)
HIRING-MANAGERpersonaresponsibleinterview_candidatesgrant gates [ats-interviews:submit_scorecard] + the gated entities’ write tier
RECRUITING-MANAGERpersonaaccountableinterview_candidatesapproval gate
RECRUITING-RECRUITERpersonaconsultedinterview_candidatesadvisory read grant
RECRUITING-COORDINATORpersonainformedinterview_candidatesnotification side effect (trigger_event / webhook_receiver)

9.2 Functional ownership and default grants

responsibilitybusiness functiondefault roledefault tier
ownerRecruitingadmin:admin
contributorHuman Resourcesmanage:manage
contributorLegalmanage:manage
consumerFinanceread:read