This release focuses on the public candidate experience, AI interview configurability, and shortlisting workflows. Highlights include a brand-new guest apply flow (candidates can now apply without an account), a candidate status tracking page via secure magic link, a redesigned candidate comparison that evaluates applicants against the job description, per-job AI interview behavior settings (language, personality, follow-up depth), a public publish toggle on every job, sortable job listings, and Push-to-Talk mode for AI interviews.
Candidates Apply to Public Jobs Without Signing Up
Truepick's public job board now accepts applications without any sign-up. Anyone can browse open roles, click Apply, upload their CV, and be done in under a minute.
How It Works:
1. Candidate visits the public job board
2. Picks a role and reads the full job description
3. Fills in name, email, optional phone, uploads a CV, optionally writes a cover letter
4. Accepts the privacy notice and passes a quiet CAPTCHA check
5. Receives a one-time code by email and confirms the application
Safeguards Built In:
| Safeguard | What It Does |
|---|---|
| Privacy consent | Versioned acknowledgement is stored per-application for audit |
| CAPTCHA | Invisible bot-check protects the public apply endpoint |
| Email OTP verification | Applications stay in "Pending Email Verification" until the candidate confirms |
| Duplicate-application detection | The same candidate can't apply twice to the same job |
| Pending cleanup | Unverified applications are automatically cleared out |

Public job board showing all open positions with search by title or location

Apply form below the job description — name, email, phone, CV upload, cover letter, privacy consent, and CAPTCHA
Candidates Track Their Application Without a Password
After every confirmed application, Truepick emails the candidate a secure magic tracking link. One click opens a personalised status page that stays current as the recruiter moves the candidate through the pipeline.
What Candidates See:
What Candidates Don't See:
Security:
| Protection | How It Works |
|---|---|
| Signed token | 64-char cryptographically random token stored per application |
| Server-side validation | Token is checked before any data is loaded — no PII in the URL |
| 90-day expiry | Tokens automatically expire after 90 days |
| Revocable | Recruiters can revoke a token per application if needed |
| Rate-limited | Max 10 generations per application per hour to prevent abuse |
Candidate status page opened via magic link — showing Offer Extended status, What's next panel, and the full event timeline
Same page for a rejected candidate — respectful "Not Selected" status with an encouraging next-step message
You Decide Exactly Which Jobs Appear on the Public Board
Every job now has a dedicated Public toggle next to its Published status. Flip it on and the job appears on the public job board for anyone to apply to. Flip it off and the job stays internal — still posted inside Truepick, still accepting applications via direct link or embed, but hidden from the public website.
Why It Matters:
Smart Guardrails:

