All case studies
my-career.infoConsumer SaaS · Career Tech2026

A Localised Career Platform with Published CV Sites

A serverless career platform combining a themed CV builder, one-click personal career sites on custom subdomains, an ATS compatibility scanner and live job search — with a 14-day trial, automated email lifecycle and Stripe subscriptions across three languages.

Next.js 15React 19MongoDBStripeVercelnext-intl
14+
Themed CV templates
3 languages
EN · FR · ES throughout
Serverless
One Next.js app on Vercel

Overview

my-career.info is a consumer career platform that takes a job seeker from a blank page to a live, shareable presence: build a CV in a themed editor, publish it as a personal career site on a custom subdomain, check it against applicant tracking systems, search live vacancies and track every application — all from one account.

The entire product is a single Next.js 15 App Router application on Vercel, backed by MongoDB and monetised as a freemium subscription with a 14-day trial, automated email lifecycle and Stripe billing. It ships fully localised in English, French and Spanish.

The Challenge

Career tools are a crowded market; the product had to earn its place by joining up what is usually four separate tools:

  • From document to destination. A CV shouldn't end life as a PDF attachment — each user needed a live personal site at name.my-career.info, published in one click.
  • Beating the robots. Most rejections happen before a human reads anything. Users needed an honest ATS compatibility score with concrete fixes, and a way to match their CV against a specific vacancy.
  • Real jobs, not sample data. Live vacancy search and recommendations, with external API costs kept under control.
  • A trial that converts itself. A 14-day trial with usage quotas, template gating and a timed email journey — with no servers to run any of it on.
  • Three languages, one codebase. Every page, email and validation message localised, with the right locale chosen per user, not per request.

The Solution

One serverless application does all of it. A custom middleware layer splits traffic at the edge: requests to a user subdomain are rewritten to a site-serving route, while main-domain traffic flows through locale negotiation that prefers the user's saved language (read from their session token) before falling back to browser headers. Behind that sit feature modules — CV building, site publishing, ATS scanning, job search, application tracking and subscription management — sharing one MongoDB datastore and one authentication layer.

CV builder & templates

A structured CV editor rendering through a template factory of 14+ themed designs — corporate, minimal, technical, elegant, cyberpunk, gothic and more — each a self-contained renderer behind a common interface, with premium designs gated by plan.

Published career sites

One-click publishing renders the CV to static HTML in Vercel Blob storage. Edge middleware maps name.my-career.info to the stored site and serves it with CDN caching (stale-while-revalidate) — a personal website with zero per-site hosting.

ATS scanner

A rule-based CV analyser walks the document structure, scoring keyword coverage, formatting and completeness with severity-ranked findings and concrete suggestions — plus per-vacancy matching that scores a CV against a specific job description.

Job search & recommendations

Live vacancy search through the Reed API with filtering, a recommendation engine scoring jobs against the user's profile, and per-plan search quotas keeping external API spend predictable.

Application tracking

A pipeline for every application — status stages from draft through screening to offer, priorities, and notes — closing the loop between finding a role and landing it.

Trial & conversion engine

A 14-day trial with per-plan usage quotas and template access, driven by a scheduled email journey — welcome, day 1/3/7/12 nudges, feature highlights and last-chance conversion — dispatched by a Vercel cron every six hours.

The CV Builder & Template System

The builder treats a CV as structured data, not a document. Users edit sections through a guided interface with an onboarding tour and progress tracking; rendering is delegated to a template factory where each of the 14+ themes implements a common renderer interface. Adding a design is a single new class — no changes to the editor, publisher or scanner. The same structured data feeds every downstream feature: the published site, the ATS score and the job matcher all read from one source of truth.

Publishing & Edge Routing

Publishing renders the chosen template to a complete HTML document stored in Vercel Blob. At request time, edge middleware inspects the host header: a valid subdomain is rewritten to a lightweight route that fetches the stored HTML and returns it with s-maxage and stale-while-revalidate caching. Thousands of personal sites can exist with no build step, no per-site infrastructure and no cold-start penalty for visitors.

