Personal recruitment tool turned micro-SaaS. Turns resumes into anonymised sites optimised for business development.
nextjsopenaisupabasestriperesend

Key Facts

  • Role: Lead Full-Stack Engineer
  • Stack: Next.js 16 (App Router), React 19, Supabase (Postgres + Auth + RLS), OpenAI, Resend, Framer Motion, Tailwind CSS v4
  • Target: Recruitment agencies & hiring managers
  • Status: Production Pilot (talentshowcase.co.uk)

Executive Summary

Talent Showcase reimagines how recruiters present candidates to hiring managers. Instead of sending static email attachments, recruiters use the platform to generate branded, interactive microsites for their top talent.

I built this application to eliminate the friction of manual CV formatting and insecure document sharing. It leverages an AI-powered parsing pipeline to transform raw resumes into standardized, high-fidelity "Showcase Cards" and provides a secure, request-to-view workflow that protects candidate privacy through strict database-level isolation.

The Challenge

The "Recruitment Gap" involves a friction-heavy handoff between recruiters and hiring managers:

  • Formatting Inconsistency: CVs arrive in a chaotic variety of formats (PDF, Word, TXT), making them difficult to compare or brand.
  • Privacy Risks: Sharing full CVs prematurely exposes candidate contact details, leading to "backdoor" hiring and data leaks.
  • Low Engagement: Static email attachments are easily ignored. Recruiters need a way to make their candidates stand out in a crowded inbox.

The Stack

I chose a stack that balances heavy data processing with consumer-grade frontend polish:

  • Frontend: Next.js 16 (App Router) & React 19, Tailwind CSS v4, Framer Motion.
  • Backend & Security: Supabase (PostgreSQL, Auth, Storage).
  • AI Orchestration: OpenAI (via Supabase Edge Functions), pdfjs-dist for client-side text extraction.
  • Messaging: Resend (transactional email & access link delivery).
  • Testing: Playwright E2E suite, Vitest for parsing logic verification.

Key Architectural Decisions

1. AI-Driven CV Parsing Pipeline

The core value is transforming raw documents into structured marketing assets. I engineered a multi-stage ingestion pipeline:

  • Hybrid Extraction: Utilizing pdfjs-dist on the client to extract text and extractTextFromBlob for other formats. This ensures a fast, responsive UI where the recruiter sees the extraction progress.
  • Edge Function Orchestration: The extracted text is shipped to a Supabase Edge Function (process-resume). This function utilizes a specialized OpenAI prompt to perform "Deterministic Data Capture"—mapping raw text to a strict JSON schema (job title, summary, top 15 skills).
  • Anonymization Engine: The system prompt explicitly enforces anonymization, replacing employer names with generic descriptors (e.g., "A major automotive OEM") to protect the candidate's identity during the initial showcase view.

2. Zero-Trust "Request-to-View" Workflow

Privacy is enforced at the database layer, not the application layer.

  • RLS-Backed Anonymity: Supabase Row Level Security (RLS) policies ensure that public visitors can only see candidate summaries. The full_cv_url and contact details are physically inaccessible to the client until a specific request record is approved by the recruiter.
  • Secure Access Links: Upon approval, Resend delivers a secure, expiring access link. This link is validated by a signed JWT, granting temporary bypass to the RLS policy for that specific candidate document.

3. High-Fidelity "Conveyor Belt" Animation

To visualize the candidate pipeline concept, I built a physics-based "Conveyor Belt" animation for the landing page (ConveyorBelt.tsx).

  • Framer Motion Orchestration: Utilizes an infinite-looping animate sequence with linear ease and repeat: Infinity.
  • Performance: To ensure 60fps, the cards utilize will-change-transform and are rendered using RSC to minimize the main-thread impact of initial data fetching.

4. Branded Microsite Projection

The routing architecture supports dynamic, branded landing pages for every recruiter.

  • Tenant-Scoped Routes: /showcase/[id] utilizes Next.js dynamic routes combined with unstable_cache. This allows for sub-second load times while ensuring that recruiter-specific branding (logos, themes) is applied via a unified design system.

Outcome

Talent Showcase transforms the mundane task of CV forwarding into a professional, high-fidelity marketing channel. By combining AI automation with a privacy-first architectural posture, it provides recruiters with a powerful tool for differentiation while ensuring complete control over candidate data.