Setup & User Guide

Install JIAA, set it up, and learn every mode

Setup is a one-time, ~5-minute process to get JIAA running. Using JIAA is a reference for the five modes and everyday controls — skim it now, or dip back in whenever you need a specific feature.

Setup
Get JIAA running

A one-time, ~5-minute setup. Do it once and you're done — you'll rarely touch any of this again.

Requirements

  • macOS 10.15 (Catalina) or newer.
  • A JIAA subscription ($79/month or $699/year), purchased inside the app — this unlocks JIAA itself.
  • Your own Anthropic API key with a little credit — Claude is pay-as-you-go on your key. About $10 covers exploring the app plus several one-hour interviews. See creating a key below.
  • About 500 MB of free disk space for the one-time Whisper speech model.
  • The free BlackHole audio driver to capture call audio (the app links you to it).
There are two separate costs — you need both. Your JIAA subscription ($79/mo or $699/yr) unlocks the app. Your Anthropic API key pays for Claude as you use it — add about $5–10 of credit to start. One unlocks the software; the other powers the answers.
JIAA transcribes audio locally on your Mac. Only transcribed text and the materials you explicitly attach (code, PDFs, screenshots) are sent to the Claude API.

Install JIAA

  1. Download the .dmg and double-click it to open.
  2. Drag JIAA into your Applications folder.
  3. Open it from Applications. The first time, macOS says “JIAA is damaged and can’t be opened. You should move it to the Trash.” It is not damaged: because JIAA is distributed directly (not through the Mac App Store) and isn’t notarized by Apple yet, downloaded copies arrive with a “quarantine” flag that macOS reports this way. The app is safe — clear the flag once with the steps below, then click Cancel on the dialog.

Clear the “quarantine” flag — one time, about 10 seconds

This is a Terminal step. macOS does not show an “Open Anyway” button for this kind of app, so removing the download flag yourself is the way in.

  1. On the “damaged” dialog, click Cancelnever “Move to Trash.” Make sure JIAA is in your Applications folder.
    macOS Gatekeeper “damaged” dialog for a not-yet-notarized app ? “JIAA” is damaged and can’t be opened. You should move it to the Trash. Your browser downloaded this file today. Move to Trash Cancel
    macOSThis is the first-launch dialog for a not-yet-notarized app. Click Cancel (never “Move to Trash”), then do steps 2–3 below.
  2. Open Terminal (Spotlight ⌘ Space → type “Terminal”).
  3. Copy this line, paste it into Terminal, and press Return:
    xattr -dr com.apple.quarantine /Applications/JIAA.app

Installed JIAA somewhere other than Applications? Type xattr -dr com.apple.quarantine followed by a space, then drag the JIAA app into the Terminal window to fill in its path, and press Return.

Now open JIAA with a normal double-click. You only need to do this once.

Why does this happen? JIAA is code-signed but not yet notarized by Apple, so macOS quarantines the download and reports it as “damaged.” Clearing the quarantine flag is safe and standard for indie Mac apps. Notarization is on the way — once it’s live, JIAA will open with a plain double-click and none of this will be needed.

First-run setup

On first launch JIAA walks you through these steps. You can revisit any of them later from the toolbar.

Create your Anthropic API key

  1. Sign up or log in at console.anthropic.com.
  2. Open Billing (Plans & Billing) and add a payment method, then top up $5–10 of credit. A brand-new account needs credit before the API will answer.
  3. Go to Settings → API Keys and click Create Key.
  4. Copy the key (it starts with sk-ant-) and paste it into JIAA when prompted. You can store it in your Mac's Keychain so you only do this once.
API usage is billed by Anthropic directly through your key — only about $2 even for a long interview of up to two hours. You always see your spend in the console.

Activate your license

  1. In JIAA, pick a plan — Monthly ($79) or Yearly ($699) — and complete the secure checkout that opens in your browser.
  2. A license key arrives by email within a minute.
  3. Paste it into the activation screen. The key activates this Mac; you can release it from the store's My Orders page if you switch hardware.
