feat: Add text analysis checks for CV verification
Implement four new CV verification checks without external APIs: 1. Buzzword detection - flags excessive clichés (50+ patterns) 2. Vague achievement detection - identifies weak language vs quantified results 3. Skills/job title alignment - checks skills match claimed roles (25+ role mappings) 4. Unrealistic metrics detection - flags implausible claims (>200% growth, etc.) New files: - ITextAnalysisService interface - TextAnalysisResult models - TextAnalysisService implementation (~400 lines) Integration: - Added "Analysing Content" processing stage - Flags appear under Plausibility category - TextAnalysis section added to veracity report 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,7 @@ public sealed class ProcessCVCheckJobTests : IDisposable
|
||||
private readonly Mock<ICompanyVerifierService> _companyVerifierServiceMock;
|
||||
private readonly Mock<IEducationVerifierService> _educationVerifierServiceMock;
|
||||
private readonly Mock<ITimelineAnalyserService> _timelineAnalyserServiceMock;
|
||||
private readonly Mock<ITextAnalysisService> _textAnalysisServiceMock;
|
||||
private readonly Mock<IAuditService> _auditServiceMock;
|
||||
private readonly Mock<ILogger<ProcessCVCheckJob>> _loggerMock;
|
||||
private readonly ProcessCVCheckJob _sut;
|
||||
@@ -41,6 +42,7 @@ public sealed class ProcessCVCheckJobTests : IDisposable
|
||||
_companyVerifierServiceMock = new Mock<ICompanyVerifierService>();
|
||||
_educationVerifierServiceMock = new Mock<IEducationVerifierService>();
|
||||
_timelineAnalyserServiceMock = new Mock<ITimelineAnalyserService>();
|
||||
_textAnalysisServiceMock = new Mock<ITextAnalysisService>();
|
||||
_auditServiceMock = new Mock<IAuditService>();
|
||||
_loggerMock = new Mock<ILogger<ProcessCVCheckJob>>();
|
||||
|
||||
@@ -51,6 +53,7 @@ public sealed class ProcessCVCheckJobTests : IDisposable
|
||||
_companyVerifierServiceMock.Object,
|
||||
_educationVerifierServiceMock.Object,
|
||||
_timelineAnalyserServiceMock.Object,
|
||||
_textAnalysisServiceMock.Object,
|
||||
_auditServiceMock.Object,
|
||||
_loggerMock.Object);
|
||||
}
|
||||
@@ -1073,6 +1076,10 @@ public sealed class ProcessCVCheckJobTests : IDisposable
|
||||
_timelineAnalyserServiceMock
|
||||
.Setup(x => x.Analyse(It.IsAny<List<EmploymentEntry>>()))
|
||||
.Returns(timelineResult);
|
||||
|
||||
_textAnalysisServiceMock
|
||||
.Setup(x => x.Analyse(It.IsAny<CVData>()))
|
||||
.Returns(new TextAnalysisResult());
|
||||
}
|
||||
|
||||
private static CVData CreateTestCVData(int employmentCount = 1)
|
||||
|
||||
Reference in New Issue
Block a user