namespace JobTrackerApi.Services; public sealed record GmailSemanticMatchCandidate( int? JobApplicationId, string? Confidence, string? Reason, IReadOnlyList? ExtractedCompanies, IReadOnlyList? ExtractedRecruiters, IReadOnlyList? ExtractedRoles, IReadOnlyList? ExtractedHints); public interface IGmailCorrespondenceEnrichmentService { Task EnrichAsync(string threadSubject, string from, string to, string snippet, string? bodyText, CancellationToken cancellationToken = default); } public sealed class NoOpGmailCorrespondenceEnrichmentService : IGmailCorrespondenceEnrichmentService { public Task EnrichAsync(string threadSubject, string from, string to, string snippet, string? bodyText, CancellationToken cancellationToken = default) => Task.FromResult(null); }