Job detail header with the new Public toggle next to the Published status badge
A Cleaner, More Direct Marketing Site
Truepick's public landing page was rebuilt from scratch for clarity and search performance.
What's On It:
Under the Hood (That You'll Notice):

Redesigned landing page hero with a direct value proposition and illustrated AI interviewer
A Clear Brief Before the AI Interview Begins
Candidates now see a dedicated consent screen before joining the live AI interview. They can't skip it — the Start Interview button is disabled until the acceptance box is ticked.
What's on the Screen:
What to Expect
Prepare Your Environment
How You'd Like to Speak
Privacy & Recording
Consent acceptance is stamped on the application the first time the candidate accepts — creating a stable audit record.

Full-screen consent step shown before the AI interview begins — with What to expect, Prepare your environment, input mode selector, and Privacy & recording sections
A Better Option for Noisy Environments
Candidates can now pick between two input modes at the start of every AI interview:
| Mode | How It Works | Best For |
|---|---|---|
| Hands-free *(default)* | The mic stays on; the AI detects when you're done speaking | Quiet rooms, natural conversational flow |
| Push-to-Talk | Hold the Space bar (or a button) while you speak — release to send | Noisy environments, coffee shops, open offices |
What Else You Get in Push-to-Talk:
Why This Matters:
The mode selector appears on the pre-interview consent screen and defaults to Push-to-Talk (recommended) for the most reliable experience.
Tune Every Interview to Fit the Role
Every job's details page now has an AI Interview Behavior section letting recruiters configure exactly how the AI conducts interviews for that specific role.
What You Can Set Per Job:
| Setting | Options |
|---|---|
| Preferred Language | English, Arabic |
| Number of Questions | 1 – 10 (default 5) |
| Interviewer Personality | Conversational, Technical, Formal, Friendly |
| Follow-up Depth | Light, Moderate, Deep |
Why It Matters:
Changes take effect immediately for the next interview generated for that job.

Per-job AI Interview Behavior section — preferred language, number of questions, interviewer personality, and follow-up depth
Compare Candidates Against the Job, Not Just Each Other
The Compare dialog has been rebuilt around the job description itself. Instead of a generic side-by-side with skill tags and red/green pass/fail colours, candidates are now scored against each required skill, each requirement, and each preferred qualification drawn directly from the JD — shown as a pricing-table-style checklist.
What You See Per Candidate:
What Changed from Before:
| Before | Now |
|---|---|
| Criteria were AI-generated, not the actual JD | Criteria come directly from the JD you wrote |
| Skill tag chips cluttered the view | Skill tags removed |
| Red/green pass/fail colours | Clean check / dash indicators — neutral, readable |
| Generic side-by-side | Pricing-table style grid, columns per candidate, rows per criterion |
How It Works:
1. Click Compare in the applicants toolbar
2. Select 2 to 4 candidates
3. Click Compare (N) to open the new view
4. Scroll down the rows to compare coverage of each JD item
5. Shortlist or reject each candidate directly from the footer buttons

Side-by-side comparison of 3 candidates against the Senior React Developer JD — AI Match Score bars at the top, then Required Skills, Requirements, and Preferred Qualifications as rows
Find the Right Job Faster
The Job Postings page now has a sort control with five options:
Sort is preserved as you switch between All Jobs, Open, and Closed tabs.

Jobs page with the new Sort by dropdown expanded
Keep an Applicant's Resume Current Without Losing the Original
Recruiters can now upload a new CV for an existing application — useful when a candidate sends an updated resume or when the initial upload was the wrong file. The system re-runs AI screening against the job, updates the match score, and archives the previous evaluation so you can see how the candidate's match has changed.
What Happens on Re-Upload:
1. The new CV is parsed and the candidate's profile (skills, experience, education) is replaced with the new content
2. The system automatically re-runs the AI review against the current job
3. The application's status is recomputed — a previously rejected candidate can become shortlisted, and vice versa
4. The previous evaluation is archived for the full audit trail
5. The row shows a "Re-evaluated N" pill under the score, and a "View history" option in the actions menu
Smart Guardrails:
| Guard | What It Catches |
|---|---|
| Identical-CV skip | Uploading the same CV again is detected instantly — no AI call, no wasted tokens |
| Identity check | If the new CV's email doesn't match the candidate, the upload is refused with a clear error |
| Transactional re-evaluation | Archive, re-score, status update, and profile replacement are one atomic operation — any failure rolls back cleanly |
| Row locking during re-evaluation | An amber background with "Re-evaluating..." badge; actions are locked until the server responds |
Full-Screen History Viewer:
Every Completed Interview Gets Scored
Previously, a handful of interviews would finish without triggering AI evaluation — usually when the room disconnected before the AI explicitly ended the session. The AI agent now reliably notifies the server before disconnecting, and analysis is triggered for every transcript that has content, including short or interrupted sessions.
No More Stuck or Abruptly-Terminated Sessions
Interview sessions now end cleanly in any of three ways:
1. The AI ends naturally — when the interview has covered all questions, the AI wraps up with a farewell
2. The candidate asks to end — the AI confirms with the candidate first ("*Just to confirm, you'd like to end the interview now?*"), then delivers a full farewell before closing
3. The silence watchdog — if the candidate goes silent, the AI gently nudges at ~30 seconds, then delivers a farewell and closes at ~60 seconds
The closing sentences always finish cleanly — teardown waits for the AI to actually stop speaking before the room disconnects.
No More Duplicate Interview Sessions
A candidate clicking their interview link multiple times no longer spawns duplicate sessions. The system now enforces a single active session per application:
This prevents split transcripts, double-counted usage, and confusion over which recording is the real one.
Several Small Fixes That Add Up to a Much Better Feel
Even More Resilient CV Parsing
CV parsing now has a three-stage fallback chain that handles nearly any PDF you throw at it:
| Stage | What It Does |
|---|---|
| Text layer | Fast standard extraction — works for regular text-based PDFs and DOCX |
| OCR (Arabic + English) | Optical character recognition for scanned CVs and image-based PDFs |
| Vision model | AI-based reading for complex layouts and stylised resumes where OCR struggles |
This builds on the OCR work in 0.13 and closes the remaining edge cases where scanned resumes would return empty text. Verified on a real-world 26-CV batch — all 26 processed successfully, with 5 recovered specifically via the new OCR path.
Polished Regeneration Flow
The Regenerate Interview Link action now does what candidates expect:
1. Generates the new link
2. Sends the candidate an email with the new link (previously it silently updated without notifying)
3. Shows the sent timestamp (*"Invitation sent Apr 17, 3:42 PM"*) under the status badge so recruiters know the candidate has been informed
4. The whole flow — archive, status reset, email send — is transactional; any failure rolls back cleanly so you can retry from the same state
Offered Candidates Are Protected
The bulk-delete action now hides and disables the selection checkbox for candidates who have been sent an offer letter, with a tooltip that explains why removal isn't allowed. Offered candidates are still visible in the list but can't be swept up in a mass action — protecting your hire records from accidental deletion.
Clearer Language at Every Stage
Status emails to candidates got a small but meaningful rewrite:
| Stage | Before | Now |
|---|---|---|
| Offer decision | *"Moving forward"* | "Offer Extended" / "Congratulations" |
| Confirmation | Generic receipt | Application reference, job title, company, expected timeline, tracking link |
| After assessment pass | *(sometimes missed)* | Interview invitation auto-sent immediately |
Two silent bugs in the email pipeline were also fixed:
Making Truepick Safer and More Robust
Security:
Reliability:
Released on April 18, 2026
View all releases