Koryo Kakinoki
← All posts
Product / AI5 min read

Surfacing Bias in Japanese Job Ads — Building Unbias JD

English has Gender Decoder. Japanese had nothing. Unbias JD scans Japanese and English job adverts for exclusionary language, scores the bias, and suggests neutral rewrites — no account, no data stored.

Hiring across the UK and Japan showed me how much unconscious bias lives in the language of job ads. Phrases like 「若手の営業マン」—young, male, salesperson rolled into one—filter candidates on attributes that have nothing to do with the job. The writer rarely notices. The applicant always does.

English has had research tools for this for a decade (Gaucher et al., 2011; the Gender Decoder). Japanese, which carries its own age and gender markers in common phrases, had almost nothing. That gap is what Unbias JD fills.

The tool scans a pasted job advert, flags terms across six bias categories (age, gender, physical ability, education, ethnicity, and more), shows a bias score from 0 to 100, and suggests neutral rewrites. Edit the text in place, re-scan, and watch the score drop — a fast feedback loop for the writer.

Three design choices mattered. No accounts — writing a job ad should not require a signup. No data retention — pasted text is analysed in memory and discarded. Two-layer detection — a curated lexicon (built on MHLW's fair-hiring guidelines for Japanese, the UK Equality Act and academic research for English) combined with a contextual LLM pass via Vercel AI Gateway, so we catch both dictionary hits and subtler phrasing.

Stack: Next.js 16, React 19, TypeScript, Tailwind 4, shadcn/ui, Vercel AI Gateway, BotID, deployed on Vercel. Stateless by design — the hardest part was not the code, it was deciding what not to store.

The honest limit, spelled out on the About page: a dictionary cannot read context perfectly, and a score is a prompt for reflection, not a verdict. The final judgement stays with the person writing the advert. But even making bias visible — turning an invisible default into a highlighted word — changes what writers choose next. That is the whole point.

Next.js 16AI SDK 6Vercel AI GatewayFairnessHR