Created & Curated by Zakaria Talali

Created & Curated by Zakaria Talali

B2C SaaS · Solo founder · 2025 → 2026Jobea

The SaaS that automates the job search with AI.

Designed, built and shipped to production alone: 13,000+ users and a complete platform — Next.js, Python services, PostgreSQL, Stripe and AI.

13 000+
registered users
11,000+
CVs analyzed by AI
5 months
of commercial life · solo developer
The problem & the solution

80% of a job search’s time is wasted.

The problem

Finding the right companies, writing generic letters, reworking your CV — and getting no reply at all. The candidate knows neither who to contact, nor how to write a message that doesn’t end up in the trash.

The solution: 5 steps, under 4 minutes

  1. AI CV analysis — score, strengths, areas for improvement, recommended sectors.
  2. Express onboarding — target role, contract type, geographic area.
  3. Targeted search — backed by the official register of French companies.
  4. Preview before payment — the user reads their letters before paying. Proof, not promise.
  5. Automated sending — personalized letters and emails, from their own account.

The stance: everything is asynchronous and streamed in real time. Results appear live instead of a frozen loading screen — the user sees the product working.

My role

The entire project, alone — from the first commit to daily support.

Product & UX

Onboarding, pricing, preview-before-payment logic.

Front-end

Next.js 14 (App Router), React, TypeScript, Tailwind, Radix UI.

Back-end

Next.js API, Python microservices (FastAPI), business endpoints.

Database

Prisma modeling (65 models, 26 migrations), integrity and PostgreSQL queries.

AI

Gemini integration: CV analysis, cover letter generation, enrichment, SEO.

Architecture

Microservice split, Next.js ↔ Python service orchestration, failure isolation.

Payment

End-to-end Stripe: checkout, webhooks, subscriptions, credits.

Infra & DevOps

Vercel + Railway, scheduled jobs, monitoring, rate-limiting.

Security & GDPR

Anti-abuse protections, compliance and data retention policy.

Growth

Automated SEO, marketing attribution, analytics dashboards.

Customer support

Day-to-day support: answering users, handling incidents and helping with onboarding.

Improvement loop

Every piece of feedback and reported bug feeds a continuous feedback → fix → release loop that prioritizes product evolution.

« This is not a school project. It’s a production product, with real paying users, real incidents and real constraints: GDPR, fraud, scaling. »

Technical stack

A complete platform, end to end.

Front-end

Next.js 14React 18TypeScriptTailwind CSSRadix UIFramer MotionRecharts

Back-end

API Next.jsPython FastAPIPrismaPostgreSQLNextAuthRedis

AI

Google GeminiCV analysisLettersEnrichmentEditorial scoring

Payment & emails

StripeNodemailer

Infra

VercelRailwayDockerObject storage (CDN)SentryVitest

Security & Compliance

Rate-limitingIdempotenceSigned webhooksAnti-abuseGDPR
65 data models
140+ API routes
26 migrations
36 email templates
3 deployed services
Architecture

Three services, one database, Stripe as the source of truth.

Next.js 14 — VercelOrchestrator · App + Dashboard + Admin + business API (auth, credits, billing, streaming)
authenticated HTTP
Python API — RailwayCV analysis (AI) · company search · enrichment · letter generation · external sources
SEO content service — RailwayAutonomous blog pipeline · RSS → AI → published · dedicated Postgres database
PostgreSQL — Prisma · 65 models+ Stripe, billing source of truth (local mirror in DB for analytics)
Separate Python services. Analysis/enrichment and the content pipeline have very different loads; separating them lets them scale independently and isolates failures.
Next.js stays the orchestrator. Auth, credits, billing and security live there. The Python services are stateless calculators, called over authenticated HTTP.
Stripe is the billing source of truth, with a local mirror in the database for analytics.
How it works

The technical depth, in three parts.

① Company search on official data

The heart of the product. From a free-text role and an area, Jobea finds the relevant companies in the official register of French companies, live.

  • Translate a free-text role into business sectors (from the fastest to the smartest, with caching).
  • Convert an area and a radius into a geographic search (real distance calculation).
  • Handle the load and quotas of the source API without ever failing the user’s search.
  • Clean, deduplicate and rank by relevance, while respecting a GDPR opt-out list.
User query“Developer · Paris + 50 km”
Role → business sectorsfrom the fastest to the smartest
Area + radius → geo searchreal distance calculation
Official register of FR companiesqueried LIVE (never stored)
Cleaning · dedup · GDPR filterranking by relevance
Results shown to the user

Key point: company data is not stored — it comes live from the official source on every search. Always up to date.

② CV analysis: from PDF to structured profile

