Files
RealCV/src/RealCV.Application/Interfaces/IInternationalCompanyVerifierService.cs
Peter Foster 5d2965beae feat: Add additional verification APIs (FCA, SRA, GitHub, OpenCorporates, ORCID)
This adds five new free API integrations for enhanced CV verification:

- FCA Register API: Verify financial services professionals
- SRA Register API: Verify solicitors and legal professionals
- GitHub API: Verify developer profiles and technical skills
- OpenCorporates API: Verify international companies across jurisdictions
- ORCID API: Verify academic researchers and publications

Includes:
- API clients for all five services with retry policies
- Service implementations with name matching and validation
- Models for verification results with detailed flags
- Configuration options in appsettings.json
- DI registration for all services

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 13:05:52 +00:00

50 lines
1.5 KiB
C#

using RealCV.Application.Models;
namespace RealCV.Application.Interfaces;
/// <summary>
/// Service for verifying international companies via OpenCorporates
/// </summary>
public interface IInternationalCompanyVerifierService
{
/// <summary>
/// Verify an international company
/// </summary>
Task<InternationalCompanyResult> VerifyCompanyAsync(
string companyName,
string? jurisdiction = null,
DateOnly? claimedStartDate = null,
DateOnly? claimedEndDate = null);
/// <summary>
/// Search for companies across all jurisdictions
/// </summary>
Task<List<OpenCorporatesSearchResult>> SearchCompaniesAsync(
string query,
string? jurisdiction = null);
/// <summary>
/// Get list of supported jurisdictions
/// </summary>
Task<List<JurisdictionInfo>> GetJurisdictionsAsync();
}
public sealed record OpenCorporatesSearchResult
{
public required string CompanyName { get; init; }
public required string CompanyNumber { get; init; }
public required string Jurisdiction { get; init; }
public string? JurisdictionCode { get; init; }
public string? Status { get; init; }
public DateOnly? IncorporationDate { get; init; }
public string? OpenCorporatesUrl { get; init; }
public double? MatchScore { get; init; }
}
public sealed record JurisdictionInfo
{
public required string Code { get; init; }
public required string Name { get; init; }
public string? Country { get; init; }
}