For macOS  ·  Built for Java  ·  Powered by Claude

Every Java interview question.
Answered in seconds.

JIAA listens to your technical interview (English, Polish, French, German), keeps your code and your take-home task in context, and streams ready-to-say answers — before the silence gets awkward. Purpose-built for Java, with Kotlin in beta.

$39/month or $349/year · subscription purchased inside the app

Java Interview AI Assistant Listening… 👤 🎧 🎤 EN PL 📌 🖼 🔑 📋Task </>Code Review Live Coding ?Quiz Q: How would you guarantee idempotency in a payment-processing service? Attach an idempotency key to every request and persist it under a unique constraint. A retry with the same key returns the stored result instead of re-running the transfer — so a double-submit can never double-charge. Making it concurrency-safe The unique index turns the check into one atomic insert; parallel retries collide on the key, not on the account balance. 🔍Expand topic 🧮Full code Clarify…

How do I know it works?

I built JIAA — and I used it to land my own job.

— The author

Up and running in three steps

1

Download & activate

Install JIAA, pick a plan inside the app, and paste the license key that lands in your inbox.

2

Connect

Add your Anthropic API key. JIAA downloads a local Whisper model and guides you through the free BlackHole audio driver — once, in minutes.

3

Interview

Click Listen. Questions are transcribed locally on your Mac and answers stream back in seconds.

Five modes. Every stage of the process.

Whatever the interview throws at you — a rapid-fire Q&A, a take-home walkthrough, a code review, a live-coding task or a quiz platform — there's a mode for it.

Under the hood, it's simply AI wrapped in a convenient interface tuned specifically for getting through technical interviews.

01 · Interview Mode

It hears the question. You get the answer.

  • JIAA taps your Mac's system audio and keeps a rolling 5‑second pre‑roll buffer — even the words spoken before you click Listen are captured.
  • When the recruiter finishes, one click sends the phrase to a local Whisper transcriber, and Claude streams a structured, ready-to-say answer within seconds.
  • Missed something? Switch input to the microphone and repeat the question out loud — JIAA picks it up like any other question.
  • Silence and transcription noise are filtered out automatically, so the feed stays clean.
Listening… 🎧🎤 pre-roll 5s ▾ Q: What's the difference between optimistic and pessimistic locking? Optimistic locking assumes conflicts are rare: you read a version column, then verify it hasn't changed on write. Pessimistic locking takes a DB lock up front (SELECT … FOR UPDATE) so other transactions wait their turn. When to use which Optimistic fits low-contention, read-heavy paths — fewer locks, higher throughput. Pessimistic fits hot rows you must serialize, like a wallet balance under burst traffic. 🔍Expand topic 🧮Full code Clarify…
02 · Task Mode

Discuss your take-home with total confidence.

  • Asked to build a recruitment task and walk through it on a call? Load the repository with a single URL and attach the task statement — as a PDF or pasted text.
  • The entire assignment is pinned to the conversation: every question the interviewer asks is answered against your actual code.
  • Answers cite exact locations — PaymentService.java:87 — so you can jump straight to the line being discussed.
Off 👤 📌 Task: payments-assignment Task loaded — github.com/you/payments-assignment 14 .java files · README · task PDF — everything in context for every answer Q: Why did you choose optimistic locking for the transfer table? Task: payments-assignment Transfers are mostly independent, so write contention is low. A version column on TransferEntity.java:42 lets the DB reject stale writes without holding row locks across the call. The retry is handled in TransferService.java:118 , which re-reads and re-applies on an OptimisticLockException — bounded to three attempts. 🔍Expand topic
03 · Code Review

Spot every issue before they ask "what would you improve?"

  • Bring the code in from anywhere: clipboard, a Git repository, a window screenshot or a selected region of the screen.
  • Capture is completely invisible — no flash, no selection chrome, nothing the person on the other side of the call could notice.
  • Findings arrive as concrete, severity-ranked issues with before / after fixes side by side.
  • Every review joins the conversation context — when the recruiter drills into a specific finding, the answer is already on your screen.
</> Code Review From screen region · silent 👻 Done · 1 review Code Review · OrderProcessor.java Key Findings high: SimpleDateFormat is shared across threads — not thread-safe. Fix: use the immutable java.time.DateTimeFormatter (or a ThreadLocal). BEFORE static final SimpleDateFormat FMT = new SimpleDateFormat("yyyy-MM-dd"); String s = FMT.format(order.date()); AFTER static final DateTimeFormatter FMT = DateTimeFormatter.ISO_LOCAL_DATE; String s = FMT.format(order.date()); medium: BigDecimal compared with equals() — scale-sensitive. Fix: use compareTo(…) == 0 for monetary comparisons. medium: catch (Exception e) swallows the thread interrupt flag. Fix: catch specific types; restore via Thread.currentThread().interrupt(). Clarify… (the review stays in context for follow-ups)
04 · Live Coding

From task description to working code.

  • Paste the task text or attach the PDF — JIAA generates a complete, runnable solution.
  • Only know what the program should print? Switch to expected output → code and get code that produces exactly that.
  • Pick the shape: framework style (Spring Boot for Java and Kotlin) that drops into an existing project, or a plain main single-file version.
  • Long solutions continue automatically past the length limit, and Copy all classes puts every file on your clipboard in one click.
