Seed AI prompt for CV matching in cvMatcher InitialSchema migration
Added seeding of the ai.cv-match.system-prompt to the AiPrompts table. This prompt is retrieved by CvMatcherService when scoring CV-job pairs with the LLM. The {{languageName}} placeholder is substituted at runtime based on the requested language.
The prompt has a fallback in the service code, but seeding it ensures the proper version is used and avoids relying on the hardcoded fallback.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -70,6 +70,18 @@ namespace CvMatcher.Data.Migrations
|
|||||||
table: "Results",
|
table: "Results",
|
||||||
columns: new[] { "CvDocumentId", "JobDocumentId", "Language" },
|
columns: new[] { "CvDocumentId", "JobDocumentId", "Language" },
|
||||||
unique: true);
|
unique: true);
|
||||||
|
|
||||||
|
// Seed AI prompts for CV matching
|
||||||
|
migrationBuilder.Sql($$"""
|
||||||
|
INSERT INTO [cvMatcher].AiPrompts ([Key], [Language], [Value], [Description])
|
||||||
|
VALUES
|
||||||
|
('ai.cv-match.system-prompt', '*',
|
||||||
|
'You are a strict CV-to-job matching engine. Return JSON only. Score realistically from 0 to 100.
|
||||||
|
Penalize missing required skills. Do not invent experience. Use concise business language.
|
||||||
|
Respond entirely in {{languageName}} — all text fields in the JSON must be in {{languageName}}.
|
||||||
|
JSON shape: {""score"":number,""summary"":""..."",""strengths"":[""...""],""gaps"":[""...""],""recommendations"":[""...""],""evidence"":[""...""]}',
|
||||||
|
'System prompt template for the CV-to-job LLM matching call. {{languageName}} is substituted at runtime.');
|
||||||
|
""");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|||||||
Reference in New Issue
Block a user