Skip to content

Conversation

@rebelchris
Copy link
Contributor

Summary

  • Anonymous users entering through /recruiter/* pages now default to light theme instead of dark
  • Theme is stored in Redis with 30-day TTL for anonymous users
  • Theme is migrated from anonymous trackingId to userId on login/signup
  • Frontend passes normalized referrer identifiers only (e.g., 'recruiter') for privacy

Related Issues

  • Parent: ENG-332
  • Backend implementation: ENG-334, ENG-335

Test plan

  • Added tests for recruiter default theme logic
  • Manual testing: Visit /recruiter page as anonymous user, verify light theme
  • Manual testing: Sign up after visiting recruiter page, verify theme persists

🤖 Generated with Claude Code

rebelchris and others added 4 commits January 13, 2026 15:24
- Fetch UserCandidatePreference with location relation
- Use preferenceLocation.country as primary source, fallback to flags.country
- Ensures user's explicit location preference takes precedence

Co-authored-by: Chris Bongers <[email protected]>
- Add Redis storage for anonymous user theme preferences (30-day TTL)
- Accept `referrer` query param in boot endpoint
- Return light theme ('bright') for referrer=recruiter, dark otherwise
- Persist theme choice and don't override on subsequent visits
- Migrate theme from anonymous trackingId to userId on login
- Add tests for recruiter default theme logic

Closes ENG-332, ENG-334, ENG-335, ENG-336

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@pulumi
Copy link

pulumi bot commented Jan 14, 2026

🍹 The Update (preview) for dailydotdev/api/prod (at 3be4dc8) was successful.

Resource Changes

    Name                                                   Type                           Operation
~   vpc-native-daily-digest-cron                           kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tag-recommendations-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-public-threshold-cron         kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-opportunities-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-hourly-notification-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-deployment                                  kubernetes:apps/v1:Deployment  update
~   vpc-native-check-analytics-report-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-validate-active-users-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-users-cron                     kubernetes:batch/v1:CronJob    update
+   vpc-native-api-clickhouse-migration-dc8cb85c           kubernetes:batch/v1:Job        create
~   vpc-native-post-analytics-history-day-clickhouse-cron  kubernetes:batch/v1:CronJob    update
~   vpc-native-sync-subscription-with-cio-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-tag-view-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-images-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-user-companies-cron            kubernetes:batch/v1:CronJob    update
-   vpc-native-api-clickhouse-migration-73618baa           kubernetes:batch/v1:Job        delete
~   vpc-native-update-current-streak-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-ws-deployment                               kubernetes:apps/v1:Deployment  update
+   vpc-native-api-db-migration-dc8cb85c                   kubernetes:batch/v1:Job        create
~   vpc-native-clean-stale-user-transactions-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-update-highlighted-views-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-clickhouse-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-deployment              kubernetes:apps/v1:Deployment  update
~   vpc-native-clean-gifted-plus-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-generic-referral-reminder-cron              kubernetes:batch/v1:CronJob    update
-   vpc-native-api-db-migration-73618baa                   kubernetes:batch/v1:Job        delete
~   vpc-native-private-deployment                          kubernetes:apps/v1:Deployment  update
~   vpc-native-calculate-top-readers-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-update-views-cron                           kubernetes:batch/v1:CronJob    update
~   vpc-native-update-trending-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-generate-search-invites-cron                kubernetes:batch/v1:CronJob    update
~   vpc-native-bg-deployment                               kubernetes:apps/v1:Deployment  update
~   vpc-native-user-profile-updated-sync-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tags-str-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-temporal-deployment                         kubernetes:apps/v1:Deployment  update
~   vpc-native-personalized-digest-cron                    kubernetes:batch/v1:CronJob    update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants