Candidate { # Candidate n1: circle label:"Start" n2: rectangle label:"Submit application" n3: rectangle label:"Complete phone screen" n4: rectangle label:"Attend technical interview" n5: rectangle label:"Complete onsite interviews" n6: rectangle label:"Receive offer or rejection" n7: circle label:"End" n1.handle(right) -> n2.handle(left) n2.handle(bottom) -> Recruiter.n8.handle(top) [label="Apply"] n3.handle(bottom) -> Recruiter.n12.handle(top) [label="Screen complete"] n4.handle(bottom) -> HiringTeam.n16.handle(top) [label="Technical done"] n5.handle(bottom) -> HiringTeam.n20.handle(top) [label="Onsite done"] n6.handle(right) -> n7.handle(left) } Recruiter { # Recruiter n8: rectangle label:"Review resume" n9: diamond label:"Meets requirements?" n10: rectangle label:"Schedule phone screen" n11: rectangle label:"Send rejection email" n12: diamond label:"Phone screen passed?" n13: rectangle label:"Schedule technical round" n14: rectangle label:"Add to talent pool" n8.handle(right) -> n9.handle(left) n9.handle(right) -> n10.handle(left) [label="Yes"] n9.handle(bottom) -> n11.handle(top) [label="No"] n10.handle(top) -> Candidate.n3.handle(bottom) [label="Scheduled"] n11.handle(top) -> Candidate.n6.handle(bottom) [label="Rejected"] n12.handle(right) -> n13.handle(left) [label="Yes"] n12.handle(bottom) -> n14.handle(top) [label="No"] n13.handle(top) -> Candidate.n4.handle(bottom) [label="Scheduled"] n14.handle(top) -> Candidate.n6.handle(bottom) [label="Not now"] } HiringTeam { # Hiring Team n15: rectangle label:"Conduct technical interview" n16: diamond label:"Technical skills sufficient?" n17: rectangle label:"Schedule onsite panel" n18: rectangle label:"Provide feedback" n19: rectangle label:"Conduct onsite interviews" n20: diamond label:"Team consensus?" n21: rectangle label:"Extend offer" n22: rectangle label:"Decline candidate" n15.handle(right) -> n16.handle(left) n16.handle(right) -> n17.handle(left) [label="Yes"] n16.handle(bottom) -> n18.handle(top) [label="No"] n17.handle(top) -> Candidate.n5.handle(bottom) [label="Scheduled"] n18.handle(top) -> Candidate.n6.handle(bottom) [label="Rejected"] n19.handle(right) -> n20.handle(left) n20.handle(right) -> n21.handle(left) [label="Hire"] n20.handle(bottom) -> n22.handle(top) [label="No hire"] n21.handle(top) -> Candidate.n6.handle(bottom) [label="Offer sent"] n22.handle(top) -> Candidate.n6.handle(bottom) [label="Rejected"] }