← Boot the interactive version (kOS)

Khuswant Rajpurohit

AI engineer · full-stack developer · cloud-native open source · Delhi, India

I build end-to-end AI systems — ingestion, preprocessing, inference and deployment — and the product surfaces around them. Most of my work lives where LLMs, OCR + vision-language pipelines and production web apps meet. In the evenings I contribute to Kubescape, a CNCF Kubernetes security project.

Now: Going deeper on distributed systems, Kubernetes internals and eBPF. Open to: Internships, collaborations and open-source work.

Case studies

PDF Invoice Extractor

Offline OCR that turns messy invoices into 30+ structured fields — no LLM calls.

Sole developer — OCR pipeline, extraction engine, vector search, React UI · PaddleOCR, RapidFuzz, Flask, sentence-transformers, Qdrant, React

Invoices arrive in dozens of layouts. OCR output is noisy — labels are misspelt (qty / qnty / nos / pcs), table columns come back as separate text blocks and totals don't always add up. Manual entry is slow and error-prone.

  • PDF pages are rasterised with pdf2image and run through PaddleOCR locally; the code handles both the current and the legacy PaddleOCR result formats.
  • A fuzzy-matching engine maps ~200 OCR-noisy label variants onto 30+ structured fields using rapidfuzz WRatio with a configurable threshold.
  • Line items are rebuilt with three strategies tried in order: multicolumn recovery, four compiled table regexes, and a product-code fallback that searches for the (qty, rate, amount) triple with the smallest error.
  • Every result is validated (qty × rate = amount, totals vs. item sums), embedded with all-MiniLM-L6-v2 and upserted into Qdrant for natural-language search.
No LLM in the parsing path.
Extraction is regex + fuzzy matching, so it runs fully offline, deterministically and without per-document API cost.
Graceful degradation.
If Qdrant is unavailable, extraction still works and only the vector features switch off.
Tables that OCR reads column-by-column.
Multicolumn recovery pairs product lines with nearby monetary values and back-calculates quantity from amount ÷ rate.
False positives.
Invoice-number and date detectors explicitly skip phone numbers, TINs and printer footer dates.

Source

AstroAgent — Aradhana

A LangGraph agent with real ephemeris tools, RAG, guardrails and an eval harness.

Sole developer — agent graph, tools, API, evaluation, frontend · LangGraph, FastAPI (SSE), Groq Llama-3.3-70B, ChromaDB, SQLite, React + TypeScript, Zustand

Chatbots in this domain tend to hallucinate charts and speak with false certainty. The goal was an assistant that computes real natal charts and transits, grounds answers in a curated knowledge base and stays safe under adversarial input.

  • A LangGraph state machine: classify_intent → ensure_birth_details → ReAct agent ⇄ ToolNode → safety_check → format_response.
  • Four tools: geocoding, birth-chart computation and daily transits (Swiss Ephemeris via kerykeion) and a ChromaDB knowledge lookup.
  • The router caps tool use at 6 calls per turn so the agent can't loop indefinitely.
  • Responses stream to a React chat UI over Server-Sent Events from FastAPI's astream_events.
A dedicated safety node.
Answers are scanned for certainty language and medical, financial or legal advice, and rewritten when needed — guardrails as a graph stage, not a prompt hope.
Intent-first routing.
Greetings, chit-chat and injection attempts skip the birth-details gate entirely.
Measuring quality.
An evaluation harness runs 26 golden cases across 7 categories (chart, transit, knowledge, invalid input, safety, off-topic, adversarial) with LLM-as-judge scores, latency and cost.
Offline determinism.
kerykeion's online GeoNames lookups are bypassed by passing explicit lat/lon/timezone from the geocoding tool.

SourceLive

Career Operator (HulChul)

A browser agent that applies to jobs from a plain-English goal — and asks before anything risky.

Sole developer — operator runtime, browser automation, console, practice sites · TypeScript, Playwright, Next.js, Groq (optional), ExcelJS

