diiirect
PlatformTalentDataPricingFuture of work
Sign inPost a role

Explore

  • Platform
  • Talent
  • Data
  • Pricing
  • Future of work
Sign in

Get started

Hire talentI'm looking for work

First shortlist in 5 days

diiirect

Hiring, but direct. A platform and talent marketplace where companies, recruiters, and skilled professionals work together to move from role brief to qualified shortlist faster.

Product

  • Platform
  • Intelligence
  • Categories
  • Talent
  • Pricing
  • Changelog
  • Roadmap

Who it's for

  • For talent
  • For companies
  • For recruiters
  • For non-profits
  • Compare all four

Company

  • Manifesto
  • Case studies
  • Contact
  • Book a demo
  • Press & Media
  • Investors
  • Partners
  • Sponsorships

Resources

  • Templates
  • Assessments
  • Experts
  • Nominate an Expert
  • FAQ
  • Hackathons
  • Apply as talent
  • Start hiring
  • Blog

Tools

  • All tools
  • EOR calculator
  • Resume generator

Legal

  • Privacy
  • Terms
  • Data deletion

Categories

  • Software & Web
  • Data & AI/ML
  • DevOps & Cloud
  • Cybersecurity
  • Blockchain & Web3
  • All categories

By tool

  • HubSpot

Alternative to

  • Upwork
  • Toptal
  • Fiverr
  • Freelancer
  • Guru
Made with🧉in🇦🇷🇺🇸byDraidel
Changelog

Released June 29, 2026v3.19.0New

Improved application flow, assessment tools, and security across the platform

This release strengthens the application and hiring process with better candidate tracking, bilingual assessment instruments, and enhanced security. We've fixed critical issues in job posting, contract management, and data handling to ensure a smoother experience for both talent and clients.

On this page

  • Hiring84
  • Talent33
  • Sourcing24
  • Assessments18
  • Contracts and payments9
  • Billing1
  • Account26
  • Website50
  • Desktop app1
  • Integrations2

Changes by area

  • Hiring84 changes

    Security hardening across authentication, data storage, and session management to protect candidate and client information

  • Talent33 changes

    Bright Data adapter (async snapshot, auto-skips until keyed)

  • Sourcing24 changes

    reveal checks global graph before charging vendor (Phase 2)

  • Assessments18 changes

    bilingual i18n migration + bilingual Big Five keystone + 36 authored instrument seeds (English, pre-revision) + pgTAP

  • Contracts and payments9 changes

    3-option offer builder with live pricing (Track B B4)

  • Billing1 change

    commercial-engine fee charging (Track B B5)

  • Account26 changes

    gate banned users + bilingual /account-banned page

  • Website50 changes

    Role pages are now more discoverable in search results with improved content layout and structured data

  • Desktop app1 change

    drop ftp: scheme + block malformed URLs in embedded browser

  • Integrations2 changes

    harden signature verification + replay across providers

All 248 changes in v3.19.0

All 248 changes in v3.19.0

