Add comprehensive CV verification checks and dashboard auto-refresh

- Add dashboard auto-refresh polling to update when processing completes
- Skip verification for freelance employers (but not contractors)
- Add incorporation date check (flags employment before company existed)
- Add dissolution date check (flags employment at dissolved companies)
- Add dormant company check (flags non-director roles at dormant companies)
- Add company size vs role check (flags senior roles at micro-entities)
- Add SIC code mismatch check (flags tech roles at non-tech companies)
- Add director verification against Companies House officers
- Add rapid career progression detection (3+ seniority jumps in <2 years)
- Add early career senior role detection (<2 years after education)
- Extend CompanyVerificationResult with flags and company data
- Add officers endpoint to Companies House client
- Fix null reference warning in Report.razor

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-20 20:00:24 +01:00
parent acf4d96fae
commit 652aa2e612
9 changed files with 937 additions and 36 deletions

View File

@@ -194,7 +194,8 @@ public sealed class ProcessCVCheckJobTests : IDisposable
x => x.VerifyCompanyAsync(
It.IsAny<string>(),
It.IsAny<DateOnly?>(),
It.IsAny<DateOnly?>()),
It.IsAny<DateOnly?>(),
It.IsAny<string?>()),
Times.Exactly(3));
}
@@ -1031,7 +1032,8 @@ public sealed class ProcessCVCheckJobTests : IDisposable
.Setup(x => x.VerifyCompanyAsync(
It.IsAny<string>(),
It.IsAny<DateOnly?>(),
It.IsAny<DateOnly?>()))
It.IsAny<DateOnly?>(),
It.IsAny<string?>()))
.ReturnsAsync(() => queue.Count > 0 ? queue.Dequeue() : CreateDefaultVerificationResult());
}
else
@@ -1040,7 +1042,8 @@ public sealed class ProcessCVCheckJobTests : IDisposable
.Setup(x => x.VerifyCompanyAsync(
It.IsAny<string>(),
It.IsAny<DateOnly?>(),
It.IsAny<DateOnly?>()))
It.IsAny<DateOnly?>(),
It.IsAny<string?>()))
.ReturnsAsync(CreateDefaultVerificationResult());
}