The CV is treated as a visual document (not just text), which makes it possible to account for layout. A Vision AI extracts a structured, validated profile from it (identity, experience, skills, score, profile type). With safeguards: file security, rejection of documents that aren’t CVs, and contextualized scoring based on the targeted contract type.

CV upload (PDF / DOCX)
File security & validation
CV treated as a VISUAL document
Vision AI → structured profile + score
⟶ SSE stream (real time): progress shown live in the interface
Safeguards (rejecting non-CVs…)
Save to database
③ Real-time streaming (Server-Sent Events)

Rather than a frozen loading screen, results appear one by one, via Server-Sent Events. Engineering highlights: parallelized processing, failure isolation (a failing item never interrupts the batch), and payment consistency — idempotent transactional charge then automatic refund of failed items. The user only pays for what worked.

Key features

What the user gets in their hands.

Jobea CV analysis interface — score and suggestions to optimize your application

Smart CV analysis

Upload your CV and get a score out of 100 with concrete suggestions. The analysis detects weaknesses, red flags, and guides you to optimize your application.

AI-generated personalized cover letters — Jobea

Personalized cover letters

Each letter is generated automatically based on your profile, the company’s industry and the targeted role. Editable before sending.

Automatic application sending via Gmail — Jobea

Automatic email sending

Connect your email (Gmail, Outlook, Yahoo or other) once. Jobea sends your applications with your CV attached. The system respects each provider’s limits to avoid spam.

Search and selection of companies that are hiring — Jobea

My Selection

Manage your selection of companies. Enrich them automatically with HR emails and websites. Export to build your campaigns.

Automatic application campaigns — Jobea

Application campaigns

Create a campaign, add your prospects, and generate all the letters at once. Launch bulk or individual sending depending on your needs.

Dashboard tracking sent applications — Jobea

Tracking dashboard

An overview of your activity: prospects, credits, applications sent. Track your open and reply rates. Manage your progress with onboarding.

Engineering

The pieces I’m proud of.

Stripe webhook & credit system

A substantial webhook handler that manages the full lifecycle of a subscription: idempotence (a replayed webhook never credits twice), distinguishing a real payment failure from a false 3DS/SCA alert, prorated upgrades, multi-level user resolution, dispute tracing. Edge cases learned in production.

Security & rate-limiting (defense-in-depth)

Multiple layers: blocking scanners and path fuzzing, decoy routes, rate-limiting per IP and per user, role-based route protection. Key principle: fail-open vs fail-closed — never block a legitimate user on latency-sensitive routes, while blocking abuse where needed.

“First-touch” marketing attribution

The acquisition source is captured on the first visit and is never overwritten. A dashboard aggregates signups, paying users and revenue by source — with conversion rate calculation by cohort.

Anti-abuse protections

Robust abuse detection and a banning system. (Details intentionally not exposed.)

Content pipeline

An autonomous SEO content pipeline.

An independent Python microservice (FastAPI) that turns RSS feeds into scored, enriched and SEO-optimized blog articles — autonomously. A 4-step chain.

1

Collection

RSS feeds fetched, deduplicated, pre-filtered (noise is removed before the AI).

2

Editorial selection

Anti-spam, smart deduplication of duplicate topics, then AI scoring by batch (cost-efficient).

3

Enrichment

Summary, translation, title, keywords, structured FAQ, AI-generated cover image (CDN).

4

Publishing & archiving

Human validation before going live, then retention by status.

collectedscoredto_enrichto_validatepublished

In production, scheduled jobs drive the pipeline (anti-double-execution safeguard), and a human validates each article before publication. 82 articles published, about thirty of them generated automatically in 5 months.

Numbers & results

Real adoption, from January to May 2026.

13 000+
registered users
11 000+
CVs analyzed by the AI
Tens of thousands
of enriched companies
Tens of thousands
of application emails sent
82
SEO articles published
Hundreds
of clients since launch
Jan.Feb.Mar.Apr.May

From January to May 2026 — organic growth, solo developer, only a few weeks of advertising. Most of the traction was concentrated in the last few months: the curve clearly takes off, month after month.

What this project taught me

Production reflexes, not tutorial ones.

Building for production is not building for a class. Idempotence, retries, GDPR: you learn these with real users and real payments.
Make trade-offs before chasing perfection. Streaming rather than waiting, showing a preview before charging: decisions that matter.
Own the whole chain. From database migration to email template, from webhook to dashboard.
Decide with data. Without measurement, you optimize blindly.
Security is a mindset. Think like an attacker to protect users.

Let's Get in Touch

Looking for a work-study apprenticeship in web development for September 2026, as part of my 3rd year of Computer Science. Used to shipping in real conditions: SaaS in production, 50+ freelance projects, currently interning on an internal AI platform.