Activate JIAA Pick a plan to unlock the app. Your license key arrives by email. Monthly Billed monthly · cancel anytime $79 / month Yearly Save over 25% Two interview seasons covered $699 / year Subscribe I already have a license key
In-appPick Monthly or Yearly, pay, then paste the key from your email.

Download the Whisper model

Interview mode transcribes speech locally. JIAA downloads the ggml-small.bin model (~466 MB) into its app directory — a one-time download. Once it's done, transcription works fully offline. The speech-recognition binary itself ships inside the app, so there's nothing else to install.

Downloading Whisper model… Local transcription model (ggml-small.bin) — a one-time download. It stays on your Mac and works offline afterwards. Fetching… 289 / 466 MB · 62% Cancel
In-appOne-time ~466 MB download; transcription is fully offline afterwards.

Set up audio (BlackHole)

To "hear" the recruiter, JIAA listens to your Mac's system audio through BlackHole, a free, open-source virtual audio driver by Existential Audio. It has no window — it simply shows up as an audio device once installed.

Step 1 — Install BlackHole 2ch

Pick whichever is easier for you:

  • With Homebrew (one command). In Terminal, run brew install --cask blackhole-2ch and enter your Mac password if prompted. Homebrew handles everything.
    Don't have Homebrew? Install it first

    Homebrew is a free package manager for macOS — it isn't included by default. To install it, paste this into Terminal and press Return:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    Follow the prompts. It may ask for your password and install Apple's Command Line Tools — that's expected and can take a few minutes.

    On Apple Silicon Macs, finish by running the two commands Homebrew prints to add it to your PATH, for example:

    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"

    Then run the BlackHole command above. Full instructions: brew.sh.

  • Manual download. Go to existential.audio/blackhole, request the free BlackHole 2ch installer (the link is emailed to you), then open the downloaded .pkg and follow the installer prompts.
macOS may block the installer the first time. If it does, open System Settings → Privacy & Security, scroll to the security notice about BlackHole and click Open Anyway / Allow, then run the installer again.

After installing, quit and reopen any audio apps (your browser, Zoom, Teams, Meet…) so they detect the new device. A full reboot usually isn't necessary.

Step 2 — Route your audio

Set things up so you can both hear the call and let JIAA capture it:

  1. Open Audio MIDI Setup (Applications → Utilities). Click the + button at the bottom-left and choose Create Multi-Output Device.
  2. In the new device's list, tick both your normal output (headphones/speakers) and BlackHole 2ch. Tip: put your headphones first as the primary device.
  3. In System Settings → Sound → Output, select that Multi-Output Device. Now you hear the call normally and BlackHole receives a copy for JIAA.
  4. In JIAA's toolbar, keep the audio source on BlackHole (system audio). Switch to Microphone only when you need to re-read a question out loud yourself.
Audio MIDI Setup Built-in Output External Headphones BlackHole 2ch Multi-Output Device + Multi-Output Device Use Audio Device External Headphones Primary BlackHole 2ch Built-in Output Tick both your headphones and BlackHole 2ch.
macOSCreate a Multi-Output Device and tick both your headphones and BlackHole 2ch.
If the audio meter shows silence, BlackHole isn't receiving sound — re-check that your Output is the Multi-Output Device that contains BlackHole.

Grant macOS permissions

In System Settings → Privacy & Security, allow JIAA under:

  • Screen Recording — required for the silent screenshot / screen-region capture used by Code Review and Quiz.
  • Microphone — only needed if you use the microphone audio source.
Using JIAA
How to use it during interviews

The fun part — and you don't need to read it all up front. This is a reference for the toolbar, the five modes and everyday controls; jump to whatever you need, when you need it.

The toolbar at a glance

Everything runs from the top toolbar:

