diff --git a/src/TrueCV.Infrastructure/Jobs/ProcessCVCheckJob.cs b/src/TrueCV.Infrastructure/Jobs/ProcessCVCheckJob.cs index c119f8e..70c517c 100644 --- a/src/TrueCV.Infrastructure/Jobs/ProcessCVCheckJob.cs +++ b/src/TrueCV.Infrastructure/Jobs/ProcessCVCheckJob.cs @@ -397,22 +397,17 @@ public sealed class ProcessCVCheckJob }); } - // Penalty for overlaps (only if > 2 months) + // Note overlaps - these are often legitimate (part-time, consulting, transitions) + // Only flag as informational, no score penalty foreach (var overlap in timeline.Overlaps) { - var excessMonths = Math.Max(0, overlap.Months - 2); // Allow 2 month transition, prevent negative - var overlapPenalty = excessMonths * OverlapMonthPenalty; - score -= overlapPenalty; - - var severity = overlap.Months >= 6 ? FlagSeverity.Critical : FlagSeverity.Warning; - flags.Add(new FlagResult { Category = FlagCategory.Timeline.ToString(), - Severity = severity.ToString(), - Title = "Employment Overlap", - Description = $"{overlap.Months} month overlap between '{overlap.Company1}' and '{overlap.Company2}' ({overlap.OverlapStart:MMM yyyy} to {overlap.OverlapEnd:MMM yyyy})", - ScoreImpact = -overlapPenalty + Severity = FlagSeverity.Info.ToString(), + Title = "Concurrent Employment", + Description = $"Worked at both '{overlap.Company1}' and '{overlap.Company2}' simultaneously for {overlap.Months} months ({overlap.OverlapStart:MMM yyyy} to {overlap.OverlapEnd:MMM yyyy})", + ScoreImpact = 0 }); } diff --git a/src/TrueCV.Web/Components/Pages/Report.razor b/src/TrueCV.Web/Components/Pages/Report.razor index a3a4888..3bc1e6f 100644 --- a/src/TrueCV.Web/Components/Pages/Report.razor +++ b/src/TrueCV.Web/Components/Pages/Report.razor @@ -200,7 +200,7 @@
  • Director claims not verified: -20 pts each
  • Employment before company existed: -20 pts
  • Employment gaps: -1 to -10 pts per gap
  • -
  • Excessive overlaps: -2 pts per month
  • +
  • Concurrent employment is noted but not penalised