Tuesday, November 3, 2026
HomeGolangigiveyouarendezvous: an interview scheduler in pure Go (native search, lexicographic aims) -...

igiveyouarendezvous: an interview scheduler in pure Go (native search, lexicographic aims) – Releases


Hi gophers,

I’ve launched igiveyouarendezvous, a command-line device and Go library that plans interview days. Every candidate should meet a number of recruiters, and the device builds the timetable.

What it handles:

  • a recruiter sees one candidate at a time; recruiters of the identical “joint group” could interview collectively;
  • all of a candidate’s interviews occur the identical day, again to again (or with a bounded wait), by no means throughout the lunch break;
  • availabilities per particular person, each day or by date, and an interview size per recruiter;
  • strict priorities, plus an computerized urgency for candidates with few days left.

The aims are lexicographic, with no weights to tune: candidates seen first, then conferences, then sparing recruiters’ days and half-days, then fewer interviews and fewer recruiter time.

Underneath the hood:

  • a grasping begin, then a ruin-and-recreate native search with late acceptance hill climbing, one search per core;
  • Ctrl+C returns the very best schedule thus far, and a run can resume from a saved plan, the place the candidates already convened are “mounted”: stored as they’re, with an alert if one not holds;
  • on 60 to 100 candidates and 10 to 12 recruiters, it reaches the confirmed optimum (checked with HiGHS) on the variety of candidates in each benchmark case;
  • the assessments examine it with a MILP mannequin (go-milp) and with an exhaustive enumeration on 300 small random issues.

The enter is a single YAML or JSON file, with a JSON Schema for editor validation, and -rest writes the following day’s file whereas protecting your feedback. Pure Go, no cgo, 0BSD or WTFPL.

Suggestions welcome, on the search above all. I measured 2-opt-style swaps and ALNS in opposition to plain destroy & recreate and obtained no achieve, which shocked me: concepts are welcome. Feedback on the API are welcome too.



1 Like

Fascinating Venture – I just like the clear and versatile configuration choices through YAML/JSON. Two Concepts come to thoughts:

  1. Efficiency:
    Have you considered utilizing SIMD directions to extend efficiency? Since this downside appears largely CPU certain it might significantly profit from vectorized execution: Go-Weblog:SIMD
  2. Adoption:
    If you wish to ease adoption you may present a easy on-line demo. Then customers might simply edit the YAML textual content within the text-field and get the schedule with a single click on with out having to run native binaries. (You would for instance construct the code as WASM and supply static internet hosting through GitHub, so the whole lot runs within the browser)

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments