Semantius Logo

Recruitment Pipeline

1. Overview

Requisitions → postings → applications with pipeline-stage lifecycle. Realizes REQ-MGMT and CANDIDATE-EXP (application flow slice). Embedded-masters candidates, optionally hcm_positions and org_units for canonical position/org context.

2. Entity summary

Namedata_objectDescription
Applicant Flow Recordsapplicant_flow_recordsOFCCP-mandated logs of every internet applicant against a requisition, capturing demographics, expressed interest, qualifications, and disposition for audit.
Application Dispositionsapplication_dispositionsCategorized reasons a job application was not selected, driving OFCCP applicant-flow reporting and internal hiring analytics.
Application Screening Answersapplication_screening_answersCandidate answers to screening questions on a specific job application, used to auto-disqualify on knockout rules.
Application Screening Questionsapplication_screening_questionsCustom screening questions attached to a job posting or template, including knockout and qualifying questions with their answer type and rules.
Application Stage Transitionsapplication_stage_transitionsAudit-trail records of an application moving between stages, with from-stage, to-stage, actor, timestamp, and reason for cycle-time analytics.
Application Stagesapplication_stagesConfigured stages in the recruiting pipeline (sourced, applied, screened, onsite, offer, hired) that define a job application’s lifecycle.
Applicationsjob_applicationsCandidate submissions against a specific requisition, with pipeline stage, status, source, and full evaluation history.
EEO Responseseeo_responsesVoluntary self-identification submitted by applicants for equal-employment reporting, stored separately from candidate records per regulation.
Hiring Team Assignmentshiring_team_assignmentsAssignments of specific users to recruiter, hiring manager, coordinator, interviewer, and reviewer roles on a single requisition.
Job Posting Distributionsjob_posting_distributionsSyndications of a job posting to external boards, with board name, post and expiry times, cost, and applicant attribution.
Job Postingsjob_postingsPublished, candidate-facing versions of a requisition on a career site or job board, one requisition possibly having many postings.
Job Requisitionsjob_requisitionsApproved requests to hire for a specific role, carrying headcount, level, location, hiring manager, recruiter, and status.
OFCCP Audit Trailsofccp_audit_trailsImmutable, append-only audit logs of every applicant-flow event for federal contractors, carrying the actor, timestamp, and compliance-relevant fields.
Requisition Approvalsrequisition_approvalsApproval steps that gate opening a job requisition, each recording the approver, decision, timestamp, and rationale.
Voluntary Self-Identificationsvoluntary_self_identificationsVoluntary candidate disclosures of protected-class membership per EEOC and OFCCP requirements, recording the offer or decline-to-answer decision and audit metadata.
CandidatescandidatesPeople known to the recruiting organization, with or without an active application, carrying contact details, resume, tags, consent, and source.
Job Profilesjob_profilesCanonical role definitions in the job catalog: title, family, level, responsibilities, required skills, pay range, and FLSA class. Many positions share one profile.
LocationslocationsPhysical or organizational locations referenced across the system, used to place and group other records.
Org Unitsorg_unitsNodes in the organizational hierarchy such as divisions, departments, and teams, with manager, cost center alignment, geographic scope, and parent-child links.
Positionshcm_positionsApproved org slots with role definition, cost center, reporting line, location, and FTE allocation. Each can be open, filled, or eliminated.
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;
  job_requisitions["Job Requisitions"]
  job_postings["Job Postings"]
  job_applications["Applications"]
  candidates["Candidates"]
  hcm_positions["Positions"]
  org_units["Org Units"]
  locations["Locations"]
  job_profiles["Job Profiles"]
  application_stages["Application Stages"]
  application_stage_transitions["Application Stage Transitions"]
  requisition_approvals["Requisition Approvals"]
  job_posting_distributions["Job Posting Distributions"]
  application_screening_questions["Application Screening Questions"]
  application_screening_answers["Application Screening Answers"]
  eeo_responses["EEO Responses"]
  hiring_team_assignments["Hiring Team Assignments"]
  application_dispositions["Application Dispositions"]
  ofccp_audit_trails["OFCCP Audit Trails"]
  applicant_flow_records["Applicant Flow Records"]
  voluntary_self_identifications["Voluntary Self-Identifications"]
  users["Users"]
  job_requisitions -->|"defines_pipeline"| application_stages
  job_applications -->|"transitions_via"| application_stage_transitions
  application_stages -->|"lands_at"| application_stage_transitions
  job_requisitions -->|"gated_by"| requisition_approvals
  job_postings -->|"syndicates_via"| job_posting_distributions
  job_postings -->|"asks"| application_screening_questions
  job_applications -->|"answers_via"| application_screening_answers
  application_screening_questions -->|"answered_by"| application_screening_answers
  candidates -->|"self_identifies_via"| eeo_responses
  candidates -->|"self_ids_via"| voluntary_self_identifications
  job_applications -->|"disposed_via"| application_dispositions
  job_applications -->|"logged_via"| applicant_flow_records
  job_requisitions -->|"staffed_by"| hiring_team_assignments
  applicant_flow_records -->|"audited_via"| ofccp_audit_trails
  org_units -->|"contains"| hcm_positions
  job_profiles -->|"defines"| hcm_positions
  hcm_positions -->|"spawns"| job_requisitions
  job_profiles -->|"feeds"| job_postings
  job_requisitions -->|"is advertised through"| job_postings
  job_requisitions -->|"receives"| job_applications
  job_postings -->|"is applied to via"| job_applications
  candidates -->|"submits"| job_applications
  org_units -->|"rolls_up_to"| org_units
  locations -->|"rolls_up_to"| locations
  hiring_team_assignments -->|"assigns"| users
  candidates -->|"has owning recruiter"| users
  job_postings -->|"has publisher"| users
  application_stage_transitions -->|"has author"| users
  applicant_flow_records -->|"has owner"| users
  requisition_approvals -->|"has approver"| users
  ofccp_audit_trails -->|"has author"| users
  users -->|"manages"| hcm_positions
  users -->|"leads"| org_units
  users -->|"owns"| job_profiles
  job_requisitions -->|"has recruiter and hiring manager"| users
  job_applications -->|"has owning recruiter"| users
  org_units -->|"has members"| users
  locations -->|"houses"| users
  class job_requisitions master;
  class job_postings master;
  class job_applications master;
  class candidates embedded_master;
  class hcm_positions embedded_master;
  class org_units embedded_master;
  class locations embedded_master;
  class job_profiles embedded_master;
  class application_stages master;
  class application_stage_transitions master;
  class requisition_approvals master;
  class job_posting_distributions master;
  class application_screening_questions master;
  class application_screening_answers master;
  class eeo_responses master;
  class hiring_team_assignments master;
  class application_dispositions master;
  class ofccp_audit_trails master;
  class applicant_flow_records master;
  class voluntary_self_identifications master;
  class users platform_builtin;
  style hcm_positions stroke-dasharray:5 5;
  style org_units stroke-dasharray:5 5;
  style locations stroke-dasharray:5 5;
  style eeo_responses stroke-dasharray:5 5;
  style application_dispositions stroke-dasharray:5 5;
  style ofccp_audit_trails stroke-dasharray:5 5;
  style applicant_flow_records stroke-dasharray:5 5;
  style voluntary_self_identifications stroke-dasharray:5 5;

