Skip to content
Gabriel Tibay

Work Case study

Full StackAnalyticsIntegrations

Recruitment Analytics Platform

RecruitCRMAPI SyncPostgreSQLMetricsDashboard

01

The problem

Recruitment performance and operational information existed across several systems. Answering a simple question about the pipeline meant exporting from the CRM, reconciling spreadsheets, and rebuilding the same views every week.

02

What needed to change

One place where recruiters and leadership could see pipeline activity, performance, and trends without anyone assembling a report first.

03

Architecture

A custom analytics application that consolidates recruitment reporting and performance visibility. It syncs from RecruitCRM through its API into PostgreSQL, computes the metrics server-side, and presents them in a Next.js interface.

04

What I built

  • Scheduled API sync jobs pulling candidates, jobs, and stage changes from RecruitCRM
  • A normalized PostgreSQL schema with history, so trends can be computed rather than guessed
  • Metric queries with agreed definitions for each stage and outcome
  • Dashboards per role: pipeline, recruiter performance, time in stage, sources

05

Stack

  • Next.js
  • React
  • APIs
  • RecruitCRM
  • PostgreSQL
  • Custom Analytics

06

Result

Reporting moved from weekly manual exports to a live application. Questions that used to require someone to build a spreadsheet are answered by opening a page.

07

What I learned

The hard part was never the charts. It was agreeing on definitions: what counts as a placement, when a stage starts, and which source wins when two systems disagree.

Next case studyAI Handwriting OCR