The ATS Scanner

The scanner is a deterministic, explainable analyser rather than a black box. A validation engine walks the CV's structure applying named rules — each with a severity (error / warning / info), a path to the offending field and a suggested fix — alongside keyword services scoring coverage against role expectations. A companion matcher compares the CV to a specific vacancy's description, so users can tune an application before sending it. Scans are quota-controlled per plan, making the feature both a core utility and an upgrade driver.

Lifecycle Email & Monetisation

The trial converts through a timed, localised email journey built as React components and delivered via Resend: a welcome sequence, day 1/3/7/12 check-ins, feature-highlight campaigns for the ATS scanner, analytics and premium templates, and an escalating conversion arc for the final days. A Vercel cron runs the automation every six hours and a second job expires lapsed trials — no queue workers, no servers.

Billing is Stripe end-to-end: checkout, a self-service customer portal, and a webhook service reconciling subscription lifecycle events into the user's plan, quotas and template access. Middleware enforces plan limits on every gated action, with in-product usage meters and upgrade prompts surfacing the paywall honestly.

Internationalisation

Localisation runs deeper than translated strings. next-intl drives locale-prefixed routing for English, French and Spanish, but locale selection is user-centric: middleware reads the preferred language stored in the session token first, then negotiates from browser headers. Emails are localised through the same message catalogues, and hreflang metadata keeps search engines pointed at the right variant.

Security & Cross-Cutting Concerns

  • Authentication — NextAuth with a MongoDB adapter and bcrypt-hashed credentials; session tokens carry the user's locale preference for edge-side routing.
  • Validation — Zod schemas at API boundaries keep untrusted input out of the datastore.
  • Rate limiting — request throttling on sensitive endpoints, alongside per-plan quota enforcement.
  • Payments — Stripe webhooks verified and handled idempotently, so billing state and product access never drift.

Engineering Standards

TypeScript throughout, with domain enums replacing stringly-typed state across application statuses, plans, templates and API routes. A Vitest suite covers the core services — trial logic, quotas, scanning — and runs as part of the build. ESLint and Prettier gate every commit, and the Vercel pipeline skips deployments for test-only changes to keep releases cheap and frequent.

Technology Stack

FrameworkNext.js 15 (App Router), React 19, TypeScript
StylingTailwind CSS 4, lucide-react / react-icons
DataMongoDB (native driver + @auth/mongodb-adapter)
AuthNextAuth, bcrypt credentials, locale-aware JWT sessions
i18nnext-intl — EN / FR / ES, locale-prefixed routing, hreflang
Edge routingCustom middleware — subdomain rewrites + locale negotiation
Site publishingVercel Blob (static HTML), CDN caching (SWR headers)
BillingStripe — checkout, customer portal, idempotent webhooks
EmailResend, React email templates, localised campaigns
Scheduled workVercel Cron — email automation, trial expiration
IntegrationsReed jobs API (quota-controlled)
ValidationZod schemas, rule-based CV validation engine
ObservabilityVercel Analytics, Speed Insights
QualityVitest, Testing Library, ESLint, Prettier

Outcomes

A complete job-seeker journey in one product — build, publish, score, search and track — instead of four disconnected tools.
Personal career sites at custom subdomains with zero per-site infrastructure, served from blob storage through edge rewrites with CDN caching.
An explainable ATS scanner with severity-ranked findings and per-vacancy matching, doubling as the platform’s strongest upgrade driver.
A self-running freemium funnel — 14-day trial, quota enforcement, timed localised email journeys and Stripe billing — with no servers to operate.
Full localisation across pages, emails and validation in three languages, with per-user locale selection at the edge.
A fully serverless footprint on Vercel: cron-driven background work, blob publishing and analytics without any dedicated backend.

Building a SaaS product?

Serverless platforms, subscription billing and localisation done properly are our core work. Let's talk.

Get in Touch