Abhinav Sharma
All work

Finding the roles that never reach a job board, and applying while you sleep.

ClientJobs Copilot
RoleFull-stack engineer
Year2026
Duration4 months
TypeScriptNodePostgreSQLPlaywrightVector searchStripe
400k+Career pages monitored
300Auto-applications per month
DailyMatched-role digest

The problem

Job boards are a lagging index. A posting reaches them late, duplicated across aggregators, and often after the role is effectively filled — the live opening sits on the company’s own careers page. There are hundreds of thousands of those, each rendered by a different applicant tracking system, none of them offering an API, many of them JavaScript-rendered. Then the same role appears under three titles across two systems and has to be recognised as one job. Applying automatically is harder still: every form is a different shape, and getting it wrong on a candidate’s behalf is not a recoverable error.

The approach

Scrapers are written per tracking system rather than per company, so one adapter covers thousands of employers and new companies cost nothing to add. Postings are reduced to a canonical identity — employer, title, location, requisition — so duplicates collapse before they ever reach a candidate. Matching runs on embeddings of the profile against the posting rather than keyword overlap, which is what surfaces adjacent roles a title filter would miss. Auto-apply keeps a review step by default: the application is prepared and held, and the candidate decides whether it goes.

The outcome

A candidate sees roles while they are still fresh on the employer’s own site, gets a daily digest of matches, and on the premium tier can put out up to 300 applications a month without hand-filling a single form.

What mattered

Adapters per system, not per employer

One integration per applicant tracking system covers thousands of companies, so coverage grows without the maintenance growing with it.

Deduplication before delivery

The same role under three titles across two systems collapses to one canonical posting, so a digest is a list of jobs rather than a list of listings.

Review stays the default

Applications are prepared and held rather than fired off. Submitting the wrong thing on someone’s behalf is not an error you can take back.