Hiring

  • New

    migrate Reddit Pixel + Google Ads conversions from GTM to first-party code

    #
  • New

    Task 9 — gate/notice/context/locale (4 sub-features)

    #
  • New

    Task 9 follow-up — structured signup-context + viewer-resolved client notice

    #
  • New

    honest meeting-connection state + real provider icons & row actions

    #
  • New

    render boolean flags as a toggle switch + clearer filter label

    #
  • New

    searchable, multi-column feature-flags panel

    #
  • New

    runtime kill-switch for notification emails

    #
  • New

    SenderResolver tiers 1+2 + brand the candidate email; remove dead career-branding

    #
  • New

    public reviews + double-blind reveal + reminders (Track C)

    #
  • New

    add client dashboard command center flag

    #
  • New

    add unified-apply-routing + notification-context-resolvers (default off)

    #
  • New

    user lifecycle attribution + deletion-request columns (migrations)

    #
  • New

    hide posting company by default (flip jobs.confidential_default)

    #
  • New

    admin syndicate action (modality A) with confidential guard

    #
  • New

    admin syndicate panel (modality A) + bilingual copy

    #
  • New

    Bluesky direct transport + adapter (facets, external image embed)

    #
  • New

    branded job-card asset generation via next/og → R2

    #
  • New

    durable Inngest posting worker (Task 10)

    #
  • New

    flag, channel/social.requested event, widened channelKind, cookie attribution fields

    #
  • New

    Mastodon direct transport + adapter

    #
  • New

    P2D — clicks→apply + engagement rollup report (admin surface)

    #
  • New

    Phase 2B — compose-&-approve data layer (drafts, edit, schedule)

    #
  • New

    Phase 2C compose-&-approve SocialComposer UI

    #
  • New

    stamp click→apply attribution on job applications

    #
  • New

    tracked-link generation + per-platform draft composition

    #
  • New

    transport resolver + tests for Phase 1 platforms

    #
  • New

    10x the LinkedIn prefill — proper casing, flat reveal, one button

    #
  • New

    catalog-aware skills in the LinkedIn review (matched vs custom)

    #
  • New

    failure-isolated buildResumeCandidate (degrade to LinkedIn-only)

    #
  • New

    failure-isolated buildResumeCandidate (degrade to LinkedIn-only)

    #
  • New

    forward resumeKey through the prefill hook + scan card

    #
  • New

    forward resumeKey through the prefill hook + scan card

    #
  • New

    let the user choose the photo instead of silently overwriting

    #
  • New

    P2b — combined résumé+LinkedIn analyze (flag-gated, off by default)

    #
  • New

    P2b — combined résumé+LinkedIn analyze (flag-gated, off by default)

    #
  • New

    persist the LinkedIn profile photo to R2 on apply

    #
  • New

    polish the LinkedIn scan loading state

    #
  • New

    restore the LinkedIn scan across a refresh (no re-scan)

    #
  • New

    résumé → IntermediateProfile merge-candidate adapter

    #
  • New

    résumé → IntermediateProfile merge-candidate adapter

    #
  • New

    runMergeChain accepts seedCandidates (résumé as a merge source)

    #
  • New

    runMergeChain accepts seedCandidates (résumé as a merge source)

    #
  • New

    seed the résumé as a candidate in the combined extraction merge

    #
  • New

    seed the résumé as a candidate in the combined extraction merge

    #
  • New

    show role + education dates in the LinkedIn review

    #
  • New

    startLinkedInPrefill threads resumeKey (skips cache when fusing)

    #
  • New

    startLinkedInPrefill threads resumeKey (skips cache when fusing)

    #
  • New

    step 5 as two equal paths — upload CV | scan LinkedIn

    #
  • New

    tag work-history rows with their source (LinkedIn vs AI)

    #
  • New

    talent onboarding fast-track (prefill-first short path)

    #
  • Improved

    consolidate route tree under Vercel's 2048 Build-Output cap, closes hi#cardinality

    #
  • Fixed

    correct Reddit Pixel ID to a2_hbaapdt0410v

    #
  • Fixed

    guard empty post_id in getApplyHref + correct stale branding doc

    #
  • Fixed

    signup-context channel stores src (traffic source) per migration DDL

    #
  • Fixed

    validate openExternal scheme (desktop) + gate cleartext to dev (mobile)

    #
  • Fixed

    normalize imported-candidate columns (vendor-agnostic)

    #
  • Fixed

    address adversarial review findings

    #
  • Fixed

    reconcile feedback domain with post-rebuild schema

    #
  • Fixed

    stamp account_type=talent at the DB level (drift catch-all)

    #
  • Fixed

    remove redundant as-string casts, deepen route test, share admin client

    #
  • Fixed

    scope admin review writes to the reviewed session

    #
  • Fixed

    serve talent KYC/resume docs via auth-gated presigned route

    #
  • Fixed

    store talent KYC/resume under private R2 keys (1.4 write-site)

    #
  • Fixed

    narrow EXECUTE on admin governance functions

    #
  • Fixed

    graceful formatCurrency, UUID Nango ids, drop talent_db alias

    #
  • Fixed

    guard missing asset URL, clear stale error on retry, tighten test cast

    #
  • Fixed

    Phase 2 review fixes — B1/B2/M1/M2/M4/M5

    #
  • Fixed

    harden Phase 1 syndication — idempotent worker, /j rate-limit, caption/link fixes

    #
  • Fixed

    Mastodon transport review findings — restore fetch, assert media_ids, header casing

    #
  • Fixed

    Phase 2 review fixes — idempotent upserts, atomicity, type safety

    #
  • Fixed

    Task 6 review — wordmark D+iii+rect, title wrap, test height assert

    #
  • Fixed

    never default the R2 bucket folder to the production namespace

    #
  • Fixed

    stop R2 logo/avatar uploads landing at a double-folder path

    #
  • Fixed

    verify session via getUser() in channel route gate

    #
  • Fixed

    guard asset-insert failure + review minor fixes

    #
  • Fixed

    stop task-file R2 keys double-prefixing the env folder

    #
  • Fixed

    case cached prefill results + keep résumé reachable mid-scan

    #
  • Fixed

    de-AI the LinkedIn scan panel (button, copy, avatar)

    #
  • Fixed

    drop revalidatePath from onboarding data-key writer (crashed v2)

    #
  • Fixed

    isolate résumé extraction failure — degrade to LinkedIn-only

    #
  • Fixed

    isolate résumé extraction failure — degrade to LinkedIn-only

    #
  • Fixed

    make onboarding city optional (unblocks the location step)

    #
  • Fixed

    stop mangling extracted skills + drop the work-history AI sparkle

    #
  • Fixed

    whitelist webapp-linkedin-prefill as a client i18n namespace

    #

