[{"data":1,"prerenderedAt":97},["ShallowReactive",2],{"work-recruit":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":7,"client":9,"year":10,"role":11,"summary":12,"result":13,"tech":14,"featured":21,"order":22,"cover":23,"body":24,"_type":91,"_id":92,"_source":93,"_file":94,"_stem":95,"_extension":96},"\u002Fwork\u002Frecruit","work",false,"","From job requisition to shortlist without leaving the desk","Recruit",2025,"Recruiting platform","Hiring lived in inboxes, calendars, and a spreadsheet of open roles. We built one recruiting desk — requisitions, sourcing, matching, and interviews — so the pipeline has a place to live.","One desk from JD to next interview",[15,16,17,18,19,20],"Vue 3","Pinia","Vuetify","Azure SSO","Vue Query","WebSockets",true,2,"recruit",{"type":25,"children":26,"toc":85},"root",[27,36,42,47,53,58,64,69,74,80],{"type":28,"tag":29,"props":30,"children":32},"element","h2",{"id":31},"the-problem",[33],{"type":34,"value":35},"text","The problem",{"type":28,"tag":37,"props":38,"children":39},"p",{},[40],{"type":34,"value":41},"A requisition opened in one tool. CVs arrived in another. Matching was a recruiter’s memory. Interviews were a calendar invite with no link back to the role. Hiring managers saw a dump; recruiters saw a queue. VIP referrals — the ones that must not get lost — landed in the same inbox as everything else.",{"type":28,"tag":37,"props":43,"children":44},{},[45],{"type":34,"value":46},"They didn’t need another ATS brochure. They needed the week of hiring to happen in one place.",{"type":28,"tag":29,"props":48,"children":50},{"id":49},"the-approach",[51],{"type":34,"value":52},"The approach",{"type":28,"tag":37,"props":54,"children":55},{},[56],{"type":34,"value":57},"We started from the requisition, not the candidate list. Every later step has to point at a JD: sourcing, match scores, pools, interview slots. Recruiters and hiring managers get different shells of the same product — same data, different jobs. Referrals get their own qualify path, because a stakeholder intro is not a job-board apply.",{"type":28,"tag":29,"props":59,"children":61},{"id":60},"the-solution",[62],{"type":34,"value":63},"The solution",{"type":28,"tag":37,"props":65,"children":66},{},[67],{"type":34,"value":68},"A Vue 3 recruiting workspace: create and progress job requisitions, run sourcing against the open role, score candidates against the JD with a matching pass the recruiter can actually read, keep silver-medalists in CRM pools, and put interviews on a shared calendar. Live updates so two people don’t edit the same stage in the dark. Enterprise SSO so the desk sits inside the company, not beside it.",{"type":28,"tag":37,"props":70,"children":71},{},[72],{"type":34,"value":73},"The matching UI is not a magic percentage in a vacuum. It sits on the advert — the headings the role already uses — so a score means “this CV against this job,” not “this CV against the universe.”",{"type":28,"tag":29,"props":75,"children":77},{"id":76},"the-result",[78],{"type":34,"value":79},"The result",{"type":28,"tag":37,"props":81,"children":82},{},[83],{"type":34,"value":84},"The pipeline is visible. A recruiter can open a requisition and see who is sourced, who matched, who is waiting on a slot, without exporting to Excel. Hiring managers review a shortlist, not a folder. Referrals get qualified instead of buried. The product is private — we talk about the desk, not screenshots of other people’s candidates.",{"title":7,"searchDepth":22,"depth":22,"links":86},[87,88,89,90],{"id":31,"depth":22,"text":35},{"id":49,"depth":22,"text":52},{"id":60,"depth":22,"text":63},{"id":76,"depth":22,"text":79},"markdown","content:work:recruit.md","content","work\u002Frecruit.md","work\u002Frecruit","md",1789258141857]