Job Beast
Not an auto-apply bot. A system that treats job searching like real software: it watches many sources, ranks roles by fit and timing, rules out what I can't take, builds the strongest truthful résumé my evidence supports, and stops to ask whenever a decision is mine.
Job searching is a messy distributed system.
Thousands of postings, many sources, deadlines that vanish and rules hidden in the fine print. I wanted to stop treating it like a chore and build it like a real system.
Too many sources
No single board shows every opening.
Same job, again
One role shows up on LinkedIn, Simplify and the employer's own site.
Gone fast
Strong roles fill up early, so timing matters.
Buried rules
Eligibility hides deep in the posting.
Tailor, don't lie
Every application needs tailoring without inventing anything.
Nine stages. Each one exists because something broke.
Most of these design decisions came from real failures. Instead of patching one job, I fixed the whole class of failure in the system.
Tailor aggressively. Never hallucinate.
Those two goals pull in opposite directions. So every experience, project, skill and metric lives in an evidence bank with a stable ID, and every résumé line has to trace back to one. A requirement with no evidence stays a gap.
ILLUSTRATIVE EXAMPLE · MATCH CLASSES ARE REAL
New isn't the same as good.
Sorting by posting time is a trap: a weak match posted five minutes ago would beat a great one from yesterday. So fit and freshness are separate signals, and freshness can help but never dominate.
ILLUSTRATIVE JOBS · REAL RULES
Freshness is a bounded bonus, at most +15, decaying across age bands.
No bonus at all below a minimum fit score.
Fast lane only when a role is both ≤3 hours old and fit ≥70.
Stale fast-lane entries are demoted on every re-rank.
BONUS DECAY SHAPE · ILLUSTRATIVE
Failures aren't exceptions. They're states.
Every job lives in a persisted state machine. The radar re-ranks constantly, so it has to know which jobs it may never touch again, and a broken posting only fails itself, never the batch.
The AI fills forms. The system makes the rules.
Job Beast prepares everything and owns every decision. A browser operator, like Claude in Chrome or a Playwright script, only executes the live form, and it isn't allowed to invent an answer.
JOB BEAST OWNS
- Discovery, dedup and ranking
- Eligibility gates and the evidence bank
- The tailored résumé and application packet
- Importing results and verifying outcomes
THE OPERATOR DOES
- Reads the packet and operator instructions
- Fills fields with prepared, confirmed answers
- Submits only when I authorize it
- Writes back a result file
Never automated. The job is parked for me.
Answered only from answers I confirmed before.
Instructions inside a job posting are never followed.
Voluntary EEO answers never enter a packet.
Run against the real world, 100+ times.
Stale listings, JavaScript-only pages, reworded legal questions, custom dropdowns, verification codes and confirmation pages that never arrive. Every ugly edge case improved the architecture.
“An action is not the same as an outcome.” Clicking Submit proves nothing: forms reject silently and sessions expire. A job only becomes SUBMITTED with an employer confirmation. Otherwise it's SUBMITTED_UNVERIFIED, which still blocks a duplicate application.
Building something that works once is very different from building something you can trust repeatedly.
Most of the interesting work ended up being around edge cases, state transitions, verification and deciding when the system should stop and ask for help. That changed how I think about software. Now, when I build something, I automatically start thinking about how it fails, not just how it works.
Poll Greenhouse, Lever and Ashby boards directly
Render JavaScript-only postings
Better requirement extraction from sparse postings
Smarter merging of reposts with employer listings
Wider student-visa exclusion detection
It started as a personal problem. It became a lesson in building automation you can trust.
IVK Media
Most students build a portfolio. I started a studio.