Data Models

Core data models and relationships in the WXRK platform.

Entity Relationship Overview

User (Auth)
  └── CandidateProfile
        ├── MBTIProfile
        ├── TechnicalReview
        │     └── Experience
        │           ├── Project
        │           └── STARStory
        └── Application
              ├── CVArtifact
              └── CoverLetterArtifact

CandidateProfile

The central entity for all candidate data.

FieldTypeDescription
userFK → UserOne-to-one auth link
full_namestringDisplay name
emailstringContact email
phonestringOptional phone number
locationstringCity / country
linkedin_urlURLLinkedIn profile link
github_urlURLGitHub profile link
years_experienceintYears of professional experience
summarytextProfessional summary
profile_photofileJPG/PNG/WebP, max 5 MB

MBTIProfile

FieldTypeDescription
candidateFK → CandidateProfileOwner
mbti_typeenumOne of 16 MBTI types
ie_scoreintIntrovert/Extrovert percentage
ns_scoreintIntuitive/Sensing percentage
tf_scoreintThinking/Feeling percentage
jp_scoreintJudging/Perceiving percentage
manually_overriddenboolTrue if user set type directly

Experience

FieldTypeDescription
candidateFK → CandidateProfileOwner
company_namestringEmployer name
job_titlestringRole title
start_datedateStart month/year
end_datedateEnd month/year (null = current)
company_descriptiontextOptional company context
locationstringOptional office location
summarytextNarrative summary
skillsM2M → SkillTagged skills
created_atdatetimeRecord creation timestamp
updated_atdatetimeLast modification timestamp

Project

FieldTypeDescription
experienceFK → ExperienceParent experience
namestringProject name
descriptiontextWhat was built or done
impact_metricstringQuantified result
tech_stackM2M → SkillTechnologies used

STARStory

FieldTypeDescription
experienceFK → ExperienceParent experience
situationtextContext for the challenge
tasktextWhat was assigned
actiontextSteps taken
resulttextQuantified outcome
tagsM2M → STARTagCategories (leadership, delivery, etc.)

Application

FieldTypeDescription
candidateFK → CandidateProfileOwner
job_descriptiontextFull JD text
job_urlURLOptional source URL
personal_contexttextUser's interest notes
statusenumdraft / generated / submitted / interview / offer / rejected
fit_scoreint0–100 compatibility score
created_atdatetimeCreation timestamp

Artifact

Shared base for generated documents.

FieldTypeDescription
applicationFK → ApplicationParent application
contenttextGenerated document text
word_countintComputed word count
pdf_filefileGenerated PDF
versionintIncrementing version number
created_atdatetimeGeneration timestamp

CVArtifact and CoverLetterArtifact both extend this base model.