Full-Stack Recruitment & Talent Platform

Link IT Pros

A full-stack recruitment platform connecting IT professionals with recruiters through structured profiles, matching, technical testing and paid candidate unlocking.

Next.jsReactTypeScriptSupabasePostgreSQLRow Level SecurityStripeREST APIsNetlifyDocker
Live link available on request
Link IT Pros project preview

What I built

Link IT Pros is a full-stack platform designed to make IT recruitment more structured, transparent and efficient. Candidates build detailed technical profiles, select their technologies and seniority, complete role-relevant tests and control their availability. Recruiters can filter candidates, evaluate profile fit, unlock verified contact details and manage their recruitment workflow from one application. The project combines product design, frontend development, backend logic, database modelling, authentication, authorization and payment processing in a single production-oriented system.

What the product does

The features below show the product scope and the kind of business and technical problems handled inside the project.

01

Separate candidate and recruiter onboarding flows with role-based access.

02

Candidate profiles with seniority, location, work preferences, technologies and portfolio data.

03

Recruiter candidate search with filtering, matching and structured candidate comparison.

04

Technical testing system with technology-specific questions and multiple seniority levels.

05

Candidate unlocking flow connected to Stripe Checkout and webhook processing.

06

Recruiter workflow for favourites, notes, contact status and candidate follow-up.

07

Supabase authentication, PostgreSQL persistence, storage and Row Level Security policies.

08

Separate staging and production database environments for safer development and releases.

How it works technically

A closer look at the decisions behind the frontend, data layer, security and deployment of the application.

Frontend

The application is built with Next.js, React and TypeScript. The UI is divided into candidate and recruiter flows, with reusable components and route-based pages for registration, dashboards, candidate detail, testing and account workflows.

Backend & database

Supabase provides the backend platform, PostgreSQL database, authentication, storage and API access. The data model separates users, roles, candidate profile information, recruiter workflows, tests, questions, unlock records and payment-related state.

Security

Access is protected with role-based logic and PostgreSQL Row Level Security. Candidate and recruiter data is restricted according to authentication state and application role instead of relying only on frontend checks.

Payments

Stripe Checkout is used for candidate unlocking. Webhook handling connects payment confirmation with application state so recruiter access can be granted only after a successful payment flow.

Deployment & environments

The web application is deployed through Netlify. Development work includes separate test and production Supabase projects, database migrations, local tooling with Docker/WSL and controlled schema changes between environments.

My role in the project

These are the areas I personally worked on and can discuss in depth during a technical interview.

Designed the product flow and application architecture from the initial concept.

Implemented the frontend in Next.js, React and TypeScript.

Designed and evolved the PostgreSQL/Supabase data model.

Implemented authentication, user roles and Row Level Security policies.

Built candidate filtering, matching and recruiter-facing workflows.

Implemented the technical-test flow and database-driven test questions.

Integrated Stripe Checkout and webhook-based payment confirmation.

Worked with database migrations, staging/production environments and deployment.

Problems I had to solve

The most useful projects are the ones that force real technical decisions. These are examples of those decisions in this project.

Keeping candidate data private

Recruiters need enough information to evaluate a candidate before purchasing access, while personal contact details must remain protected. I separated public/anonymized profile data from unlock-only information and combined application logic with database-level access policies.

Database-driven technical tests

The testing system has to support multiple technologies and seniority levels without hardcoding each test into the frontend. Questions and test sets are stored in the database and selected dynamically according to the candidate's technology and level.

Safe payment state

Unlocking cannot depend only on a browser redirect after payment. Stripe webhook processing is used as the authoritative payment confirmation before the corresponding recruiter access is recorded.

INTERESTED IN THE IMPLEMENTATION?

Let's talk about the project.

I can walk through the architecture, implementation decisions and the problems solved while building it.