function jobSearch(Candidate you) {
// pre-work
Goals goals = you.calculateTenYearGoals();
Compensation minimumBar = marketDataService.refresh();
List targetCompanies = searchTargetCompanies(goals, you.coreValues());
// self marketing and application prep
Resume resume = new Resume(you);
linkedIn.update(you, resume);
Website site = new Website(you, resume, linkedIn); // optional
// applications
List targetJobs = whoIsHiring(targetCompanies, goals, minimumBar);
targetJobs.addAll(linkedIn.getJobs()).addAll(hackerNews.getJobs()).addAll(...);
foreach(job in targetJobs) {
if (linkedIn.hasConnection(job)) {
applyWithEmployeeReferral(job, resume, site, new CoverLetter(job));
} else {
applyCold(job, resume, site, new CoverLetter(job));
}
}
// interviews
List interviews = Recruiters.schedule();
foreach(interview in interviews) {
applyBehavioralTemplate(interview);
applySystemDesignTemplate(interview);
if (you.leetcode()) { applyLeetcodeTemplate(interview); } // optional
}
// offers
List offers = Recruiters.loveYou();
Offer dreamJob = filterOffers(offers);
you.negotiate(dreamJob, minimumBar, goals);
// winning
you.setJob(dreamJob);
}