Talent

  • New

    Bright Data adapter (async snapshot, auto-skips until keyed)

    #
  • New

    canonical LinkedIn URL normalization

    #
  • New

    fallback orchestrator with soft/hard failure detection

    #
  • New

    flag-gate the browser-unverified UX (option B)

    #
  • New

    Inngest job + event for background enrichment

    #
  • New

    M0 DS floor + surface usedLlm/status for trust cues, closes #0A66C2

    #
  • New

    M1 multi-source merge + FieldProvenance spine

    #
  • New

    M1 wire merge chain into the Inngest job

    #
  • New

    M2 AI-derive skills from descriptions (span-verified)

    #
  • New

    M3 realtime streaming reveal (broadcast + progress)

    #
  • New

    M3 review trust cues + visible skill chips

    #
  • New

    M3 rich editable review (curate skills, drop roles/edu)

    #
  • New

    M3 wizard-collapse — skip the steps the import filled

    #
  • New

    M4 quality feedback signal (flywheel foundation)

    #
  • New

    M5 verified-from-LinkedIn trust signal at review

    #
  • New

    M6 self-tuning provider trust (safe design)

    #
  • New

    M7 enrichment-graph persistence (self-enrichment)

    #
  • New

    migration — attempt ledger + provider registry rows

    #
  • New

    normalize provider data into ResumeDataSchema

    #
  • New

    offer 'Scan your LinkedIn' on the résumé-upload step

    #
  • New

    onboarding consent + pre-fill + editable review UI

    #
  • New

    PeopleDataLabs adapter (live, dataset floor)

    #
  • New

    Piloterr adapter (live primary, auto-skips until keyed)

    #
  • New

    profile re-import surface

    #
  • New

    provider interface + usable-result predicate

    #
  • New

    provider registry, monthly quota, per-user rate limit

    #
  • New

    server actions (start / status / apply)

    #
  • New

    references, talent-discovery report, skills matching & onboarding polish

    #
  • New

    v2 Phase 6 — resurrect tax forms + talent Documents surface

    #
  • Fixed

    localize role-snapshot duration & experience labels

    #
  • Fixed

    correct Piloterr adapter to the live response schema

    #
  • Fixed

    align account-deletion self-service to real schema

    #
  • Fixed

    verify session via getUser() on talent page gates

    #

Sourcing

  • New

    reveal checks global graph before charging vendor (Phase 2)

    #
  • New

    vendor-agnostic ingest + global contact cache (Phase 1)

    #
  • New

    write source_records provenance from edge-fn + linkedin-prefill (Phase 3)

    #
  • New

    capture identityMe at sign-up/sign-in, not just Connect

    #
  • New

    capture identityMe snapshot in OAuth callback

    #
  • New

    captureLinkedInIdentity — R2 photo + service-role snapshot upsert

    #
  • New

    commit the connect/return-path/dev-recovery infrastructure

    #
  • New

    Connect-with-LinkedIn button on onboarding step (manual linking)

    #
  • New

    connection-only onboarding step + 10x redesign

    #
  • New

    identity read (snapshot + IDENTITY-verified) + on-read validation comparator

    #
  • New

    imported-identity card on onboarding connect step

    #
  • New

    parse identityMe headline, memberId, lastRefreshedAt, picture expiry

    #
  • New

    probe /identityMe for profileUrl on OAuth connect

    #
  • New

    Verified-via-LinkedIn badge on candidate record (client/admin)

    #
  • New

    phase 2 — live pacing engine + multi-channel + LinkedIn/WhatsApp

    #
  • New

    phase 3 — HITL console, dashboards, unified inbox

    #
  • New

    phase 4 — bilingual client surface + WhatsApp templates

    #
  • New

    phase-1 foundation — schema, contract, pure engine modules

    #
  • New

    phase-1 stage 2 — durable engine, stores, actions, webhook

    #
  • New

    phase-1 stage 3 — flag-gated admin operating UI

    #
  • Fixed

    restore talent-api batch ingest as direct enrichment upserts

    #
  • Fixed

    bump migration timestamp +1s to resolve merge collision

    #
  • Fixed

    harden engine — adversarial-review fixes (12 confirmed bugs)

    #
  • Fixed

    harden phases 2-4 — adversarial-review fixes (5 confirmed bugs)

    #

