diff --git a/Apis/cv-search-data/Migrations/20260529160000_FixBestJobsLinkFilter.Designer.cs b/Apis/cv-search-data/Migrations/20260529160000_FixBestJobsLinkFilter.Designer.cs
new file mode 100644
index 0000000..cab7fbc
--- /dev/null
+++ b/Apis/cv-search-data/Migrations/20260529160000_FixBestJobsLinkFilter.Designer.cs
@@ -0,0 +1,229 @@
+//
+using System;
+using CvSearch.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace CvSearch.Data.Migrations
+{
+ [DbContext(typeof(CvSearchDbContext))]
+ [Migration("20260529160000_FixBestJobsLinkFilter")]
+ partial class FixBestJobsLinkFilter
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasDefaultSchema("cvSearch")
+ .HasAnnotation("ProductVersion", "10.0.7")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("CvSearch.Data.Entities.JobProviderEntity", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("DisplayOrder")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0);
+
+ b.Property("Enabled")
+ .HasColumnType("bit");
+
+ b.Property("InitialKeywordsJson")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(2000)
+ .HasColumnType("nvarchar(2000)")
+ .HasDefaultValue("[]");
+
+ b.Property("JobLinkContains")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("MaxResults")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(20);
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
+ b.Property("SearchUrlTemplate")
+ .IsRequired()
+ .HasMaxLength(1024)
+ .HasColumnType("nvarchar(1024)");
+
+ b.HasKey("Id");
+
+ b.ToTable("JobProviders", "cvSearch");
+ });
+
+ modelBuilder.Entity("CvSearch.Data.Entities.JobSearchResultEntity", b =>
+ {
+ b.Property("Id")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CreatedAt")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime2")
+ .HasDefaultValueSql("SYSUTCDATETIME()");
+
+ b.Property("JobText")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("JobTitle")
+ .IsRequired()
+ .HasMaxLength(512)
+ .HasColumnType("nvarchar(512)");
+
+ b.Property("JobUrl")
+ .IsRequired()
+ .HasMaxLength(2048)
+ .HasColumnType("nvarchar(2048)");
+
+ b.Property("ProviderName")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("nvarchar(128)");
+
+ b.Property("ResultJson")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Score")
+ .HasColumnType("int");
+
+ b.Property("SessionId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SessionId");
+
+ b.ToTable("JobSearchResults", "cvSearch");
+ });
+
+ modelBuilder.Entity("CvSearch.Data.Entities.JobSearchSessionEntity", b =>
+ {
+ b.Property("Id")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CreatedAt")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime2")
+ .HasDefaultValueSql("SYSUTCDATETIME()");
+
+ b.Property("CvDocumentId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("Keywords")
+ .IsRequired()
+ .HasMaxLength(1000)
+ .HasColumnType("nvarchar(1000)");
+
+ b.Property("Language")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(8)
+ .HasColumnType("nvarchar(8)")
+ .HasDefaultValue("en");
+
+ b.Property("ProviderConfigJson")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(32)
+ .HasColumnType("nvarchar(32)");
+
+ b.Property("TokenId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Status");
+
+ b.ToTable("JobSearchSessions", "cvSearch");
+ });
+
+ modelBuilder.Entity("CvSearch.Data.Entities.JobSearchTokenEntity", b =>
+ {
+ b.Property("Id")
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("CreatedAt")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime2")
+ .HasDefaultValueSql("SYSUTCDATETIME()");
+
+ b.Property("CvDocumentId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("nvarchar(64)");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("nvarchar(256)");
+
+ b.Property("ExpiresAt")
+ .HasColumnType("datetime2");
+
+ b.Property("Keywords")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(1000)
+ .HasColumnType("nvarchar(1000)")
+ .HasDefaultValue("");
+
+ b.Property("Language")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(8)
+ .HasColumnType("nvarchar(8)")
+ .HasDefaultValue("en");
+
+ b.Property("Used")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(false);
+
+ b.HasKey("Id");
+
+ b.ToTable("JobSearchTokens", "cvSearch");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Apis/cv-search-data/Migrations/20260529160000_FixBestJobsLinkFilter.cs b/Apis/cv-search-data/Migrations/20260529160000_FixBestJobsLinkFilter.cs
new file mode 100644
index 0000000..646396f
--- /dev/null
+++ b/Apis/cv-search-data/Migrations/20260529160000_FixBestJobsLinkFilter.cs
@@ -0,0 +1,37 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace CvSearch.Data.Migrations
+{
+ ///
+ public partial class FixBestJobsLinkFilter : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ // bestjobs.eu individual job listings use /loc-de-munca/{slug}.
+ // The original seed value /ro/locuri-de-munca/ matched only category nav links,
+ // so zero job URLs passed the stage-1 filter.
+ migrationBuilder.UpdateData(
+ schema: MigrationConstants.SchemaName,
+ table: "JobProviders",
+ keyColumn: "Id",
+ keyValue: 2,
+ column: "JobLinkContains",
+ value: "/loc-de-munca/");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.UpdateData(
+ schema: MigrationConstants.SchemaName,
+ table: "JobProviders",
+ keyColumn: "Id",
+ keyValue: 2,
+ column: "JobLinkContains",
+ value: "/ro/locuri-de-munca/");
+ }
+ }
+}