6293fa89e3
Build and Push Docker Images / build (push) Failing after 1m36s
- New cv-search-models shared library: EF entities + CvSearchDbContext for cvSearch schema (JobSearchTokens, JobSearchSessions, JobSearchResults tables) - New cv-search-job worker service: polls DB for pending sessions, scrapes job boards via configurable HTML scraping, runs LLM scoring via cv-matcher-api, emails ranked results - cv-matcher-api: JobTokenService creates one-time tokens; JobSearchController handles link clicks and creates sessions - api: proxies job-search start endpoint, appends job search link to match result email - CI workflow updated to build and push myai-cv-search-job:staging image - CLAUDE.md documentation added for all affected services Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
140 lines
3.6 KiB
JSON
140 lines
3.6 KiB
JSON
{
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.Hosting.Lifetime": "Information",
|
|
"Microsoft.Extensions.Hosting": "Information",
|
|
"System.Net.Http.HttpClient": "Warning",
|
|
"CvSearchJob": "Information",
|
|
"JobScheduler": "Information"
|
|
}
|
|
},
|
|
"LogEnvironmentOnStartup": true,
|
|
"Serilog": {
|
|
"Using": [
|
|
"Serilog.Sinks.Console",
|
|
"Serilog.Sinks.File",
|
|
"Serilog.Sinks.Email"
|
|
],
|
|
"MinimumLevel": {
|
|
"Default": "Information",
|
|
"Override": {
|
|
"Microsoft.AspNetCore": "Warning",
|
|
"Microsoft.Extensions.Hosting": "Information",
|
|
"Microsoft.Hosting.Lifetime": "Information",
|
|
"System.Net.Http.HttpClient": "Warning",
|
|
"CvSearchJob": "Information",
|
|
"JobScheduler": "Information"
|
|
}
|
|
},
|
|
"WriteTo": [
|
|
{
|
|
"Name": "Console",
|
|
"Args": {
|
|
"outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext}: {Message:lj}{NewLine}{Exception}"
|
|
}
|
|
},
|
|
{
|
|
"Name": "File",
|
|
"Args": {
|
|
"path": "logs/cv-search-job-.log",
|
|
"rollingInterval": "Day",
|
|
"retainedFileCountLimit": 30,
|
|
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}: {Message:lj}{NewLine}{Exception}"
|
|
}
|
|
},
|
|
{
|
|
"Name": "Email",
|
|
"Args": {
|
|
"restrictedToMinimumLevel": "Error",
|
|
"fromEmail": "",
|
|
"toEmail": "",
|
|
"mailServer": "",
|
|
"networkCredential": {
|
|
"userName": "",
|
|
"password": ""
|
|
},
|
|
"port": 587,
|
|
"enableSsl": true,
|
|
"emailSubject": "[mihes.ro CV search job] Error Alert",
|
|
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}",
|
|
"batchPostingLimit": 10,
|
|
"period": "0.00:05:00"
|
|
}
|
|
}
|
|
],
|
|
"Enrich": [
|
|
"FromLogContext",
|
|
"WithMachineName",
|
|
"WithEnvironmentName"
|
|
]
|
|
},
|
|
"Database": {
|
|
"Host": "localhost",
|
|
"Port": 1433,
|
|
"Name": "MyAiDb",
|
|
"User": "sa",
|
|
"Password": "",
|
|
"TrustServerCertificate": true
|
|
},
|
|
"CvMatcherApi": {
|
|
"BaseUrl": "http://cv-matcher-api:8080",
|
|
"InternalApiKey": ""
|
|
},
|
|
"FileStorage": {
|
|
"Path": "Files"
|
|
},
|
|
"Smtp": {
|
|
"Host": "",
|
|
"Port": 587,
|
|
"Username": "",
|
|
"Password": "",
|
|
"UseStartTls": false
|
|
},
|
|
"Contact": {
|
|
"ToEmail": ""
|
|
},
|
|
"JobSearch": {
|
|
"Enabled": true,
|
|
"JobSearchLinkBaseUrl": "https://myai.ro",
|
|
"TokenExpiryDays": 7,
|
|
"MinMatchScore": 15,
|
|
"MaxJobsToMatch": 15,
|
|
"Providers": [
|
|
{
|
|
"Name": "ejobs.ro",
|
|
"Enabled": false,
|
|
"SearchUrlTemplate": "https://www.ejobs.ro/locuri-de-munca/{keywords}/",
|
|
"JobLinkContains": "/user/locuri-de-munca/job/",
|
|
"InitialKeywords": [],
|
|
"MaxResults": 20
|
|
},
|
|
{
|
|
"Name": "bestjobs.eu",
|
|
"Enabled": false,
|
|
"SearchUrlTemplate": "https://www.bestjobs.eu/ro/locuri-de-munca?q={keywords}",
|
|
"JobLinkContains": "/ro/locuri-de-munca/",
|
|
"InitialKeywords": [],
|
|
"MaxResults": 20
|
|
},
|
|
{
|
|
"Name": "linkedin.com",
|
|
"Enabled": false,
|
|
"SearchUrlTemplate": "https://www.linkedin.com/jobs/search/?keywords={keywords}&location=Romania",
|
|
"JobLinkContains": "/jobs/view/",
|
|
"InitialKeywords": [],
|
|
"MaxResults": 20
|
|
}
|
|
]
|
|
},
|
|
"Jobs": {
|
|
"Tasks": [
|
|
{
|
|
"TaskType": "CvSearch",
|
|
"Enabled": true,
|
|
"Interval": "00:00:30"
|
|
}
|
|
]
|
|
}
|
|
}
|