3. Entities catalog

#data_objectcanonical codesingularpluralrolemastered inmastered labelnecessitypersonal_contententity_typewrite tiernotes
1applicant_flow_recordsapplicant_flow_recordsApplicant Flow RecordApplicant Flow Recordsmaster--optionalyesoperational_workflow:manage-
2application_dispositionsapplication_dispositionsApplication DispositionApplication Dispositionsmaster--optional-operational_record:manage-
3application_screening_answersapplication_screening_answersApplication Screening AnswerApplication Screening Answersmaster--requiredyesoperational_record:manage-
4application_screening_questionsapplication_screening_questionsApplication Screening QuestionApplication Screening Questionsmaster--required-catalog:admin-
5application_stage_transitionsapplication_stage_transitionsApplication Stage TransitionApplication Stage Transitionsmaster--required-operational_record:manage-
6application_stagesapplication_stagesApplication StageApplication Stagesmaster--required-catalog:admin-
7job_applicationsjob_applicationsApplicationApplicationsmaster--requiredyesoperational_workflow:manage-
8eeo_responseseeo_responsesEEO ResponseEEO Responsesmaster--optionalyesoperational_workflow:manage-
9hiring_team_assignmentshiring_team_assignmentsHiring Team AssignmentHiring Team Assignmentsmaster--required-junction:manage-
10job_posting_distributionsjob_posting_distributionsJob Posting DistributionJob Posting Distributionsmaster--required-operational_workflow:manage-
11job_postingsjob_postingsJob PostingJob Postingsmaster--required-operational_workflow:manage-
12job_requisitionsjob_requisitionsJob RequisitionJob Requisitionsmaster--required-operational_workflow:manage-
13ofccp_audit_trailsofccp_audit_trailsOFCCP Audit TrailOFCCP Audit Trailsmaster--optional-operational_record:manage-
14requisition_approvalsrequisition_approvalsRequisition ApprovalRequisition Approvalsmaster--required-operational_workflow:manage-
15voluntary_self_identificationsvoluntary_self_identificationsVoluntary Self-IdentificationVoluntary Self-Identificationsmaster--optionalyesoperational_record:manage-
16candidatescandidatesCandidateCandidatesembedded_masterats-candidate-crmCandidate CRMrequiredyesoperational_workflow:manage-
17job_profilesjob_profilesJob ProfileJob Profilesembedded_masterhcm-org-positionsOrganization and Position Managementrequired-catalog:admin-
18locationslocationsLocationLocationsembedded_masteriwms-location-masterLocation and Property Masteroptional-catalog:admin-
19org_unitsorg_unitsOrg UnitOrg Unitsembedded_masterhcm-org-positionsOrganization and Position Managementoptional-operational_workflow:manage-
20hcm_positionshcm_positionsPositionPositionsembedded_masterhcm-org-positionsOrganization and Position Managementoptional-operational_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
job_requisitionsdefines_pipelineapplication_stagesone_to_manyreferencerequiredsourcerestrictreference-
job_applicationstransitions_viaapplication_stage_transitionsone_to_manycompositionrequiredsourcecascadeparent-
application_stageslands_atapplication_stage_transitionsone_to_manyreferencerequiredtargetrestrictreference-
job_requisitionsgated_byrequisition_approvalsone_to_manycompositionrequiredsourcecascadeparent-
job_postingssyndicates_viajob_posting_distributionsone_to_manycompositionoptionalsourcecascadeparent-
job_postingsasksapplication_screening_questionsone_to_manycompositionoptionalsourcecascadeparent-
job_applicationsanswers_viaapplication_screening_answersone_to_manycompositionoptionalsourcecascadeparent-
application_screening_questionsanswered_byapplication_screening_answersone_to_manyreferencerequiredsourcerestrictreference-
candidatesself_identifies_viaeeo_responsesone_to_manycompositionoptionalsourcecascadeparent-
candidatesself_ids_viavoluntary_self_identificationsone_to_manycompositionoptionalsourcecascadeparent-
job_applicationsdisposed_viaapplication_dispositionsone_to_manycompositionoptionalsourcecascadeparent-
job_applicationslogged_viaapplicant_flow_recordsone_to_onecompositionrequiredsourcecascadeparent-
job_requisitionsstaffed_byhiring_team_assignmentsone_to_manycompositionrequiredsourcecascadeparent-
applicant_flow_recordsaudited_viaofccp_audit_trailsone_to_manycompositionrequiredsourcecascadeparent-
org_unitscontainshcm_positionsone_to_manyreferencerequiredsourcerestrictreference-
job_profilesdefineshcm_positionsone_to_manyreferencerequiredsourcerestrictreference-
hcm_positionsspawnsjob_requisitionsone_to_manyreferenceoptionalsourceclearreference-
job_profilesfeedsjob_postingsone_to_manyreferenceoptionalsourceclearreference-
job_requisitionsis advertised throughjob_postingsone_to_manyreferencerequiredsourcerestrictreference-
job_requisitionsreceivesjob_applicationsone_to_manyreferencerequiredsourcerestrictreference-
job_postingsis applied to viajob_applicationsone_to_manyreferencerequiredsourcerestrictreference-
candidatessubmitsjob_applicationsone_to_manyreferencerequiredtargetrestrictreference-
org_unitsrolls_up_toorg_unitsone_to_manyreferenceoptionalsourceclearreference-
locationsrolls_up_tolocationsone_to_manyreferenceoptionalsourceclearreference-

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

