Vishnujan NarayananData pipelines,from crawlers to APIs

I build the crawlers and scheduled jobs that pull data in, the tests that ensure the data is valid, and the APIs and apps that serve it.

scroll to see how I work
03

Deploys &
Uptime

  • DekhLaw Platform
  • Job Application Bot
Writing

Blogs

Notes from the build — deep dives on data pipelines, applied ML, and the engineering behind shipping systems that hold up in production.

Data engineering9 min read

How I Scraped 20 Years of NSE Insider Filings

Backfilling two decades of insider-trade data from the NSE PIT API meant chunked date windows, composite-key dedup, and reconciling against a second source to close a reporting lag.

Read →
Data engineering8 min read

Building Resumable ETL Pipelines That Repair, Not Corrupt

The difference between a pipeline you babysit and one you forget about is what happens on the second run. Incremental loads, adaptive backoff, and reruns that heal gaps.

Read →
Quant / ML9 min read

Predicting Next-Minute Price Direction on 9.4M NSE Ticks

From raw trade and quote ticks to minute bars to a directional model — and the leakage traps that make backtests lie if you let them.

Read →
Solo-built production legal-emergency platform — ~30 Express endpoints over PostgreSQL with JWT auth, a real-time Twilio call-dispatch engine, and Haversine lawyer matching, deployed on Railway and Vercel.DekhLaw Legal-Emergency Platform
Production law-firm marketing site in Next.js 14 + TypeScript — 14 routes, Resend-backed lead capture, Zod-validated forms, and full SEO/JSON-LD, designed and shipped solo.Law Firm Website
Autonomous job-search bot — scrapes Indeed, Glassdoor, and LinkedIn listings, scores them against a master profile, and builds a tailored resume per match with an LLM, rendered on demand via FastAPI.Job Application Bot
17 rows in set (0.001 sec)

The Product

QuickForge

Fresh postings.Instant alerts.Tailored résumé, every time.

QuickForge monitors job listings in real time, scores every posting against your profile, and delivers a tailored résumé for each match — send quality applications before quantity shows up.

QuickForge product preview

No callbacks?
Your resume isn’t talking their language.

Recruiters get 200+ per role. Generic gets filtered before a human looks. Your experience isn’t the problem.

The fix

The bot reads the JD and selects the exact bullets, title and skill framing that match it. Every application speaks that role’s specific language. Automatically. Every time.

Applicant #847.
Window closed 3 hours ago.

Recruiters stop reading after the first 50. The window is under an hour from posting. You can’t watch three boards while that window opens and shuts.

The fix

The bot monitors Indeed, Glassdoor and LinkedIn continuously. The moment a match posts, you get a Telegram ping with the apply link and a tailored résumé ready to go. First wave, not after it.

Tweaking the same
résumé. Again.

10 roles a day is 10 tailoring sessions. You’re spending more time in Word than applying. And the rushed ones always look it.

The fix

You write your bullets once. The bot selects the right ones per role, every time. Your master profile becomes every tailored résumé you’ll ever need.

In development · Lab 01

Coming soon

PythonFastAPIPostgres + pgvectorPlaywrightTelegram