Recommendations — naming, boundaries and pilot scope
The Use / Avoid guidance is our recommended domain language, not a claim that these names are already implemented. Solid relationships describe current code; dashed relationships describe the Confluence pilot.
Use
- Self-managed candidate / Agency-managed candidate / Representation ended
- Agency candidates as the domain term; External sourcing is only the feature label
- Applicant = a candidate in the context of one job
- Hiring company = the role a Company plays for a job
- Agency member = person acting via an ordinary CompanyMembership
Avoid
- “Open candidate” meaning “no active representation”
- “Lead Recruiter” (outdated; roles are Hiring Manager, Recruiter, Senior Recruiter, Manager)
- “Hired” as a person type or as a JobApplication status
- Calling a JobProposal an offer, or a match consent
- Agency as a third account type next to candidate and recruiter
- Reading
profileType COMPANY_OWNER as company permissions
Later / out of pilot scope
- Agency contracts, fees and agency-specific billing (ordinary company subscriptions already exist)
- Several agencies per profile
- Candidate logins for agency-managed profiles
Open question
- Salary expectation and agency client rate are different things; which one DevKit supplies is unresolved, so no rate entity is shown.
- End then Delete is in the pilot: End stops representation; Delete erases the profile separately. Retention and deletion wording still need agreement.