Java Interview AI Assistant Off 👤 🎧 🎤 EN PL 📌 🖼 🔑 📋Task </>Code Review Live Coding ?Quiz
ToolbarTop row: status, persona, audio source, Listen, pre-roll, language and window controls. Bottom row: the four modes.
  • Status — the current state at a glance: Off, Listening…, Transcribing…, Generating answer…
  • Persona (person icon) — choose and edit the candidate profile answers are written from.
  • Audio source — switch between BlackHole (headphones = system audio) and Microphone.
  • Listen (green mic) — click to start capturing a question, click again to stop (see Interview mode).
  • Pre-roll (green dot + menu) — a rolling 5-second buffer of system audio, so the start of a question is captured even before you click Listen.
  • Language (EN / PL shown in the mockup) — JIAA supports English, Polish, French, and German for both the interface and generated answers.
  • Window controls — always-on-top (pin), opacity, custom Dock icon, and forget API key.
  • Modes (bottom row) — Task, Code Review, Live Coding and Quiz.

The five modes

Interview mode

The core loop for a live conversation:

  1. Click Listen. JIAA captures system audio (plus the last 5 seconds from the pre-roll buffer).
  2. When the recruiter finishes the question, click Stop. JIAA transcribes the phrase with the local Whisper model and streams a structured answer within seconds.
  3. Repeat for the next question. JIAA deliberately does not answer mid-question, so a recruiter's pause won't trigger a premature reply.
Listening… pre-roll 5s ▾ Q: What's the difference between optimistic and pessimistic locking? Optimistic locking checks a version column on write; pessimistic takes a DB lock up front (SELECT … FOR UPDATE). Use optimistic on low-contention, read-heavy paths; pessimistic on hot rows you must serialize. 🔍Expand topic 🧮Full code Clarify…
Best as videoListen → Stop → the answer streams in within seconds.

Silence and obvious transcription noise are filtered out, so the feed stays clean. Missed a question? Switch the source to Microphone and repeat it out loud.

Task mode

For discussing a take-home assignment you've already built:

  1. Open Task and load your repository by URL, and (optionally) attach the task statement as a PDF or pasted text.
  2. The assignment is pinned to the conversation. Every question you capture is now answered against your actual code.
  3. Answers cite concrete locations like PaymentService.java:87 so you can jump to the line under discussion.
Off 👤 📌 Task: payments-assignment Task loaded — github.com/you/payments-assignment 14 .java files · README · task PDF — in context for every answer Q: Why did you choose optimistic locking for the transfer table? A version column on TransferEntity.java:42 lets the DB reject stale writes. The bounded retry lives in TransferService.java:118 .
TaskYour repo is pinned to the conversation — answers cite the exact Class.java:line.

Code Review

To find issues in code on demand:

  1. Open Code Review and choose a source: clipboard, a Git repository, a window screenshot, or a screen region.
  2. Screenshot and region capture are completely silent — nothing the other side can see or hear.
  3. You get severity-ranked findings with before / after fixes side by side. Each review joins the conversation context, so follow-up questions about a specific finding are answered instantly.
</> Code Review From screen region · silent 👻 Code Review · OrderProcessor.java Key Findings high: SimpleDateFormat is shared across threads — not thread-safe. 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() — use compareTo(…) == 0.
Best as videoSilent capture → severity-ranked findings with before / after fixes side by side.

Live Coding

To generate a working solution:

  1. Open Live Coding. Paste the task text or attach the PDF — or switch to expected output → code if you only know what the program should print.
  2. Pick the shape: framework style (Spring Boot for Java and Kotlin) that drops into an existing project, or a plain main single file.
  3. Long solutions continue automatically past the length limit. Use Copy all classes to put every file on your clipboard at once.
Live Coding Task → code Expected output → code Framework Plain main 📄 discount-engine.pdf · 3 pages Generate code Live Coding · 5 files · Spring Boot // com/example/app/solution/DiscountEngine.java @Component @RequiredArgsConstructor public class DiscountEngine { private final PricingRules rules; public BigDecimal apply(Order o) { … } Copy all classes (5)
Live CodingTask or PDF in, a complete runnable solution out — copy every class in one click.

Quiz

For platforms like Karat, DevSkiller, HackerRank or LeetCode:

  1. Open Quiz and add up to five silent screenshots (full windows or regions) covering the prompt, the options and any code.
  2. Optionally attach repository code if the question refers to a codebase.
  3. Click Solve. JIAA stitches everything together and returns the answer with 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) Merge sort splits the input in half (log n levels) and merges in linear time at each level — so the bound holds for best, average and worst cases alike.