Job applications are repetitive, but fully autonomous agents are dangerous: they pay fees, accept contracts and answer questions they shouldn't. The aim was useful automation with explicit human checkpoints.

  • A goal such as “apply to up to 3 remote internships paying ≥ ₹15,000” is parsed into a plan; the operator drives a real Chromium browser to find and fill matching applications.
  • Each application is written to an Excel tracker and then verified — the run ends with a verification table, not a claim.
  • The operator pauses for approval before paying a fee, accepting a contract or answering an unknown question.
  • Ships with local practice sites (a job board, an inbox and a careers site) so every run is reproducible and no real people are involved.
Works without an API key.
Rule-based goal parsing is the default; a Groq key upgrades goal reading and cover notes.
Verification as a first-class step.
After applying, it checks the board, the tracker and the inbox to confirm the application really went through.
Different form shapes.
Site drivers isolate per-site form logic (two-step forms, external careers pages) from the shared runner.
Idempotency.
Jobs already in the tracker are skipped, so re-runs don't double-apply.

Source

SRIP — Smart RFQ Intelligence Pipeline

Agentic RAG that turns WhatsApp RFQs into GST-compliant steel quotations.

Developer — agent pipeline, RAG corpus, API and dashboard · FastAPI, Groq LLaMA3 / Mixtral, ChromaDB, PostgreSQL, Celery + Redis, WeasyPrint, Twilio WhatsApp, React

Indian steel MSMEs receive requests for quotation as informal WhatsApp messages (“12mm sariya Fe500 10 ton chahiye”). Turning them into priced, tax-correct quotes is manual work.

  • Requests arrive by WhatsApp, email, upload or text API and are queued with Celery.
  • An orchestrator dispatches OCR, NER, validator, pricing, GST, quote and communication agents.
  • NER and validation are grounded with RAG over Indian Standards (IS) codes and HSN/GST documents.
  • Pricing combines weight calculation with live MCX prices; the GST agent chooses IGST vs. CGST + SGST; quotes render as PDFs.
Rule engines where rules exist.
Validation (BIS standards) and GST are rule engines with RAG lookups rather than free-form LLM output.
Fallbacks.
In-memory fallback when PostgreSQL is absent; ReportLab fallback for PDF rendering.
Hinglish, abbreviations and typos.
The NER agent is grounded on a synonyms + IS-code corpus to map informal product names to standard grades and dimensions.

SourceLive

TermDrop

Terminal-first file sharing over LAN — streaming, hashed and optionally encrypted.

Sole developer — CLI, streaming server, security, web client · TypeScript, Node.js, Express, busboy, WebSockets, Commander.js

Moving a file from a laptop to a phone usually means a cloud round-trip. TermDrop starts a local server from the CLI and prints a QR code so any device on the same network can transfer directly.

  • Uploads stream through busboy into fs streams, so large files use minimal memory, with SHA-256 computed on the fly.
  • A WebSocket channel pushes live progress, speed and peer status to the web client and the terminal dashboard.
  • Security: scrypt password protection with random session tokens, path-traversal defence, upload size limits that abort the stream, and optional AES-256-GCM.
  • SIGINT is trapped for a graceful shutdown that closes connections and cleans temporary files.
Zero external CDN.
The web client has no third-party dependencies, so it works on a router with no internet connection.
Rooms.
Isolated room sessions (--room) let multiple devices share without seeing each other's files.
Integrity during streaming.
Hashes are computed while bytes flow instead of re-reading the file afterwards.

Source

DraySight

A parallel cloud-browser fleet that watches port terminals for demurrage risk.

Sole developer — Next.js app, portal adapters, concurrency runner · Next.js, TypeScript, Solari cloud browsers, SQLite, rrweb

Container terminals expose status through legacy, JavaScript-heavy portals with no APIs. Dispatchers check containers one by one and miss Last Free Days, which triggers daily penalties.

  • Dispatchers paste a batch of container numbers; a semaphore-controlled runner fans them out to isolated cloud browser microVMs.
  • Portal adapters (the live Long Beach terminal and a deterministic sandbox) drive the real UI, dismiss consent dialogs and extract status, holds and LFD.
  • Results are ranked by urgency (critical / urgent / normal / hold), with screenshots and full session replays for audit.