Assessments

  • New

    bilingual i18n migration + bilingual Big Five keystone + 36 authored instrument seeds (English, pre-revision) + pgTAP

    #
  • New

    bilingualize 18 instrument seeds (EN+ES) + pgTAP i18n assertions

    #
  • New

    bilingualize the final 18 instrument seeds (EN+ES) — full catalog now bilingual

    #
  • New

    client library subtype tabs (skills tests vs personality profiles)

    #
  • New

    engine migrations — dimensions, results.profile_data, satisfied_by gating

    #
  • New

    G1 — response capture persistence (video/file/text)

    #
  • New

    G2 — analytics computation core (funnel, rates, distribution, item difficulty)

    #
  • New

    Likert taker renderer (bilingual scale) — profile instruments now takeable

    #
  • New

    profile DB-row adapter (buildProfileInputs/extractLikertValue) + tests (23 green)

    #
  • New

    profile result end-to-end — issue on submit + trait-bar report

    #
  • New

    profile-aggregation core (14 tests green) + instrument_type/source_refs migration

    #
  • New

    render assessments in the candidate's locale (EN/ES)

    #
  • New

    survey kind + Big Five keystone seed + engine/seed pgTAP + catalog index

    #
  • New

    Wave 2B — analytics dashboard (G2), client builder (G4), live_phone conduct (G3)

    #
  • New

    wire profile scoring path — issueProfileResult + instrument_type dispatch in submit action

    #
  • Fixed

    local DB apply — scoring_strategy constraint + stale pgTAP counts

    #
  • Fixed

    lock start_attempt RPC to service_role

    #
  • Fixed

    validate invitation token in recording presign

    #

Contracts and payments

  • New

    3-option offer builder with live pricing (Track B B4)

    #
  • New

    admin-defined packages + offer snapshot (Phase 2)

    #
  • New

    compliance gate before send-for-signature (Phase 3)

    #
  • New

    Deel EOR cost quote with manual fallback (Track B B3)

    #
  • New

    engagement-type schema + pricing engine (Track B B1+B2)

    #
  • New

    HubSpot deal + line-item + stage sync (Phase 4)

    #
  • New

    talent license, addons, 90-day guarantee (Phase 5)

    #
  • Fixed

    reconcile contract enums + admin create/edit with post-rebuild schema

    #
  • Fixed

    gate completeWalletDeposit to platform admin

    #

Billing

  • New

    commercial-engine fee charging (Track B B5)

    #

Account

  • New

    gate banned users + bilingual /account-banned page

    #
  • New

    localize every transactional email (EN+ES) + Auth hook runbook

    #
  • New

    notifyCandidateApplicationSubmitted durable helper

    #
  • New

    pass brandResolver in durable consumer when notification-context-resolvers is on

    #
  • New

    resolve brand at dispatch seam for branded email events (opt-in)

    #
  • New

    AnalyzeStep — fused résumé+LinkedIn or résumé-only

    #
  • New

    consolidate in-progress analyze→review + LinkedIn work

    #
  • New

    consolidate Upload→Analyze split into staging

    #
  • New

    defer the pre-workspace photo step for talent

    #
  • New

    overhaul analyze→review — match cues, inline edit, avatar upload, a11y

    #
  • New

    ResumeUploadStep — required, stage-only upload

    #
  • New

    split step 5 into Upload(5) + Analyze(6); renumber to 24

    #
  • New

    useResumeExtraction hook for résumé-only analyze

    #
  • Fixed

    enforce a state machine on withdrawal decisions

    #
  • Fixed

    require admin-eligible email to impersonate

    #
  • Fixed

    require owner/admin role in requireAdmin

    #
  • Fixed

    verify JWT for OAuth consent + gate admin-account creation

    #
  • Fixed

    flush logger in notifyCandidateApplicationSubmitted

    #
  • Fixed

    drop stale 'keep current' avatar choice after an upload

    #
  • Fixed

    preserve acronyms + keep C#/F# distinct in prefill data

    #
  • Fixed

    recover avatar on src change + stop secondary buttons hovering lime

    #
  • Fixed

    résumé-extraction hard timeout + unmount cleanup; real-data title-case regression

    #
  • Fixed

    shorten agency disabled-state badge so it fits on one line

    #
  • Fixed

    stop infinite autosave loop on LinkedIn step

    #
  • Fixed

    re-derive role from DB, not forgeable cookies, in write gates

    #
  • Fixed

    10 security hardening fixes

    #