fromverbtocardinalitynecessityowner_sidedelete_modefk_formatnotes
hiring_team_assignmentsassignsusersmany_to_manyrequiredsourcerestrictreference-
candidateshas owning recruiterusersmany_to_manyoptionalsourceclearreference-
job_postingshas publisherusersmany_to_manyrequiredsourcerestrictreference-
application_stage_transitionshas authorusersmany_to_manyoptionalsourceclearreference-
applicant_flow_recordshas ownerusersmany_to_manyoptionalsourceclearreference-
requisition_approvalshas approverusersmany_to_manyrequiredsourcerestrictreference-
ofccp_audit_trailshas authorusersmany_to_manyoptionalsourceclearreference-
usersmanageshcm_positionsone_to_manyoptionalsourceclearreference-
usersleadsorg_unitsone_to_manyoptionalsourceclearreference-
usersownsjob_profilesone_to_manyoptionalsourceclearreference-
job_requisitionshas recruiter and hiring managerusersmany_to_manyrequiredsourcerestrictreference-
job_applicationshas owning recruiterusersmany_to_manyrequiredsourcerestrictreference-
org_unitshas membersusersone_to_manyoptionaltargetclearreference-
locationshousesusersone_to_manyoptionaltargetclearreference-

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.

fromverbtocardinalitynecessitydelete_modefk_formatnotes
job_applicationsschedulesinterviewsone_to_manyrequirednone (required-if-present)n/a-
job_applicationsrequirescandidate_assessmentsone_to_manyrequirednone (required-if-present)n/a-
job_applicationsresults injob_offersone_to_manyrequirednone (required-if-present)n/a-
job_requisitionsupdatesposition_demand_forecastsmany_to_manyoptionalnonen/a-
job_requisitionsfeedspeople_kpismany_to_manyoptionalnonen/a-
headcount_plansauthorizesjob_requisitionsone_to_manyrequirednone (required-if-present)n/a-
position_demand_forecaststriggersjob_requisitionsone_to_manyoptionalnonen/a-

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-
job_profilesexpectscompetency_modelsone_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-
candidatessubmits_viadata_subject_requestsone_to_manyoptionalnonen/a-
candidatesacknowledges_viafcra_summary_of_rights_acknowledgementsone_to_manyoptionalnonen/a-
candidatesdocumented_viacandidate_documentsone_to_manyoptionalnonen/a-
candidatesannotated_viacandidate_notesone_to_manyoptionalnonen/a-
candidatestagged_viacandidate_tag_assignmentsone_to_manyoptionalnonen/a-
locationshosts_desk_bookingsdesk_bookingsone_to_manyrequirednone (required-if-present)n/a-
locationshosts_room_reservationsroom_reservationsone_to_manyrequirednone (required-if-present)n/a-
locationssite_of_service_requestsworkplace_service_requestsone_to_manyrequirednone (required-if-present)n/a-
locationsmeasured_by_reportsspace_utilization_reportsone_to_manyrequirednone (required-if-present)n/a-
locationssubject_of_feedbackworkplace_experience_feedbackone_to_manyoptionalnonen/a-
org_unitsgroupsemployeesone_to_manyrequirednone (required-if-present)n/a-
hcm_positionsis_filled_byemployeesone_to_oneoptionalnonen/a-
cost_centersfundsorg_unitsone_to_manyrequirednone (required-if-present)n/a-
org_unitsengagescontingent_workersone_to_manyoptionalnonen/a-
org_unitsis_scored_byengagement_driversone_to_manyoptionalnonen/a-
org_unitsis_measured_bypeople_kpisone_to_manyoptionalnonen/a-
job_profilesmaps_toskill_profilesmany_to_manyoptionalnonen/a-
org_unitstriggersiga_entitlement_definitionsone_to_manyoptionalnonen/a-
job_profilesmaps_tocoursesmany_to_manyoptionalnonen/a-
salary_bandsanchorshcm_positionsone_to_manyoptionalnonen/a-
salary_bandsbandsjob_profilesone_to_manyoptionalnonen/a-
org_unitsmaps_tocost_centersone_to_oneoptionalnonen/a-
hcm_positionsrequirescompliance_assignmentsone_to_manyoptionalnonen/a-
job_profilesrequireslearning_pathsmany_to_manyoptionalnonen/a-
job_profilesexpectsskill_profilesmany_to_manyoptionalnonen/a-
org_unitssponsorscompliance_assignmentsone_to_manyoptionalnonen/a-
skill_profilesfeedscandidatesone_to_manyoptionalnonen/a-
org_unitssponsorsbenefit_plansmany_to_manyoptionalnonen/a-
survey_campaignstargetsorg_unitsmany_to_manyoptionalnonen/a-
org_unitsownsaction_plansone_to_manyoptionalnonen/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-
candidatesbecomesemployeesone_to_onerequirednone (required-if-present)n/a-
candidatesbecomes pre-employeepre_employeesone_to_onerequirednone (required-if-present)n/a-
employeesfillshcm_positionsone_to_oneoptionalnonen/a-
workforce_scenariosdriveshcm_positionsone_to_manyrequirednone (required-if-present)n/a-
org_designsproposeshcm_positionsone_to_manyrequirednone (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
job_applicationsATS-INTERVIEWS (Candidate Interviews) - ATSembedded_masterrequired-
job_applicationsATS-OFFERS (Job Offers) - ATSembedded_masterrequired-
job_applicationsHIRING-STARTER (Hiring Starter) - ATSembedded_masterrequired-
job_postingsHIRING-STARTER (Hiring Starter) - ATSembedded_masterrequired-
job_postingsTLNT-INTEL-MOBILITY (Mobility, Succession and Fit) - TLNT-INTELconsumerrequired-
job_requisitionsHCM-ORG-POSITIONS (Organization and Position Management) - HCMconsumeroptional-
job_requisitionsSWP-DEMAND-FORECAST (Demand Forecast) - SWPcontributorrequired-
job_requisitionsTLNT-INTEL-MOBILITY (Mobility, Succession and Fit) - TLNT-INTELconsumerrequired-

6.2 Outbound handoffs (events this scope publishes)

source moduletarget domaintarget moduletrigger_eventtransitionpayloadintegrationfrictiondescription
HCM-ORG-POSITIONSIGAIGA-ACCESS-REQUESTorg_unit.created(state_change)org_unitsevent_streammediumNew org unit drives IGA group/role provisioning. Group-name conventions and ownership must be encoded; otherwise orphan groups proliferate.
HCM-ORG-POSITIONSIGAIGA-ACCESS-REQUESTorg_unit.disbanded(state_change)org_unitsevent_streamhighOrg-unit disbandment requires IGA group cleanup; orphan-group risk if employees re-assigned slowly.
HCM-ORG-POSITIONSIGAIGA-ACCESS-REQUESTorg_unit.merged(state_change)org_unitsevent_streamhighOrg-unit merge consolidates IGA groups: members migrate, entitlements deduplicated, SoD revalidated. Often runs as a batch project rather than event.
HCM-ORG-POSITIONSHCMHCM-CORE-WORKERhcm_position.approved_for_creationapproved_for_creation (lifecycle)hcm_positionslifecycle_progressionlowApproved position becomes hireable; worker-record module can attach a new employee once the requisition closes.
HCM-ORG-POSITIONSHCMHCM-CORE-WORKERorg_unit.disbanded(state_change)org_unitslifecycle_progressionhighDisbanded org unit requires every incumbent employee to be re-placed before close; worker-record module blocks the close until reassignment completes.
HCM-ORG-POSITIONSHCMHCM-CORE-WORKERorg_unit.merged(state_change)org_unitslifecycle_progressionmediumOrg-unit consolidation cascades employee re-assignment, manager and dotted-line reassignment, and reporting-line recompute on the worker record.
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-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSheadcount.approvedapproved (state_change)job_requisitionsevent_streamlowHeadcount approval (often originating from HCM/SWP) confirmed back to HCM; gives ATS green light to source.
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSrequisition.filledfilled (state_change)job_requisitionsevent_streamlowRequisition fill closes headcount slot; HCM headcount-plan updates.
ATS-RECRUITMENT-PIPELINEATSATS-CANDIDATE-CRMjob_posting.published(state_change)job_postingslifecycle_progressionlow-
ATS-RECRUITMENT-PIPELINEATSATS-TALENT-POOLSjob_application.rejected(state_change)job_applicationslifecycle_progressionlow-
HCM-ORG-POSITIONSCOMP-MGMTCOMP-PLANNINGhcm_position.approved_for_creationapproved_for_creation (lifecycle)hcm_positionsevent_streamlowApproved position carries grade/band, anchoring offer-comp generation.
HCM-ORG-POSITIONSCOMP-MGMTCOMP-BENCHMARKINGjob_profile.published(state_change)job_profilesevent_streamlowJob profile links to salary bands; COMP-MGMT mapping authoritative.
ATS-CANDIDATE-CRMBEN-ADMINBEN-ENROLLMENTcandidate.hiredhired (lifecycle)candidatesevent_streamlowHired candidate triggers eligibility window in BEN-ADMIN.
HCM-ORG-POSITIONSFIN(domain-level)org_unit.created(state_change)org_unitsapi_callmediumNew org unit usually maps to cost-center; ERP-FIN must reflect the structure for budgeting and labor allocation.
HCM-ORG-POSITIONSPSAPSA-RESOURCE-MGMTjob_profile.activated(state_change)job_profilesevent_streamlowJob profile activated for production. PSA makes the role assignable on new project_assignments and project_resource_allocations.
HCM-ORG-POSITIONSPSAPSA-RESOURCE-MGMTjob_profile.published(state_change)job_profilesevent_streamlowNew job profile published. PSA picks up the role definition (competencies, level) as a new shape for skill-based demand modeling and resource_skill_inventories matching.
HCM-ORG-POSITIONSPSAPSA-RESOURCE-MGMTjob_profile.retired(state_change)job_profilesevent_streamlowJob profile retired. PSA blocks new assignments to the role and surfaces a migration list for any existing project_assignments still referencing it.
HCM-ORG-POSITIONSPSAPSA-RESOURCE-MGMTjob_profile.updated(state_change)job_profilesevent_streamlowJob profile updated (competencies, level, responsibilities). PSA revalidates the resource pool’s skill matches and surfaces gaps via existing resource_skill_inventory.gap_identified signal.
ATS-CANDIDATE-CRMONBOARDINGONB-JOURNEY-MGMTcandidate.hiredhired (lifecycle)candidatesevent_streammediumHired candidate drives onboarding-plan kickoff with role/location/manager context from ATS payload.
ATS-RECRUITMENT-PIPELINESWPSWP-DEMAND-FORECASTrequisition.filledfilled (state_change)job_requisitionsevent_streamlowFilled requisition feeds SWP actuals-vs-plan reconciliation.
HCM-ORG-POSITIONSSKILLS-MGMTSKILLS-MGMT-PROFILEjob_profile.published(state_change)job_profilesevent_streamlowJob profile competencies drive LMS skill-profile expectations and required-training assignments.

6.3 Inbound handoffs (events this scope reacts to)

target modulesource domainsource moduletrigger_eventtransitionpayloadintegrationfrictiondescription
HCM-ORG-POSITIONSHCMHCM-CORE-WORKERemployee.terminatedterminated (lifecycle)hcm_positionslifecycle_progressionlowPosition transitions from filled to open as the incumbent terminates; org-position module recomputes vacancy and span-of-control rollups.
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-PIPELINEHCMHCM-CORE-WORKERemployee.terminatedterminated (lifecycle)job_requisitionsapi_calllowEmployee termination in HCM optionally triggers backfill requisition consideration in ATS. Low friction when SWP-driven; some orgs auto-open a backfill req on regrettable losses, others route through SWP for approval first.
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONShcm_position.approved(state_change)hcm_positionsapi_callmedium-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONShcm_position.approved_for_creationapproved_for_creation (lifecycle)hcm_positionsevent_streammediumApproved position flows to ATS as the basis for a requisition. Approval state must be in sync to avoid requisitions opened against unapproved positions.
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONShcm_position.eliminated(state_change)hcm_positionsapi_callhigh-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONShcm_position.filled(state_change)hcm_positionsapi_callmedium-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONShcm_position.frozen(state_change)hcm_positionsapi_callhigh-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONShcm_position.opened(state_change)hcm_positionsapi_callmedium-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSjob_profile.activated(state_change)job_profilesapi_calllow-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSjob_profile.approved(state_change)job_profilesapi_calllow-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSjob_profile.published(state_change)job_profilesevent_streamlowCanonical job profile feeds ATS posting templates and screening criteria.
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSjob_profile.retired(state_change)job_profilesapi_callhigh-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSjob_profile.updated(state_change)job_profilesapi_callmedium-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSorg_unit.activated(state_change)org_unitsapi_calllow-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSorg_unit.closed(state_change)org_unitsapi_callhigh-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSorg_unit.created(state_change)org_unitsapi_callmedium-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSorg_unit.disbanded(state_change)org_unitsapi_callhigh-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSorg_unit.merged(state_change)org_unitsapi_callhigh-
ATS-RECRUITMENT-PIPELINEHCMHCM-ORG-POSITIONSorg_unit.reorganized(state_change)org_unitsapi_callhigh-
ATS-RECRUITMENT-PIPELINEATSATS-CANDIDATE-CRMjob_application.submitted(lifecycle)job_applicationslifecycle_progressionlow-
ATS-RECRUITMENT-PIPELINEATSATS-TALENT-POOLStalent_pool.candidate_activated(state_change)job_applicationslifecycle_progressionlow-
ATS-CANDIDATE-CRMATSATS-REFERRALScandidate_referral.submitted(lifecycle)candidateslifecycle_progressionlow-
ATS-RECRUITMENT-PIPELINEATSATS-INTERVIEWScandidate_assessment.failed(lifecycle)job_applicationslifecycle_progressionlow-
ATS-RECRUITMENT-PIPELINEATSATS-INTERVIEWScandidate_assessment.passed(lifecycle)job_applicationslifecycle_progressionlow-
ATS-RECRUITMENT-PIPELINEATSATS-INTERVIEWSinterview.completed(lifecycle)job_applicationslifecycle_progressionlow-
ATS-RECRUITMENT-PIPELINESWPSWP-DEMAND-FORECASTheadcount.approvedapproved (state_change)job_requisitionsapi_callhighApproved headcount in SWP authorizes requisition creation in ATS. THIS IS THE CO-MASTER BRIDGE: SWP masters the intent slice (approved position, budget, time window) and ATS masters the execution slice (pipeline, candidates, interviews, offer). High friction because SWP’s plan structure (org × geo × level × time) rarely matches ATS’s requisition template structure (job code × location × hiring manager × pay range), requiring mapping rules that drift as either side evolves.

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

data_objectrole herenecessitycanonical owner(s)slice notes
candidatesembedded_masterrequiredATS-CANDIDATE-CRM (ATS)-
hcm_positionsembedded_masteroptionalHCM-ORG-POSITIONS (HCM)-
job_profilesembedded_masterrequiredHCM-ORG-POSITIONS (HCM)-
locationsembedded_masteroptionalIWMS-LOCATION-MASTER (IWMS)-
org_unitsembedded_masteroptionalHCM-ORG-POSITIONS (HCM)-

7. Lifecycle states

applicant_flow_records (Applicant Flow Record)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1applied---Initial Internet Applicant capture at application submission. Demographics (voluntary) attached if self-identification was provided.
2under_consideration----Applicant has advanced past initial screening and is in active consideration. Auto-progressed when the linked application advances stages.
3dispositioned--ats-recruitment-pipeline:disposition_applicantRecruiter codes the OFCCP disposition reason on the applicant (selected, not selected with typed reason, withdrew, etc.).
4archived---Auto-archived per OFCCP retention rules (typically a two-year retention window for federal contractors).

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-recruitment-pipeline:hire_candidateCandidate accepted an offer and converted to employee.
4do_not_hire-ats-recruitment-pipeline:flag_do_not_hireCandidate flagged as ineligible for future consideration; gated decision.
5archived---Candidate kept in the database but not active in any pipeline.

eeo_responses (EEO Response)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1offered---Candidate presented with voluntary self-ID form.
2declined---Candidate declined to self-identify (counted as ‘not disclosed’).
3submitted---Candidate completed and submitted the form.

hcm_positions (Position)

This scope holds hcm_positions as embedded_master; the canonical state machine is owned by HCM-ORG-POSITIONS.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1proposed---Position has been designed but not yet approved against the headcount plan.
2approved--ats-recruitment-pipeline:approved_positionCleared by headcount/finance owner; eligible to spawn a requisition.
3open--ats-recruitment-pipeline:open_positionApproved and actively being recruited against; not yet filled.
4filled--ats-recruitment-pipeline:filled_positionAn employee occupies the position.
5frozen--ats-recruitment-pipeline:frozen_positionTemporarily not fillable (hiring freeze, budget hold); retains the slot.
6eliminated-ats-recruitment-pipeline:eliminated_positionRemoved from the org structure permanently.

job_applications (Application)

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-pre-employee-record: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.

job_posting_distributions (Job Posting Distribution)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1queued---Distribution scheduled but not yet posted.
2posted----Live on the target board.
3expired---Posting reached its expiry date on the board.
4withdrawn---Posting actively removed before expiry.

job_postings (Job Posting)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Posting being composed against a requisition for a specific board or region.
2published--ats-recruitment-pipeline:publish_postingPosting is live on the target channel; gated publish step.
3paused----Posting temporarily hidden from the channel.
4expired---Posting reached its scheduled end date.
5closed---Posting taken down because the requisition is filled or canceled.

job_profiles (Job Profile)

This scope holds job_profiles as embedded_master; the canonical state machine is owned by HCM-ORG-POSITIONS.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Profile is being authored or revised; not yet available for position assignment.
2approved--ats-recruitment-pipeline:approved_job_profileCleared by the catalog owner; ready to be referenced by positions and postings.
3active--ats-recruitment-pipeline:active_job_profileIn production use; positions and postings can reference it.
4retired-ats-recruitment-pipeline:retired_job_profileNo longer assignable to new positions; historical references preserved.

job_requisitions (Job Requisition)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Hiring manager is drafting the requisition.
2pending_approval----Requisition routed for headcount and budget approval.
3open--ats-recruitment-pipeline:approve_requisitionRequisition approved and actively recruiting.
4on_hold----Recruiting temporarily paused (budget freeze, scope change).
5filled-ats-recruitment-pipeline:close_requisitionRequisition closed because the role was filled.
6canceled---Requisition closed without a hire.

org_units (Org Unit)

This scope holds org_units as embedded_master; the canonical state machine is owned by HCM-ORG-POSITIONS.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Org unit defined as part of a future structure; not yet operational.
2active--ats-recruitment-pipeline:active_org_unitOperational unit; carries headcount, cost-center linkage, and reporting lines.
3reorganized-ats-recruitment-pipeline:reorganized_org_unitUnit folded into or replaced by a new structure; references remain for history.
4closed-ats-recruitment-pipeline:closed_org_unitUnit dissolved; no employees or positions reside in it.

requisition_approvals (Requisition Approval)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1pending---Approval step awaiting decision.
2approved-ats-recruitment-pipeline:approve_requisitionStep approved; requisition advances or opens.
3rejected-ats-recruitment-pipeline:reject_requisitionStep rejected; requisition blocked.
4withdrawn---Request withdrawn by submitter before decision.

8. Permissions and business rules (derived)

8.1 Permissions

permissiontierdescriptionincluded in :admin?
ats-recruitment-pipeline:readbaseline-readRead access to every entity in the module
ats-recruitment-pipeline:managebaseline-manageEdit operational records
ats-recruitment-pipeline:adminbaseline-adminEdit reference data and inherit every workflow gate below-
ats-recruitment-pipeline:approve_requisitionworkflow-gate (lifecycle)Transition job_requisitions into state open
ats-recruitment-pipeline:close_requisitionworkflow-gate (lifecycle)Transition job_requisitions into state filled
ats-recruitment-pipeline:publish_postingworkflow-gate (lifecycle)Transition job_postings into state published
ats-recruitment-pipeline:hire_candidateworkflow-gate (lifecycle)Transition candidates into state hired
ats-recruitment-pipeline:flag_do_not_hireworkflow-gate (lifecycle)Transition candidates into state do_not_hire
ats-recruitment-pipeline:approved_positionworkflow-gate (lifecycle)Transition hcm_positions into state approved
ats-recruitment-pipeline:open_positionworkflow-gate (lifecycle)Transition hcm_positions into state open
ats-recruitment-pipeline:filled_positionworkflow-gate (lifecycle)Transition hcm_positions into state filled
ats-recruitment-pipeline:frozen_positionworkflow-gate (lifecycle)Transition hcm_positions into state frozen
ats-recruitment-pipeline:eliminated_positionworkflow-gate (lifecycle)Transition hcm_positions into state eliminated
ats-recruitment-pipeline:approved_job_profileworkflow-gate (lifecycle)Transition job_profiles into state approved
ats-recruitment-pipeline:active_job_profileworkflow-gate (lifecycle)Transition job_profiles into state active
ats-recruitment-pipeline:retired_job_profileworkflow-gate (lifecycle)Transition job_profiles into state retired
ats-recruitment-pipeline:active_org_unitworkflow-gate (lifecycle)Transition org_units into state active
ats-recruitment-pipeline:reorganized_org_unitworkflow-gate (lifecycle)Transition org_units into state reorganized
ats-recruitment-pipeline:closed_org_unitworkflow-gate (lifecycle)Transition org_units into state closed
ats-recruitment-pipeline:reject_requisitionworkflow-gate (lifecycle)Transition requisition_approvals into state rejected
ats-recruitment-pipeline:disposition_applicantworkflow-gate (lifecycle)Transition applicant_flow_records into state dispositioned
ats-recruitment-pipeline:view_all_applicationsoverride (personal_content)View all job_applications rows beyond row-scope
ats-recruitment-pipeline:manage_all_applicationsoverride (personal_content)Manage all job_applications rows beyond row-scope
ats-recruitment-pipeline:view_all_candidatesoverride (personal_content)View all candidates rows beyond row-scope
ats-recruitment-pipeline:manage_all_candidatesoverride (personal_content)Manage all candidates rows beyond row-scope
ats-recruitment-pipeline:view_all_application_screening_answersoverride (personal_content)View all application_screening_answers rows beyond row-scope
ats-recruitment-pipeline:manage_all_application_screening_answersoverride (personal_content)Manage all application_screening_answers rows beyond row-scope
ats-recruitment-pipeline:view_all_eeo_responsesoverride (personal_content)View all eeo_responses rows beyond row-scope
ats-recruitment-pipeline:manage_all_eeo_responsesoverride (personal_content)Manage all eeo_responses rows beyond row-scope
ats-recruitment-pipeline:view_all_applicant_flow_recordsoverride (personal_content)View all applicant_flow_records rows beyond row-scope
ats-recruitment-pipeline:manage_all_applicant_flow_recordsoverride (personal_content)Manage all applicant_flow_records rows beyond row-scope
ats-recruitment-pipeline:view_all_voluntary_self-identificationsoverride (personal_content)View all voluntary_self_identifications rows beyond row-scope
ats-recruitment-pipeline:manage_all_voluntary_self-identificationsoverride (personal_content)Manage all voluntary_self_identifications rows beyond row-scope

8.2 Business rules

rule_namedata_objectsource flagintent
application_edit_scopejob_applicationshas_personal_contentRow-scope by default; override via ats-recruitment-pipeline:view_all_applications / ats-recruitment-pipeline:manage_all_applications
candidate_edit_scopecandidateshas_personal_contentRow-scope by default; override via ats-recruitment-pipeline:view_all_candidates / ats-recruitment-pipeline:manage_all_candidates
application_screening_answer_edit_scopeapplication_screening_answershas_personal_contentRow-scope by default; override via ats-recruitment-pipeline:view_all_application_screening_answers / ats-recruitment-pipeline:manage_all_application_screening_answers
eeo_response_edit_scopeeeo_responseshas_personal_contentRow-scope by default; override via ats-recruitment-pipeline:view_all_eeo_responses / ats-recruitment-pipeline:manage_all_eeo_responses
applicant_flow_record_edit_scopeapplicant_flow_recordshas_personal_contentRow-scope by default; override via ats-recruitment-pipeline:view_all_applicant_flow_records / ats-recruitment-pipeline:manage_all_applicant_flow_records
voluntary_self-identification_edit_scopevoluntary_self_identificationshas_personal_contentRow-scope by default; override via ats-recruitment-pipeline:view_all_voluntary_self-identifications / ats-recruitment-pipeline:manage_all_voluntary_self-identifications

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-RECRUITMENT-PIPELINE

Baseline roles:

rolebaseline grant
ats-recruitment-pipeline_viewerats-recruitment-pipeline:read
ats-recruitment-pipeline_managerats-recruitment-pipeline:manage
ats-recruitment-pipeline_adminats-recruitment-pipeline:admin

Permission hierarchy:

permissionincludes
ats-recruitment-pipeline:adminats-recruitment-pipeline:manage
ats-recruitment-pipeline:manageats-recruitment-pipeline:read
ats-recruitment-pipeline:adminats-recruitment-pipeline:approve_requisition
ats-recruitment-pipeline:adminats-recruitment-pipeline:close_requisition
ats-recruitment-pipeline:adminats-recruitment-pipeline:publish_posting
ats-recruitment-pipeline:adminats-recruitment-pipeline:hire_candidate
ats-recruitment-pipeline:adminats-recruitment-pipeline:flag_do_not_hire
ats-recruitment-pipeline:adminats-recruitment-pipeline:approved_position
ats-recruitment-pipeline:adminats-recruitment-pipeline:open_position
ats-recruitment-pipeline:adminats-recruitment-pipeline:filled_position
ats-recruitment-pipeline:adminats-recruitment-pipeline:frozen_position
ats-recruitment-pipeline:adminats-recruitment-pipeline:eliminated_position
ats-recruitment-pipeline:adminats-recruitment-pipeline:approved_job_profile
ats-recruitment-pipeline:adminats-recruitment-pipeline:active_job_profile
ats-recruitment-pipeline:adminats-recruitment-pipeline:retired_job_profile
ats-recruitment-pipeline:adminats-recruitment-pipeline:active_org_unit
ats-recruitment-pipeline:adminats-recruitment-pipeline:reorganized_org_unit
ats-recruitment-pipeline:adminats-recruitment-pipeline:closed_org_unit
ats-recruitment-pipeline:adminats-recruitment-pipeline:reject_requisition
ats-recruitment-pipeline:adminats-recruitment-pipeline:disposition_applicant
ats-recruitment-pipeline:adminats-recruitment-pipeline:view_all_applications
ats-recruitment-pipeline:adminats-recruitment-pipeline:manage_all_applications
ats-recruitment-pipeline:adminats-recruitment-pipeline:view_all_candidates
ats-recruitment-pipeline:adminats-recruitment-pipeline:manage_all_candidates
ats-recruitment-pipeline:adminats-recruitment-pipeline:view_all_application_screening_answers
ats-recruitment-pipeline:adminats-recruitment-pipeline:manage_all_application_screening_answers
ats-recruitment-pipeline:adminats-recruitment-pipeline:view_all_eeo_responses
ats-recruitment-pipeline:adminats-recruitment-pipeline:manage_all_eeo_responses
ats-recruitment-pipeline:adminats-recruitment-pipeline:view_all_applicant_flow_records
ats-recruitment-pipeline:adminats-recruitment-pipeline:manage_all_applicant_flow_records
ats-recruitment-pipeline:adminats-recruitment-pipeline:view_all_voluntary_self-identifications
ats-recruitment-pipeline:adminats-recruitment-pipeline:manage_all_voluntary_self-identifications

Processes wired:

process_keyprocess_namePCF codePCF IDleveldescription
manage_employee_requisitionsManage employee requisitions7.2.1216983Handling the requirements for new employees. Create and open job requisitions by clearly defining the job descriptions. Post these requirements internally and externally, and modify them as appropriate. Manage the dates of the whole requisition process.
recruit_source_candidatesRecruit/Source candidates7.2.2104403Recruiting new candidates for deployment across various functional areas inside the organization. Select methods for sourcing new employees. Manage relationships with third-party agencies. Stage recruitment fairs and drives. Manage employee referral programs.
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.
create_organizational_designCreate organizational design1.2.5100413Formulating a design for the organization’s resources that allow it to meet its objectives. Develop a new framework for molding the organization’s various processes into a coherent and seamless whole.
develop_maintain_jobDevelop and maintain job descriptions7.1.2.16104474Creating descriptions for job requisitions. Define the normal components of a job description, such as the overall position description with general areas of responsibility listed, essential functions of the job described with a couple of examples of each, required knowledge, skills, abilities, required education and experience, a description of the physical demands, and a description of the work environment.
conduct_organizationConduct organization restructuring opportunities1.1.5167923Examining the scope and contingencies for restructuring based on market situation and internal realities. Map the market forces over which any and all probabilities can be probed for utility and viability. Once the restructuring options have been analyzed and the due-diligence performed, execute the deal. Consider seeking professional services for assistance in formalizing these opportunities.

RACI realization:

actorkindraciprocess_keyrealization
RECRUITING-RECRUITERpersonaresponsiblemanage_employee_requisitionsgrant gates [ats-recruitment-pipeline:approve_requisition] + the gated entities’ write tier
RECRUITING-MANAGERpersonaaccountablemanage_employee_requisitionsapproval gate
RECRUITING-SOURCERpersonaresponsiblerecruit_source_candidatesgrant gates [ats-recruitment-pipeline:publish_posting] + the gated entities’ write tier
RECRUITING-RECRUITERpersonaresponsiblerecruit_source_candidatesgrant gates [ats-recruitment-pipeline:publish_posting] + the gated entities’ write tier
RECRUITING-MANAGERpersonaaccountablerecruit_source_candidatesapproval gate
HIRING-MANAGERpersonainformedrecruit_source_candidatesnotification side effect (trigger_event / webhook_receiver)
RECRUITING-RECRUITERpersonaresponsiblehire_candidategrant gates [ats-recruitment-pipeline:hire_candidate, ats-pre-employee-record:hire_candidate] + the gated entities’ write tier
HIRING-MANAGERpersonaaccountablehire_candidateapproval gate
LEGAL-COMPLIANCE-SPECIALISTpersonainformedhire_candidatenotification side effect (trigger_event / webhook_receiver)
HR-ORG-DESIGN-ANALYSTpersonaresponsiblecreate_organizational_designgrant gates [ats-recruitment-pipeline:approved_position, ats-recruitment-pipeline:active_org_unit] + the gated entities’ write tier
HR-BUSINESS-PARTNERpersonaaccountablecreate_organizational_designapproval gate
PEOPLE-MANAGERpersonaconsultedcreate_organizational_designadvisory read grant
HR-HRIS-ADMINpersonainformedcreate_organizational_designnotification side effect (trigger_event / webhook_receiver)
HR-ORG-DESIGN-ANALYSTpersonaresponsibledevelop_maintain_jobgrant gates [ats-recruitment-pipeline:approved_job_profile] + the gated entities’ write tier
HR-HRIS-ADMINpersonaaccountabledevelop_maintain_jobapproval gate
HR-BUSINESS-PARTNERpersonaconsulteddevelop_maintain_jobadvisory read grant
HR-ORG-DESIGN-ANALYSTpersonaresponsibleconduct_organizationgrant gates [ats-recruitment-pipeline:reorganized_org_unit] + the gated entities’ write tier
HR-BUSINESS-PARTNERpersonaaccountableconduct_organizationapproval gate
PEOPLE-MANAGERpersonaconsultedconduct_organizationadvisory read grant

9.2 Functional ownership and default grants

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