Adapter pattern for portals.
Each terminal implements one interface, so adding a port means adding one adapter.
Kendo UI grids.
Search inputs only enable after synthetic input, change and keyup events — plain HTTP scraping can't do it.

SourceLive

More projects

  • VedaAI — AI question-paper generator: Next.js + Express, BullMQ jobs, Groq generation, socket.io updates.
  • Gharpayy Command Center — A proactive lead CRM: morning brief, action centre, transparent lead health scores and assignment.
  • GTM Agent Workflow — Interactive prototype of AI agents for entity resolution, ICP mining and lookalike scoring on messy CRM data.
  • ENA Graph RAG PoC — Text-to-Gremlin agent: a local LLM queries a PuppyGraph view over Postgres with zero ETL.
  • XFRM Netlink PoC — C proof-of-concept capturing XFRM_MSG_ACQUIRE kernel events over Netlink, for Libreswan.
  • Lets-Chat — Real-time chat: Next.js, Socket.io, MongoDB and JWT authentication.

Open source

29 merged pull requests across 7 organisations, 20 of them in Kubescape (CNCF). Synced 2026-10-20.

kubescape — 20 merged · 3 open · 1 closed

zero-to-mastery — 6 merged · 0 open · 0 closed

container-registry — 1 merged · 1 open · 0 closed

security-slam — 1 merged · 0 open · 0 closed

kube-burner — 1 merged · 0 open · 0 closed

kyverno — 0 merged · 0 open · 1 closed

rizinorg — 0 merged · 0 open · 1 closed

Experience

AI Intern · Kunishe Software Private Limited

Nov 2025 –

  • Building a production OCR + vision-language model (VLM) pipeline for structured data extraction from complex, varied document layouts — preprocessing, inference and post-processing as one system.
  • Improving extraction accuracy through iterative data labelling and model fine-tuning, so the pipeline holds up against real-world noise, skew and format inconsistencies.
  • Integrating the inference pipeline into a scalable backend service that turns model output into production-ready structured data.

Junior Developer Intern · Ardent Financial Solutions

Jun 2025 – Aug 2025

  • Delivered production features end-to-end for a live financial platform, from design to deployment, serving real users.
  • Set up and maintained CI/CD pipelines to automate deployments and resolved production edge cases under real-world load.

Open Source Contributor · Triager · Kubescape (CNCF)

2026 –

  • Contributing across Kubescape, the Kubescape Operator, the eBPF node-agent, Helm charts and the Rego rule library — security controls, bug fixes, tests and tooling.
  • Triaging issues: reviewing and categorising reports, identifying actionable problems and working with maintainers on issue and PR workflows.
  • Developing and debugging Go components and Rego security policies against Kubernetes, Docker, CI and security-scanning infrastructure.

Education, skills & achievements

B.Tech in Artificial Intelligence — Newton School of Technology, Rishihood University, 2024 – 2028 (ongoing). Grade 7.13 / 10.

Languages:
TypeScript, JavaScript, Python, Go, SQL, C++, Rego
AI / ML:
LangGraph, LangChain, LangSmith, RAG, OCR + VLM, PaddleOCR, Hugging Face, pgvector, Qdrant, ChromaDB, Groq, Ollama
Frontend:
React, Next.js, Tailwind CSS, Zustand
Backend:
Node.js, Express, FastAPI, Flask, Prisma, Supabase
Data:
PostgreSQL, MongoDB, MySQL, SQLite, Redis
Cloud native:
Kubernetes, Docker, Helm, eBPF, GitHub Actions, OpenTelemetry
  • Active open-source contributor in Hacktoberfest and GirlScript Summer of Code (GSSoC).
  • Mumbai Hacks — GenAI Hackathon (2025): cleared Round 1.
  • SIH Internal Hackathon (2024): team lead, delivered a working prototype.