AI & Automation EngineerBangalore, IndiaAvailable for new projects

Charan Reddy

I build intelligent systems. Production LLM pipelines, a Springer-published model that reads chest X-rays well enough for a radiologist to take seriously, document automation that runs itself. Before AI, I wrote real-time control code for jet engines at DRDO. The throughline: systems that do actual work, not just demos.

ApplyOS is one of those systems. I built it because I was personally annoyed by re-typing the same 40 fields. I shipped it because other people were annoyed too.

This is one project.

There are 18 more — and a few jet engines — over at charanreddy.dev. Some are research, some are tools, one is a published paper. Worth a look if you're curious about the person behind the code.

See the rest

What I learned building ApplyOS

1

Heuristic detection beats per-site scrapers

ATS forms are a graveyard of inconsistent markup — same concept, nine different HTML opinions. The breakthrough was realizing I didn't need to know the site. I needed to score every signal on every input (label text, placeholder, name attribute, aria-*, autocomplete) and let the highest scorer win. A 100-line scoring table generalizes to ATSs I've never seen. Nine site-specific scrapers would have broken the week each one deployed a redesign.

2

React eats your form fills for breakfast

Setting input.value = 'foo' directly is silently ignored by React-controlled forms. The fix — writing through the native prototype's value descriptor and dispatching input + change + blur events — felt like a hack until I realized it's exactly how real browser autofill works. If it's good enough for Chrome, it's good enough for me.

3

Crypto UX is a product problem dressed as an engineering one

PBKDF2 + AES-GCM was 50 lines. The hard part was the decisions: no recovery path (by design — if I can recover it, so can someone else), 5-minute idle auto-lock (annoying enough to matter, fast enough to be tolerable), and a canary ciphertext so 'wrong passphrase' is specific rather than just 'something went wrong.' Engineering took a day. The product thinking took a week.

4

Local-first is a feature, not a compromise

I built this with no backend because I didn't want to host anything. Users read it as a trust proposition. Job-hunt data is sensitive — where you're interviewing, your salary expectations, your visa status. 'Your data never leaves this browser' turned out to be the most interesting sentence in the whole product.

5

Scratch your own itch — but scratch it properly

I built this because I was personally exhausted by 40-field forms. The discipline was resisting every shiny idea and shipping something that does a few things well. The features that made the cut are the ones I was annoyed enough about to build on a weekend. The roadmap is full of things I might want someday. That line matters.

Have an idea? Let’s talk.

Want to build something — or break something interesting? I’m always up for a conversation.

Crafted with intent. · Available for new projects. · ORCID