QuizUp to five silent screenshots in, the answer (with reasoning) out.

Working with answers

  • Expand topic — go deeper on an answer or one of its sections.
  • Clarify (follow-up) — type a follow-up question; it's answered with the original exchange and the whole session in context.
  • Full code — promote an interview answer into a complete live-coding solution.
  • Copy all classes — copy every generated .java file (with path headers) in one click.
  • Cancel — stop a generation that's still streaming.

Personas

A persona is the candidate profile answers are written from — language, tech stack and professional background. JIAA is built for Java, with Kotlin in beta, and answers in English, Polish, French or German.

It already ships ready for the most common interview tracks — ten built-in profiles, so you can pick one and start interviewing without configuring anything:

Java

  • Banking & payments
  • E-commerce
  • Telecom
  • Insurance
  • Healthcare
  • Big data

Kotlin (beta)

  • Banking & payments
  • Android
  • E-commerce
  • Multiplatform (KMP)

Open the persona settings from the toolbar to:

  • Choose the active profile.
  • Duplicate a built-in profile and edit the copy — adjust the tech stack and background so answers match your CV. Built-in profiles stay intact, so you can always reset.

Move your license to another Mac

Your subscription activates JIAA on one Mac at a time. To use it on a different computer — or to reactivate after wiping or reinstalling macOS — free the old activation, then activate on the new machine. You can do this yourself; no need to contact support.

  1. Open your Lemon Squeezy orders page at app.lemonsqueezy.com/my-orders (or click Manage in your purchase confirmation email).
  2. Open your JIAA order and find your license key. Under its activations, click Deactivate on the Mac you no longer use.
  3. On the new Mac, open JIAA, choose I already have a license key, paste your key, and click Activate.
Lemon Squeezy My Orders — open the license and click Deactivate The Lemon Squeezy portal shows the My Orders list with the JIAA order on the left, and a License Details panel on the right with the license key and an Activations row whose Deactivate button is highlighted. app.lemonsqueezy.com/my-orders P My Orders JIAA By jiaa.codes 1 result License Details Status: Active Expires:Never Limit:4 License Key DA153C6F-B468-4DFB-AC71-7B5C8DF8EE5A Activations (1) 1 Anna's MacBook Pro Activated on 24 Feb 2026, 10:51 Deactivate
Lemon SqueezyIn My Orders → your JIAA order, open the license, then click Deactivate next to the Mac you no longer use.
This works even if you no longer have the old Mac — for example after a clean reinstall or a lost computer. Deactivation happens on Lemon Squeezy's side, so you can free the slot from My Orders and then activate fresh.

Lost your key? It's on the same My Orders page and in your original purchase email.

Troubleshooting & tips

  • The audio meter shows silence. Your system Output isn't routed through BlackHole. Set Output to a Multi-Output Device that includes BlackHole 2ch (see Audio setup).
  • Keeping JIAA hidden during screen share. It works best when you share a single window or app rather than your whole screen — then JIAA never appears in what the other side sees. If you must share the entire screen, keep JIAA on a second display.
  • Screenshots do nothing. Grant Screen Recording permission in System Settings → Privacy & Security, then restart JIAA.
  • The API rejects requests. Make sure your Anthropic account has billing set up and available credit.
  • Offline. Transcription works offline after the model download; generating answers needs internet for the Claude API.

Version history

Version 1.0.0

Release date: June 16, 2026

The first public release includes the full core workflow for technical interviews:

  • Interview mode with local Whisper transcription, a 5-second pre-roll buffer, and support for both BlackHole system audio and microphone input.
  • Task mode for loading a repository plus a task description, then answering against your actual code with file-and-line citations.
  • Code Review mode for analyzing clipboard code, repositories, screenshots, and screen regions with before/after fixes.
  • Live Coding mode for generating complete solutions from task text, PDFs, or expected output, including multi-file copy support.
  • Quiz mode for solving platform-style questions from up to five silent screenshots, with optional repository context.
  • Everyday controls like personas, multilingual interface and answer language support (English, Polish, French, and German), always-on-top, opacity, and stored API key management.