Job Hunter — Daily Job Board & Outreach Engine
Delivers fifteen pre-scored job matches to a job seeker's board every morning at 08:00, each carrying the recruiter, hiring manager, and tech lead, with a personalised LinkedIn message already written. Built for job seekers who need the hunt to take twenty minutes, not two hours.
What was actually broken.
Job searching drains the people who can least afford to lose the time. Boards surface the same roles days after they appeared on company career pages, duplicated across four aggregators, half of them mislabelled as remote. The real cost is not the scroll — it is the hour spent finding the right person to contact, writing a message that does not sound generic, and doing it again tomorrow. Most job seekers either apply to everything indiscriminately or stop applying altogether. The tooling that exists optimises for volume; it does not make the daily task finite, and it does not tell you who actually decides.
On screen.



How it was built.
The architecture, the constraints it was chosen against, and the trade-offs that came with it.
A Next.js application deployed on Vercel, with a PWA manifest so it installs on mobile without an app store. The overnight pipeline hits six job boards and 184 company career pages directly — career pages rather than aggregators because roles appear there days earlier, and that lead time is the product's core edge. Each role is scored 0–100 across title fit, stack overlap, seniority band, geography, freshness, and company signal; anything below the user's cut-off is dropped before the board renders. Duplicate detection collapses the same role syndicated across multiple boards into one card, keeping the company's own listing. Contact resolution is a precision LinkedIn search scoped to company and title — the product never scrapes LinkedIn and never stores an invented name; it opens the right search and the user clicks through. DM generation is role-specific, written in the user's declared tone, and the user copies or edits before sending. Preset switching — fresher through senior — moves scoring weights, seniority filters, and DM register together in one action. Payments run through MTN MoMo and Orange Money in XAF, which is the only payment infrastructure that works frictionlessly for the primary market.
Stack
What it moved.
Measured after delivery, against the numbers the engagement started from.
- Career pages crawled
- 185+
- Roles delivered per user per day
- 15
- Time to complete daily hunt
- ~20 min
See it for yourself.
Something similar on your desk?
Let’s talk about it.