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 July 26, 2026v3.32.0New

Candidate imports, unified job board, and affiliate improvements

This release adds bulk candidate importing to your CRM, unifies first-party and external job listings on a searchable board, expands the affiliate program with per-job bounties and a new dashboard, and fixes dozens of issues across assessments, contracts, scheduling, and more.

On this page

  • Hiring17
  • Talent1
  • Recruiting2
  • Sourcing21
  • Assessments4
  • Contracts and payments1
  • Account11
  • Website60

Changes by area

  • Hiring17 changes

    Unify Offers and Contracts into a single Deals surface for easier management, with contracts now in record-only mode.

  • Talent1 change

    calendar schedule view, sortable jobs table with company logos

  • Recruiting2 changes

    autosave application answers instead of losing them on exit

  • Sourcing21 changes

    candidate import wizard (slide-over stepper)

  • Assessments4 changes

    let candidates claim email-only sittings onto their account

  • Contracts and payments1 change

    EoR estimator quoted ~10% above the price we actually bill

  • Account11 changes

    append-only reward ledger replaces the derived balance

  • Website60 changes

    Browse all jobs in one place β€” your open roles and external listings together, filterable by source, location, and company with a new left-side filter rail.

All 117 changes in v3.32.0

All 117 changes in v3.32.0

Hiring

  • New

    carry a chosen comparison model into the offer composer

    #
  • New

    in-app estimator renders the same five-model comparison as the public tool

    #
  • New

    real branded-mailbox seat quotas + apex caution at DNS step

    #
  • New

    unify Offers + Contracts into one Deals surface + record-only contracts

    #
  • New

    unify Offers + Contracts into one Deals surface + record-only contracts

    #
  • New

    client-documents defaults ON β€” ship the Documents/W-9 hub enabled

    #
  • New

    client-documents defaults ON β€” ship the Documents/W-9 hub enabled

    #
  • New

    add the direct_hire model to the comparison engine

    #
  • New

    calendar-connection visibility + consent-gated candidate availability

    #
  • Fixed

    repair verification handoff, recording playback, and provider attribution

    #
  • Fixed

    repair Google bookings, invisible assessments, raw enum labels

    #
  • Fixed

    share one tracked-redirect handler; fix cookie domain and bot clicks

    #
  • Fixed

    bundle 13 read actions to clear the Vercel 2048 route cap

    #
  • Fixed

    clear 8 type errors blocking validate

    #
  • Fixed

    replace regex HTML sanitiser with DOMPurify in buildDescriptionHtml

    #
  • Fixed

    terminate market-listings-backfill infinite loop

    #
  • Fixed

    transform tsdav in Jest so scheduling-core suites parse

    #

Talent

  • New

    calendar schedule view, sortable jobs table with company logos

    #

Recruiting

  • New

    autosave application answers instead of losing them on exit

    #
  • New

    submission packet on review step + firm identity in step 1

    #

Sourcing

  • New

    candidate import wizard (slide-over stepper)

    #
  • New

    CSV + XLSX import parsers

    #
  • New

    export button + import/export wired into candidates board

    #
  • New

    export CSV builder + >1000-row pagination

    #
  • New

    export honors board search (?q=), deep-linkable board search

    #
  • New

    export server action (paginated CSV to R2)

    #
  • New

    header auto-mapping for import

    #
  • New

    import server action (upload/preview/commit/progress)

    #
  • New

    Inngest batch import job with progress + dedupe

    #
  • New

    object-descriptor registry with candidate object

    #
  • New

    register crm/import.requested Inngest event

    #
  • New

    row normalize/validate/dedupe classification

    #
  • New

    shared descriptor-driven workspace-writer gate

    #
  • Fixed

    cast xlsx buffer to exceljs's own Buffer param type

    #
  • Fixed

    catch-block logs the real failure; export search strips _ wildcard; no double-wrap

    #
  • Fixed

    code-only error throws (no PII), catch logging, poll ceiling, registry-agnostic notes

    #
  • Fixed

    export row-drop + pagination infinite-loop guards

    #
  • Fixed

    per-row insert fallback so one bad row can't fail the whole import batch

    #
  • Fixed

    render export action errors with unscoped translator

    #
  • Fixed

    surface import DB errors, run-row scope, failed-state, error_rows

    #
  • Fixed

    type-cast PostgREST results + paginate dedupe + storageKey ownership guard

    #

Assessments

  • New

    let candidates claim email-only sittings onto their account

    #
  • New

    make bulk-invite recipient cap configurable per workspace

    #
  • New

    per-workspace bulk-invite cap + consolidate bulk-invite feature

    #
  • Fixed

    send SpeechAce the real audio format, and stop silent provider fallback

    #

Contracts and payments

  • Fixed

    EoR estimator quoted ~10% above the price we actually bill

    #