Website

  • New

    AI editorial drafter for evergreen role pages (suggest-only)

    #
  • New

    close the AI loop — accept role → profile + auto editorial draft

    #
  • New

    IndexNow ping when a role page is published

    #
  • New

    add /future-of-work to sitemap

    #
  • New

    add www-future-of-work i18n namespace (en+es)

    #
  • New

    app-like "role console" hero with the split fork as centerpiece

    #
  • New

    app-like "role console" hero with the split fork as centerpiece

    #
  • New

    future-of-work — source favicons + share bar

    #
  • New

    future-of-work launch banner + flag

    #
  • New

    future-of-work page

    #
  • New

    future-of-work page data assembly

    #
  • New

    future-of-work presentational components

    #
  • New

    future-of-work route layout + page-scoped css

    #
  • New

    future-of-work SEO — JSON-LD, OG/Twitter meta, dynamic OG image

    #
  • New

    Go-To-Market Summit NYC — event page + ledger broadsheet

    #
  • New

    GTM Night NYC editorial event page

    #
  • New

    homepage copy refresh + hide confidential company label

    #
  • New

    Phase 0 — CTA instrumentation on the role console

    #
  • New

    Phase 1 — comp-by-seniority ladder + clean region/seniority split

    #
  • New

    Phase 1 — role page becomes the sidebar console

    #
  • New

    Phase 2 — comp seniority toggle (full distribution per level)

    #
  • New

    Phase 2 — find-your-percentile salary calculator

    #
  • New

    Phase 2 — interactive demand chart (hover crosshair + read-out)

    #
  • New

    Phase 3 — talent→role crosswalk (vetted supply moat)

    #
  • New

    research-back the future-of-work report + widen the gutter

    #
  • New

    restore the split-fork dual CTA (Proposal C) on the role page

    #
  • New

    restore the split-fork dual CTA (Proposal C) on the role page

    #
  • New

    salary range-bar on the merged role page

    #
  • New

    smooth + animate the demand chart (Catmull-Rom curve, draw-on + fade-in)

    #
  • New

    swap Manifesto for Future of work in navbar

    #
  • New

    two-product pricing — Platform + Talent managed-hiring routes

    #
  • Fixed

    retry IndexNow pings on transient (429/5xx) statuses

    #
  • Fixed

    retry IndexNow pings on transient (429/5xx) statuses

    #
  • Fixed

    align footer labels, banner on homepage, nav clears the ribbon

    #
  • Fixed

    credit the diiirect Talent Index, not 'marketplace data'

    #
  • Fixed

    de-dupe FOW page title + localize reused widgets on /es

    #
  • Fixed

    demand chart + flatten FIG.01 stat block

    #
  • Fixed

    drive the demand chart's fill/area/animation inline (host-CSS-agnostic)

    #
  • Fixed

    force-dynamic the two job role pages to stop prod 500

    #
  • Fixed

    future-of-work — load reused /jobs component styles + hero spacing

    #
  • Fixed

    label comp provenance on the future-of-work report

    #
  • Fixed

    lead the role page with content, tighten the hero

    #
  • Fixed

    lead the role page with content, tighten the hero

    #
  • Fixed

    make evergreen role pages indexable + emit them in the sitemap

    #
  • Fixed

    make the role hero intentional on thin market data

    #
  • Fixed

    make the role hero intentional on thin market data

    #
  • Fixed

    Phase 0 — WCAG-AA trend signals + truthful assessment CTA, closes #176b3a

    #
  • Fixed

    Phase 1 SEO — clean Occupation structured data

    #
  • Fixed

    resolve future-of-work banner flag server-side (keep flags/next out of the client bundle)

    #
  • Fixed

    role pages 500 — use flag decideStatic() in ISR render

    #

Desktop app

  • Fixed

    drop ftp: scheme + block malformed URLs in embedded browser

    #

Integrations

  • Fixed

    harden signature verification + replay across providers

    #
  • Fixed

    make DocuSeal webhook idempotent on retry

    #

Changelog