Live Coding Task → code Expected output → code Framework Plain main 📄 discount-engine.pdf · 3 pages Generate code Live Coding · 5 files · Spring Boot // src/main/java/com/example/app/solution/DiscountEngine.java @Component @RequiredArgsConstructor public class DiscountEngine { private final PricingRules rules; public BigDecimal apply(Order order) { return rules.forCustomer(order.customer()) .map(r -> r.discount(order.total())) .orElse(order.total()); } } // DiscountRunner.java · PricingRules.java · Order.java (+2 more) Copy all classes (5)
05 · Quiz

Karat, DevSkiller, HackerRank, LeetCode — handled.

  • Capture the question with up to five silent screenshots — full windows or screen regions — covering the prompt, the answer options and any code.
  • Attach repository code when the platform's question refers to a codebase.
  • JIAA stitches everything together and returns the answer with the reasoning — and keeps it in context for follow-ups.
Quiz Add 1–5 screenshots of the same question — prompt, options, code. They're stitched into one answer. + 2 / 5 screenshots · silent capture Solve Quiz Correct answer: B — O(n log n) Why Merge sort always splits the input in half (log n levels) and does linear work merging at each level — so the bound holds for best, average and worst cases alike. Why not the others A — O(n) is impossible for a comparison sort. C and D describe quicksort's worst case, not merge sort. 🔍Expand topic

Built for the moment the pressure is on

⏪ 5-second pre-roll

A rolling buffer of system audio means the beginning of the question is captured even if you click Listen mid-sentence.

🔒 Local transcription

Whisper runs on your Mac. Interview audio never leaves the machine — only transcribed text and the materials you attach are sent to Claude.

✋ You decide when to answer

Recruiters pause to think. JIAA keeps buffering through pauses and answers only when you say the question is finished — no accidental mid-question replies.

🧠 One shared context

Answers, reviews, quiz solutions and your task repo live in one conversation. Follow-up questions are answered with everything in mind.

☕ Built for Java

Java is the primary, fully supported language across every mode, with Kotlin in beta. Edit the persona's tech stack and background so answers match your CV.

🪟 Stays out of the way

Always-on-top window with adjustable opacity, built for a second monitor. Glance, read, answer.

💬 Follow-up & expand

Clarify any answer, expand any topic deeper, or promote an interview answer into full live-coding code with one click.

🌍 English, Polish, French & German

One setting switches both the interface and the language of the generated answers across English, Polish, French, and German.

⚡ The right model for the job

Fast Claude Sonnet streams interview answers in seconds; deep reviews and code generation run on Claude Opus.

Simple pricing

One license, all five modes, full Java support (Kotlin beta), all updates.

Monthly

$39/month

  • All five modes
  • Full Java support · Kotlin (beta)
  • English, Polish, French & German answers
  • 1 Mac per license
  • Cancel anytime
Save 25%

Yearly

$349/year

≈ $29 per month

  • Everything in Monthly
  • Two interview seasons covered
  • Cancel anytime

Subscriptions are purchased inside the app. Download JIAA, pick a plan, pay through the secure checkout — your license key arrives by email within a minute.

If you choose immediate activation, your subscription starts right away. Once access or a license key has been activated, statutory withdrawal rights for digital services may end where permitted by applicable law.

JIAA uses your own Anthropic API key for Claude. API usage is billed directly by Anthropic, so you keep full control over spend.

Before purchase, please review our Terms of Service, Refund Policy, and Privacy Policy.

Questions, answered

What do I need to run JIAA?

A Mac (macOS 10.15 or newer) and your own Anthropic API key. On first launch JIAA downloads a local Whisper speech model (~466 MB, one time) and guides you through installing the free BlackHole audio driver used to listen to the call audio. The whole setup takes a few minutes — the step-by-step guide covers everything.

How do I buy a subscription?

Inside the app — there's no checkout on this site. Download JIAA, choose monthly or yearly, and complete the payment in the secure Lemon Squeezy checkout. A license key arrives by email; paste it into the app and you're in. The key activates one Mac and can be released if you switch hardware.

Is my interview audio uploaded anywhere?

No. Transcription happens locally on your Mac using Whisper. Only the transcribed text — plus the code, PDFs or screenshots you explicitly attach — is sent to the Claude API to generate answers.

Will the other side notice anything?

Screenshot and region capture are completely silent: no flash, no selection chrome, no system sound, no floating UI. It works best when you share a single window or app rather than your whole screen — then JIAA never shows up in what the other side sees. If you have to share the entire screen, keep JIAA on a second display.

Which languages are supported?

JIAA is built for Java — the primary, fully supported language across every mode (interview answers, task discussion, code review, live coding and quiz). Kotlin is available in beta. Repository import reads JVM projects, including pom.xml / Gradle / Spring configuration. You can edit the persona's tech stack and background to match your experience, and use the app and generate answers in English, Polish, French, or German.

What does the subscription cover vs the API key?

The subscription unlocks the app. Claude API usage is billed separately by Anthropic through your own key — a typical interview costs a fraction of a dollar in API calls, and you always see exactly what you spend. The setup guide walks you through creating a key.

Does JIAA work offline?

Transcription is fully offline after the one-time model download. Generating answers requires internet for the Claude API. If the license server is briefly unreachable, the app keeps working in offline grace mode.

Your next interview doesn't have to be stressful.

Download JIAA, set it up in minutes, and walk in with answers.

Download for macOS

macOS 10.15+ · $39/mo or $349/yr, purchased in-app