WIP: Release: internet job search + docker-compose refactor #8

Closed
gelu wants to merge 0 commits from main into staging
Owner

Changes in this release

Internet job search feature

  • New cv-search-models shared library — EF entities + CvSearchDbContext (schema cvSearch)
  • New cv-search-job background worker — polls DB for pending sessions, scrapes job boards, runs LLM scoring, emails ranked results
  • cv-matcher-apiJobTokenService creates one-time tokens; JobSearchController handles link clicks
  • api — proxies job-search start endpoint, appends job search link to match result email

Docker Compose refactor

  • docker-compose.yml is now the single Portainer file for staging and production
  • Uses ${IMAGE_TAG:-staging}, ${LOGS_PATH:-/opt/myai/logs}, ${FILES_PATH:-/opt/myai/files}
  • docker-compose.override.yml added for local dev (auto-merged by docker compose up)
  • docker-compose.dcproj updated — override file nested under docker-compose.yml
  • .env.template updated with IMAGE_TAG, LOGS_PATH, FILES_PATH, JobSearch__* vars

Other

  • cv-matcher-api/Dockerfile — added missing COPY Apis/cv-search-models/ (was causing CI failure)
  • .gitignore — added .claude/

Build pipeline note

The staging build.yml was already updated directly on the staging branch to add the cv-search-job build and push steps. The build.yml in main triggers on the main branch — when merging, keep the staging branch trigger (branches: - staging) from the staging version.

Related issues

Closes #2, #3, #4, #5, #6, #7

## Changes in this release ### Internet job search feature - New `cv-search-models` shared library — EF entities + `CvSearchDbContext` (schema `cvSearch`) - New `cv-search-job` background worker — polls DB for pending sessions, scrapes job boards, runs LLM scoring, emails ranked results - `cv-matcher-api` — `JobTokenService` creates one-time tokens; `JobSearchController` handles link clicks - `api` — proxies job-search start endpoint, appends job search link to match result email ### Docker Compose refactor - `docker-compose.yml` is now the single Portainer file for staging and production - Uses `${IMAGE_TAG:-staging}`, `${LOGS_PATH:-/opt/myai/logs}`, `${FILES_PATH:-/opt/myai/files}` - `docker-compose.override.yml` added for local dev (auto-merged by `docker compose up`) - `docker-compose.dcproj` updated — override file nested under docker-compose.yml - `.env.template` updated with `IMAGE_TAG`, `LOGS_PATH`, `FILES_PATH`, `JobSearch__*` vars ### Other - `cv-matcher-api/Dockerfile` — added missing `COPY Apis/cv-search-models/` (was causing CI failure) - `.gitignore` — added `.claude/` ## Build pipeline note The staging `build.yml` was already updated directly on the `staging` branch to add the `cv-search-job` build and push steps. The `build.yml` in `main` triggers on the `main` branch — **when merging, keep the staging branch trigger** (`branches: - staging`) from the staging version. ## Related issues Closes #2, #3, #4, #5, #6, #7
gelu added 5 commits 2026-05-22 16:09:18 +00:00
Main build
Build and Push Docker Images / build (push) Successful in 7s
a0ae262afc
Add internet job search feature (cv-search-job)
Build and Push Docker Images / build (push) Failing after 1m36s
6293fa89e3
- 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>
Fix cv-matcher-api Dockerfile: add cv-search-models to build context
Build and Push Docker Images / build (push) Successful in 3m42s
a4c128fdf4
dotnet restore failed in CI because cv-search-models.csproj was added as
a ProjectReference but not copied into the Docker build context.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Refactor docker-compose: single deployable file + local override
Build and Push Docker Images / build (push) Successful in 11s
cf064531c5
- docker-compose.yml is now the single file for Portainer (staging and prod).
  Uses registry images with ${IMAGE_TAG:-staging}, ${LOGS_PATH:-/opt/myai/logs},
  and ${FILES_PATH:-/opt/myai/files} so the same file works for all environments.
- docker-compose.override.yml adds build context, ports, and env_file for local dev
  and is auto-merged by "docker compose up" (no extra flags needed).
- .env.template documents IMAGE_TAG, LOGS_PATH, FILES_PATH alongside existing vars.
- docker-compose.dcproj updated so override file nests under docker-compose.yml in
  Solution Explorer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add .claude/ to .gitignore
Build and Push Docker Images / build (push) Successful in 9s
7bed001d8b
Claude Code stores session files under .claude/ — these are local tooling
artifacts and should not be tracked in the repository.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
claude approved these changes 2026-05-22 16:32:49 +00:00
Dismissed
claude approved these changes 2026-05-22 16:33:30 +00:00
gelu self-assigned this 2026-05-22 16:36:46 +00:00
gelu marked the pull request as work in progress 2026-05-22 16:38:50 +00:00
gelu closed this pull request 2026-05-22 16:47:15 +00:00
Some checks are pending
Build and Push Docker Images / build (push) Successful in 9s

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AI/myAi#8