feat(jobs): expose discovery provenance
CI and Deploy / test (pull_request) Successful in 4m15s
CI and Deploy / deploy (pull_request) Has been skipped

This commit is contained in:
cesnimda
2026-08-10 10:38:01 +02:00
parent 986f58522b
commit 511a9f6795
5 changed files with 58 additions and 9 deletions
@@ -28,6 +28,7 @@ public sealed class JobDiscoveryController : ControllerBase
{
try
{
var retrievedAt = DateTimeOffset.UtcNow;
var token = await GetTokenAsync(cancellationToken);
var client = _clients.CreateClient();
var entries = new Dictionary<string, DiscoveredJob>(StringComparer.OrdinalIgnoreCase);
@@ -65,8 +66,12 @@ public sealed class JobDiscoveryController : ControllerBase
feed.TryGetProperty("businessName", out var company) ? company.GetString() : null,
feed.TryGetProperty("municipal", out var municipal) ? municipal.GetString() : null,
item.TryGetProperty("date_modified", out var modified) && modified.TryGetDateTimeOffset(out var date) ? date : null,
feed.TryGetProperty("applicationDue", out var applicationDue) && applicationDue.TryGetDateTimeOffset(out var deadline) ? deadline : null,
$"https://arbeidsplassen.nav.no/stillinger/stilling/{id}",
"nav",
"NAV Arbeidsplassen",
"searched",
retrievedAt,
"NO");
}
}
@@ -106,5 +111,17 @@ public sealed class JobDiscoveryController : ControllerBase
private static bool Contains(string? value, string filter) =>
filter.Length == 0 || (value?.Contains(filter, StringComparison.OrdinalIgnoreCase) ?? false);
public sealed record DiscoveredJob(string Id, string Title, string? Company, string? Location, DateTimeOffset? ModifiedAt, string Url, string Source, string CountryCode);
public sealed record DiscoveredJob(
string Id,
string Title,
string? Company,
string? Location,
DateTimeOffset? ModifiedAt,
DateTimeOffset? Deadline,
string Url,
string Source,
string SourceName,
string AcquisitionType,
DateTimeOffset RetrievedAt,
string CountryCode);
}