Flagship project

Prateek OS

It started as a better way to run my job search. Then it kept growing.

Some of it runs today: job discovery and ranking, a capture inbox, and the reliability layer under them. A local-first brain and a technology news radar are being built now; the rest is planned. Everything answers to one interaction layer, Patrick. Each chapter says where it stands.

← Back to Work

Live

Career & JobOps

A hundred browser tabs, replaced by one deterministic pipeline.

JobOps finds Canadian job postings from company career sites and job-alert emails, drops duplicates, and scores each one against a real set of preferences. The score is a weighted, versioned formula with every component visible, not a black box. Strong matches get routed straight to me. Outreach, follow-ups, and interview prep are the next stage of the same pipeline.

  • Discovery and de-duplication across company sites and alert emails
  • Deterministic ranking behind a hard eligibility gate, every score visible
  • Strong matches routed to me; CRM and follow-ups come next

Live

Capture & personal ops

One inbox for anything worth keeping, reachable by voice, phone, or Discord.

Ideas, links, and tasks all land in one inbox from Discord or a phone Shortcut, including voice capture, with the raw input preserved exactly as sent. Natural-language interpretation lets me capture things in plain sentences, while deterministic rules still own classification and scheduling. Calendar changes always wait for explicit approval.

  • Discord and a phone Shortcut, including voice, feed the same inbox
  • Natural language is interpreted, but every mutation still passes a deterministic approval gate
  • Raw input stays verbatim; derived data can be rebuilt

In development

Brain, context & search

A local-first memory with a receipt for where everything came from.

A local-first store keeps provenance with every item. Search, claims, and context compilation already run on top of it; the current work is hardening that runtime before adding clean importer interfaces for outside sources.

  • Local-first storage with provenance on every item
  • Search and context compilation across the corpus
  • Importer interfaces for outside sources

In development

News & reference intelligence

A radar for technology news, and a reference library that stays in order.

The news radar is already running in development while its source coverage expands. A structured reference library comes next, so supporting material stays findable alongside the news.

  • Technology news radar running in development
  • Structured reference library planned next

Planned

Creator intelligence

Creator analytics turned into decisions, not a dashboard.

A planned layer that reads Pirated Sardar's YouTube analytics and turns them into concrete calls on what to make next, based on what has performed.

  • YouTube analytics ingestion and trend surfacing
  • Feeds content and topic decisions for Pirated Sardar

Planned

Proactive intelligence

The system resurfaces things before they get forgotten.

A planned layer that brings stale tasks, follow-ups, and context back at the right moment, so the system acts on what it stores without being asked first.

  • Proactive resurfacing of stale or time-sensitive items
  • Cross-subsystem awareness, not isolated reminders

Live

Reliability & cost control

What keeps a system of systems from tripping over itself.

The live subsystems share one set of guarantees. Leases and heartbeats, so only one worker acts at a time. Idempotent operations, so a retry never duplicates work. Atomic writes, so a half-finished save is impossible. A dedicated cost-monitoring pass comes later.

  • Leases and heartbeats for safe concurrent execution
  • Idempotent operations across every pipeline
  • Atomic writes, no partial state

Planned

Portfolio extraction

A sanitized path from the private system to public material.

This site's project data is hand-authored today. A planned extraction path will pull shareable, non-sensitive project and career signal out of the private system, with the privacy boundary enforced at extraction time.

  • Sanitized extraction from the private system to public artifacts
  • The privacy boundary enforced at extraction time

Live

Patrick

The interaction layer. How you talk to Prateek OS, in one voice.

Patrick is the single conversational surface over the whole system. It is a presentation layer: not a login, not a separate program. Permission always belongs to the person interacting, never to Patrick. Using the OS through Patrick feels like one assistant, not a drawer of tools.

  • One conversational surface across every subsystem
  • A presentation layer, not a platform or an authorization identity

How it's built

  • TypeScript and Node services in a pnpm monorepo
  • Postgres (Supabase), row-level security on every table
  • Discord as the single control surface
  • Deterministic pipelines, no model call at request time
  • Scheduling, leases, heartbeats, idempotency
  • AI-assisted development, backed by review and tests

TypeScript and Node services in a pnpm monorepo, a hosted Postgres database with row-level security on every table, and Discord as the one place I drive it from. The live pipelines are deterministic: plain rules, lookups, pattern matching. A result can always be rebuilt from its raw source, and nothing calls a model at request time.

Concurrency is handled the boring way. A worker takes a short lease on what it is doing and renews a heartbeat while it works. Every write is atomic. A crash mid-task leaves no half-finished state, and a retry never doubles the work.

A good part of the build uses AI-assisted development, kept honest with review and tests. It is a way to move faster, not the reason the system is worth anything. The reusable pieces, the scheduling and the deterministic pipelines and the capture front door, are general enough that turning some of it into a product is a real option later.

The architecture, milestones, and system-by-system detail behind this are documented publicly. Read the engineering docs ↗