Account

  • New

    append-only reward ledger replaces the derived balance

    #
  • New

    durable qualification pipeline with real emitters

    #
  • New

    per-job Refer & earn bounties

    #
  • New

    personalised invite landing page + per-campaign links

    #
  • New

    rebuild the dashboard, drop as-any casts, translate statuses

    #
  • New

    rollups, payout compliance, suspension, and the remaining surfaces

    #
  • New

    crm-import namespace (en + es)

    #
  • Fixed

    per-audience qualification events, attribution window, bot clicks

    #
  • Fixed

    accept subdomains for mail domains, warn on apex

    #
  • Fixed

    repair three type errors inherited from the checkpoint base

    #
  • Fixed

    repair two type breaks the merge surfaced

    #

Website

  • New

    add canonical posting selection by source trust weight

    #
  • New

    add cross-source title normalization for posting identity

    #
  • New

    add exact-tier posting identity resolution

    #
  • New

    add fuzzy identity tier and insert-race recovery

    #
  • New

    add posting_identities table and trigram match RPC

    #
  • New

    add week bucketing and source-independent identity hash

    #
  • New

    backfill posting identities over existing corpus

    #
  • New

    collapse cross-source duplicates in the opportunity feed

    #
  • New

    description_html backfill job + write-on-ingest

    #
  • New

    per-crawl reaping + board/role cross-links

    #
  • New

    PII-safe full description extraction + description_html column

    #
  • New

    resolve cross-source identity during normalize

    #
  • New

    /jobs board β€” left filter rail, real facets, prominent search

    #
  • New

    country-flag location facet + apply-out tracking types

    #
  • New

    data layer for external listings

    #
  • New

    external job detail renders via shared JobDetail template

    #
  • New

    external job detail renders via shared JobDetail template

    #
  • New

    external openings board + detail pages

    #
  • New

    Job.source discriminator + listingToJob mapper

    #
  • New

    Job.source discriminator + listingToJob mapper

    #
  • New

    JobCard external badge + openings-detail href

    #
  • New

    JobCard external badge + openings-detail href

    #
  • New

    JobDetail renders external listings (badge + apply-out)

    #
  • New

    JobDetail renders external listings (badge + apply-out)

    #
  • New

    listing sitemap shards + market-company page fallback

    #
  • New

    searchable, scrollable Company + Location facets

    #
  • New

    signup gate on jobs browse depth (content stays public)

    #
  • New

    source filter (all/diiirect/external) on the /jobs board

    #
  • New

    source filter (all/diiirect/external) on the /jobs board

    #
  • New

    track apply-out clicks for external jobs (+ open-redirect guard)

    #
  • New

    unified /jobs board β€” first-party + external, first-party ranked first

    #
  • New

    unified /jobs board β€” first-party + external, first-party ranked first

    #
  • Improved

    paginate the jobs board β€” board payload down ~94%

    #
  • Fixed

    check post-resolution DB errors instead of writing a wrong zero

    #
  • Fixed

    close over-merge vector, apply-url loss, and week-bucket drift

    #
  • Fixed

    count unknown sources and guard the backfill recompute

    #
  • Fixed

    drop double quotes from backfill migration comments

    #
  • Fixed

    merge duplicate identity imports in tests

    #
  • Fixed

    pin identity hash sentinel and add SQL-parity golden digests

    #
  • Fixed

    stop stripping ambiguous "lead" from identity titles

    #
  • Fixed

    surface identity-store DB errors instead of returning null

    #
  • Fixed

    throw on fuzzy RPC error and cover the insert-race winner path

    #
  • Fixed

    commit the apply-out route (gitignored by out/) + drop stale disable

    #
  • Fixed

    derive external job category from role slug, not a hardcoded bucket

    #
  • Fixed

    derive external job category from role slug, not a hardcoded bucket

    #
  • Fixed

    external job detail matches the first-party layout exactly

    #
  • Fixed

    external listings keep a reachable apply CTA on mobile, closes #role-apply

    #
  • Fixed

    external listings keep a reachable apply CTA on mobile, closes #role-apply

    #
  • Fixed

    external listingToJob postId='' (no apply-bridge), match sibling mapper

    #
  • Fixed

    external listingToJob postId='' (no apply-bridge), match sibling mapper

    #
  • Fixed

    job card alignment β€” inline meta icons, top-right bookmark, crest

    #
  • Fixed

    resolve country from label tail β€” live crawl data has null country_code

    #
  • Fixed

    resolve final whole-branch review findings, closes #live-openings

    #
  • Fixed

    resolve final whole-branch review findings, closes #live-openings

    #
  • Fixed

    restore role link + attribution on external detail via footerSlot

    #
  • Fixed

    restore role link + attribution on external detail via footerSlot

    #
  • Fixed

    scope no-require-imports disable in the source-branch test mocks

    #
  • Fixed

    scope no-require-imports disable in the source-branch test mocks

    #
  • Fixed

    style openings surface with www design system, not webapp tokens

    #
  • Fixed

    style openings surface with www design system, not webapp tokens

    #

Changelog