This release brings enhanced identity verification for assessments with biometric liveness checks, new controls for managing agents and their operations, a redesigned marketing site with interactive hubs for job categories and tools, and a public resume generator for candidates.
Clients can now view cost estimates for hiring through different EOR providers and see the history of estimate changes.
add watermark overlay option to render engine
admin-configurable Didit biometric workflow (system_settings + workflows dropdown; env fallback)
eor estimate history reader (client-safe projection)
category-index family + stat keys, drop browseTalent
The marketing site now features interactive category and tool hubs with colored design, featured talent profiles, compensation data, and a public resume generator for candidates to create and share their profiles.
color the categorical bar charts (viz phase 2)
command-center attention bar (monitoring phase 3)
inline pause/resume from the Ops spend table (phase 5)
Reports section β spend over time + CSV export (phase 4)
secondary-nav rail console shell (IA phase 1)
spend-by-agent breakdown in Reports (phase 5)
honor BarRow tone in the client charts too
client inbox parity β channel-icon rows + toned filters (phase 1)
command-center section + KPI + account icons (phase 2)
iconed agent lifecycle controls (phase 5)
Ops section icons, cap badge, pause/play glyph (phase 3)
Reports section + tile icons, unified window selector (phase 4)
rich admin inbox β named rows, channel icons, colored filters, β― menu (phase 1)
shared icon + tone vocabulary + iconed filter/stat primitives (phase 0)
first-class Connections + connection-aware agent config
redesign agents list + new-agent form UX
public-cv claim route (OTP-verified account + clean PDF)
public-cv render route (always watermarked)
EorCostEstimator shared component + i18n (client + admin)
offer detail drawer + create-offer overhaul
cost estimator view in Offers (route-budget safe)
marketing opt-out toggle + featured-talent refresh on de-list
fold onboarding application index into [[...step]] optional catch-all
remove 8 unreferenced server actions to get under the 2048 cap
collapse jobs/[id] + talent application sub-pages into [...section] catch-alls
board forward-drag, durable offer email, actionable verify-identity link
crash-proof estimator currency formatting + per-row history currency
flat-design Section/RowList + aria-live in EorCostEstimator; fix test casts (TS2352)
NULL-name guard + tool-hub >=6 face gate + supply refresh + dead-key prune
tolerate vanity/non-RFC UUIDs in id validators
add watermark overlay option to render engine
denser preview watermark to enforce the account gate
map extracted resume data to TalentFullProfile
whitelisted public CV options DTO
pure per-call ids in mapper; drop deprecated JSX namespace annotation
format.test rate_type 'yearly' β 'monthly' (dropped enum value)
admin-configurable Didit biometric workflow (system_settings + workflows dropdown; env fallback)
AWS Rekognition identity matcher for server-verified proctoring (fail-closed)
biometric voice-recording consent gate (attempt-scoped + ledger mirror)
candidate async result reveal + sub-score report (poll β analyzing β CEFR band + dimension meters)
CEFRβIELTS/TOEFL concordance + preserve SpeechAce scaled scores + show equivalence to candidate
circuit-breaker around SpeechAce network call (fast-fail to LLM fallback during outage)
consent-gated live identity capture for proctored sittings (flag-gated, R2)
Didit biometric session client + liveness/face-match decision mapper (Task 1)
Didit biometric session create/finalize actions + webhook decision recorder (Tasks 2-3)
Didit Face Match 1:1 as default identity matcher (Rekognition fallback)
drive SpeechAce dialect from item context (fairness β no hardcoded en-us national-origin proxy)
filter+sort candidates by verified CEFR level (ATS path)
flag-gated fan-out scoring + atomic cost cap (OFF by default; ON pending staging E2E)
flag-gated premium/proctored assessment entitlement gate (OFF by default)
IdentityCheck hands off to Didit liveness session; retire manual selfie capture (Task 4)
per-response scoring observability (provider/scorer_kind/needsReview/cost in structured log)
persist SpeechAce IELTS/PTE/TOEIC scaled scores + full sub-scores in result metadata
show verified CEFR band + IELTS/TOEFL equivalence on client candidate card
show verified English sub-scores to the employer on candidate detail
SpeechAce rate-limit throttle + audio-download timeout (pipeline resilience)
wire live capture β Rekognition match β server-verified proctoring; purge captures on retention
wire server-proctoring session lifecycle into sittings (flag-OFF; verified stays gated on a real matcher)
attach camera stream once IdentityCheck <video> mounts
biometric retention β 365d statutory clamp, provable post-delete verification, warn on disable
capture SpeechAce speech_score shape + full sub-scores + scaled scores
Didit face-match multipart fields are user_image/ref_image
reject foreign recordingKey (anti-cheat) at save + score time
scope consent to all recorded kinds; test consent ownership; honest date doc
type the webhook test's mock-call tuple destructure
use defined --fg-muted token (was undefined --muted-fg)
wire confidenceMeasured from scorer_kind (real prior gate); TOEFL concordance + throttle guard + honesty (review fixes)
eor estimate history reader (client-safe projection)
estimateHiringCost action (role-branched, degrade-first)
admin UI to provision per-client Deel legal entities (Phase 3)
listEorCountries() helper for the cost estimator picker
own-entity provisioning (Phase 2, sandbox-verified)
per-client account resolution foundation (Phase 1)
per-client provisioning via Deel groups (own_org unblocked)
handle optional ActionResult.data in provisioning
category-index family + stat keys, drop browseTalent
www-tools namespace for the public resume generator
unblock OAuth accounts with a single-token name
11 security hardening fixes
submit JobPosting pages to the Google Indexing API
add attendee-proof row to pizza event hero
add confirmed-speaker section to pizza event page
bold colored hero band + vivid per-area identity colors for field hubs
brand-led hero for tool hubs β real HubSpot wordmark + sprocket, closes #FE4802
categories index β CategoryCard + grouped layout + richer JSON-LD
colored CTA-band finale + accent rail (bookend hubs in their identity color)
colorize hub content β rank chips, gradient skill bars, accent section markers
compact rotating speaker panel on pizza-buenos-aires
converge hub design onto /categories + tool hubs (production), closes webapp#type-check
family grouping for the /categories index
finish hub polish β localized tool copy, acronym casing, curated headshots
getAllCategorySummaries for the categories index
index tool hubs at >=6 real featured talent + sitemap
Intelligence Proof Report + public RSS feed
market talent-queries (getTalentForSkill, getFeaturedTalentCount)
matchday pennant β World Cup final vs Spain copy + fixture
move World Cup gesture to a dismissible top support strip
overhaul /categories β colored icon tiles, search + family filters
partners page redesign
Person/ItemList JSON-LD on indexed tool hubs
public resume generator UI (upload β edit β preview β gate)
real canonical vanity pages (/science, /design, /va, β¦) for specialization areas
real comp-distribution viz on hub rail + role rows
real talent strip on category pages (>=6)
related-hub cards link to canonical vanity URLs + use vivid palette
render real vetted talent cards on tool hubs
resume generator β 3 entry modes + full field editor
resume-generator server actions (proxy + OTP)
resume-generator wizard state machine
rework Argentina support banner β chant copy, gradient, continuous window
short vanity URLs for specialization areas β category hubs
tools hub + EOR cost calculator, HubSpot lead routing
comp fallback + indexability gate, sitemap and JSON-LD
category hub family-fallback fetches roles by slug
hub UX/UI overhaul β sticky rail, pro headshots, a11y, lime scarcity
resolve app origin via appBaseUrl() in resume-generator proxy
ship www-tools namespace to client components