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

@@ -10,4 +10,26 @@ public sealed record CompanyVerificationResult
public string? VerificationNotes { get; init; }
public DateOnly? ClaimedStartDate { get; init; }
public DateOnly? ClaimedEndDate { get; init; }
public string? CompanyType { get; init; }
public string? ClaimedJobTitle { get; init; }
public bool? JobTitlePlausible { get; init; }
public string? JobTitleNotes { get; init; }
// Additional company data for verification checks
public string? CompanyStatus { get; init; }
public DateOnly? IncorporationDate { get; init; }
public DateOnly? DissolutionDate { get; init; }
public string? AccountsCategory { get; init; }
public List<string>? SicCodes { get; init; }
// Additional verification flags
public List<CompanyVerificationFlag> Flags { get; init; } = [];
}
public sealed record CompanyVerificationFlag
{
public required string Type { get; init; }
public required string Severity { get; init; }
public required string Message { get; init; }
public int ScoreImpact { get; init; }
}