The problem

Creditors holding a valid judgment still have to manually chase down a debtor's assets and identity across scattered public sources before they can collect.

That research is repetitive, error-prone, and expensive to outsource, which stalls small-dollar enforcement.

The approach

Built a self-serve product that turns a debtor lookup into an automated, queued research run across multiple open-source adapters.

Separated the web app from a long-running worker so investigations run as background jobs with live progress streamed back to the user.

Designed source adapters as pluggable modules so new open-source signals can be added without reworking the core.

What I built

  • A Next.js 16 app with authenticated accounts, a research-request flow, and results dashboards
  • A BullMQ job queue drained by a dedicated Node worker that runs source adapters, including Sherlock-based username/identity research
  • A Drizzle ORM schema over PostgreSQL with generated, versioned migrations
  • Redis-backed queueing, rate limiting, and server-sent-event pub/sub for real-time run updates
  • Auth.js v5 authentication, Resend transactional email, and structured Pino logging
  • CI on GitHub Actions plus Vitest and Playwright test suites; containerized worker for Railway deployment
  • Next.js 16
  • TypeScript
  • Drizzle ORM
  • PostgreSQL
  • Redis
  • BullMQ
  • Auth.js v5
  • Sherlock (OSINT)
  • Vitest
  • Playwright
  • Railway
Demo available on request← Back to all work

Want something like this for your business?

Book a free consult