Repository navigation
Sixth release, two days after v0.5.0: the whole hiring team and the Monday question. Screening questions on the apply form, scorecards and a reviewer role, interview scheduling on plain calendar invites, a delayed rejection email, a richer handoff to your ATS, and a dashboard built around who is waiting on whom, with a new Reports page. Thirty-two merged branches, seven migrations (head 0045). One thing to read before upgrading: Google Calendar is gone, see below.
Highlights
- Open roles on the dashboard. One row per open role: live candidates per stage, who is waiting on you and for how long, who is overdue, what moved this week, and a status chip (Stalled, Needs attention, On track, Empty) with its rule written under the title. Chips describe the process, never a person. A closed role that still has live candidates stays on the board. Five tiles sit on top, and a stalled role lands in your queue. The overdue limit is yours to set under Settings, Hiring, Pipeline: 7 days by default, 1 to 60.
- Waiting on you, waiting on candidate. Every live application is on someone's clock, worked out from the quiz, the interview and the stage. Two new chips on Applicants filter by it, also in the export.
- Reports. A new page with a period and a job filter. It follows the applications created in the period to where they are now: funnel with pass-through and where the rest went, median time in stage with the oldest live candidate, median time to hire, sources by outcome, score distribution, applications per week and a comparison with the period before. Every median shows its n and reads "-" below 3. No benchmarks and no pass lines.
- Screening questions. Per-job questions on the apply form, with a default set for new jobs. Answers mark the applicant and can be filtered on; a preferred answer never moves, rejects or emails anyone.
- Scorecards and the reviewer role. Hand a candidate to a colleague and get criteria ratings, a recommendation and a comment back, on a form you define per workspace or job. Booking an interview requests one from the interviewer automatically, and the queue shows who is holding a candidate up. A new reviewer seat gives a colleague a small
/reviewarea with only the candidates handed to them. - Interviews without Google Calendar. Slots come from the availability you set and your own bookings. Both sides get a standard calendar invite by email, so it works with Google, Microsoft 365, Apple and anything else that opens an .ics file. Reschedules and cancellations update it, the interviewer gets the 24-hour reminder too, and an interview can carry a location.
- Send the rejection email later. Reject now and let the email go out later, or cancel it from the timeline before it leaves.
- Handoff to your ATS. Webhook payload v2 adds split names, the application message, links and a CV block; the CSV export gains
first_nameandlast_name; Send test delivers a realistic sample. API keys can fetch CVs (GET /applications/{id}/cv). New docs page with Zapier and Make recipes.
Upgrade from v0.5.0
- Google Calendar is removed. Migrations 0040 and 0041 drop stored calendar connections,
google_event_idandmeet_url, so existing interviews lose their Meet link and no longer sync to a calendar. If you have interviews booked ahead, note their links before upgrading. Google sign-in stays. TheGANEK_GOOGLE_*settings now only concern sign-in. - Invites update in place over SMTP. Over Mailjet they arrive as attachments only, with no in-place update.
- Migrations 0039 to 0045 apply automatically on
docker compose up. Back up first:scripts/backup.sh. - No new environment variables, no compose change.
docker compose pull && docker compose up -dis the whole upgrade. - Webhook payload v2 only adds fields. Existing receivers keep working.
- Erasing an application now also deletes its webhook delivery rows.
- Reports only sees what retention keeps. Rejected and withdrawn applications leave it when your retention window deletes them, so long periods overstate pass-through.
- API: new
GET /stats/board,GET /stats/reports,GET /applications/{id}/cvand/review;waiting=team|candidateon the applications list and export;PATCH /company/settingsacceptsstage_limit_days./stats/overviewkeeps its shape, and the dashboard no longer readsquizandweeklyfrom it.
Known limits
- The admin shell has no mobile layout yet: below tablet width the fixed sidebar makes the dashboard and Reports wider than the screen.
Run it
git clone https://github.com/Ganek-dev/ganek && cd ganek
docker compose upContainer images: ghcr.io/ganek-dev/ganek-backend:0.6.0 and ghcr.io/ganek-dev/ganek-frontend:0.6.0 (linux/amd64 and linux/arm64).
Docs: the quickstart and the self-hosting guide on ganek.dev; the compliance pack is in docs/compliance/. Try it first at demo.ganek.dev. Hosted version: join the waitlist at ganek.io.
License: AGPL-3.0.