███╗   ███╗ ██████╗████████╗██████╗  █████╗  ██████╗██╗  ██╗███████╗██████╗
████╗ ████║██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██╔════╝██║  ██║██╔════╝██╔══██╗
██╔████╔██║██║        ██║   ██████╔╝███████║██║     ███████║█████╗  ██████╔╝
██║╚██╔╝██║██║        ██║   ██╔══██╗██╔══██║██║     ██╔══██║██╔══╝  ██╔══██╗
██║ ╚═╝ ██║╚██████╗   ██║   ██║  ██║██║  ██║╚██████╗██║  ██║███████╗██║  ██║
╚═╝     ╚═╝ ╚═════╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝

Invisible. Undetectable. Unstoppable.

Real-time AI interview assistant that disappears when you need it to.

macOS only · Apple Silicon optimized · Coming soon

"Are you playing to play, or are you playing to win?"

— George Stalk, Hardball

Everything you need to ace the interview

Built for stealth. Designed for speed. Engineered to be invisible.

Stealth Mode

Invisible to screen shares, recordings, and capture software. Your secret stays safe.

Real-Time Transcription

Captures both your microphone and system audio with automatic speaker detection.

AI Suggestions

Context-aware answers powered by Claude. Smart classification knows when you need help.

Screen Analysis

Capture coding problems, diagrams, and whiteboard questions. Claude Vision analyzes them instantly.

Click-Through

Read overlaid suggestions while clicking and typing through the window underneath.

Opacity Control

Adjust transparency on the fly. Keyboard shortcuts for instant toggle when you need to vanish.

What you see

A lightweight overlay that sits on top of your call. Transcripts on top, AI suggestions below — everything you need, nothing they can detect.

mctracher
Connected STEALTH
CLICK-THROUGH 00:23:47
Transcript 24
INT Let's move on to system design. How would you design a URL shortener like bit.ly?
YOU Sure, let me start by clarifying the requirements. We need to generate short URLs, redirect to original URLs, and handle analytics...
INT Good. What about the scale? Assume 100M URLs created per day.
INT And how would you handle the hashing to avoid collisions?
YOU For hashing I'd use base62 encoding with a counter-based approach...
Suggestions ◀ 3/4 ▶

URL Shortener — System Design

Scale estimation: 100M URLs/day = ~1,160/sec writes. Read-heavy (10:1 ratio) = ~11,600/sec reads.

Key generation: Use base62 encoding (a-z, A-Z, 0-9). A 7-char key gives 62^7 = 3.5 trillion unique URLs.

  • Approach 1: Counter + base62 — simple, no collision, but predictable
  • Approach 2: MD5/SHA256 hash → take first 7 chars — collision possible, use retry
  • Approach 3: Pre-generated key pool (KGS) — best for scale, offline generation

Storage: NoSQL (DynamoDB/Cassandra) for key-value lookups. Redis cache for hot URLs. CDN for redirects close to users.

👁️

Live Transcript

Every word captured in real time. Speaker detection labels interviewer vs. you automatically.

Instant Suggestions

AI classifies each question and generates context-aware answers. Navigate between multiple suggestions.

👻

Invisible Overlay

Stealth mode + click-through + adjustable opacity. Visible only to you, always.

Screen Analysis

Capture your screen, and Claude Vision analyzes the problem instantly. Stack multiple screenshots for complex problems — get a complete solution in seconds.

Cmd+Shift+S

Capture screen instantly

LeetCode — Two Sum
1. Two Sum
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]

Problem Mode — Stack Screenshots

Capture multiple screens, then process all at once

3 screenshots stacked PROBLEM
Cmd+Return
Process all screenshots
Code Suggestion via Claude Vision

Two Sum — Optimal Solution

Use a hash map to store complement values as you iterate. Single pass, O(n) time.

func twoSum(nums []int, target int) []int {
    seen := make(map[int]int)
    for i, n := range nums {
        if j, ok := seen[target-n]; ok {
            return []int{j, i}
        }
        seen[n] = i
    }
    return nil
}
Time: O(n) — single pass through the array
Space: O(n) — hash map stores at most n entries
Edge cases: duplicate values, negative numbers, single element
What to say "I'll use a hash map approach — iterate once, storing each number's index. For each element, check if the complement exists in the map. This gives us O(n) time and O(n) space."
📷

Instant Capture

Cmd+Shift+S grabs your full screen at native resolution. No window switching needed.

🧩

Stack Mode

Capture multiple screenshots for multi-part problems. Process them all with Cmd+Return.

👁️

Claude Vision

Claude sees exactly what you see — code editors, problem statements, diagrams, whiteboard.

💬

Verbal Script

Every suggestion includes what to say out loud so you sound natural, not like you're reading.

Built-in Chat

A dedicated chat window to talk to your buddy, share code, paste screenshots — all without leaving the interview.

mctracher
Connected John Wick
John Wick they just asked about rate limiting, want me to look it up?
You yes please, token bucket vs sliding window
John Wick here's the token bucket:
class TokenBucket:
    def __init__(self, capacity, rate):
        self.tokens = capacity
        self.capacity = capacity
        self.rate = rate  # tokens/sec
        self.last = time.time()

    def allow(self):
        now = time.time()
        self.tokens += (now - self.last) * self.rate
        self.tokens = min(self.tokens, self.capacity)
        self.last = now
        if self.tokens >= 1:
            self.tokens -= 1
            return True
        return False
John Wick found this diagram too
┌─────────┐
│ Request │
└────┬────┘
┌────▼─────────┐
│ Token Bucket │
│ tokens > 0? │
└──┬────────┬──┘
yes no
┌──▼──┐ ┌──▼───┐
│ 200 │ │ 429 │
└─────┘ └──────┘
You perfect, exactly what I needed 🤝
Type a message or paste an image...
Send
📸

Paste Images

Paste screenshots directly into chat. They show as thumbnails with full-screen lightbox preview.

Auto Code Detection

Code snippets are automatically detected and syntax-highlighted. No markdown needed.

⌨️

Dedicated Window

Open with Cmd+Shift+C. A separate floating window so your main overlay stays clean.

Buddy Mode

Invite a friend to watch the interview in real time. They see everything, can chat with you, paste code, and ask Claude directly — all from a browser.

mctracher BUDDY
Connected John Wick
00:14:32
Chat
John Wick hey I think they want you to use a hashmap for O(1) lookup
You yeah good call, thanks
John Wick
def two_sum(nums, target):
    seen = 
    for i, n in enumerate(nums):
        diff = target - n
        if diff in seen:
            return [seen[diff], i]
        seen[n] = i
Claude → John Wick The time complexity is O(n) since we iterate through the list once, and each hashmap lookup is O(1) amortized.
Type a message...
Send
Transcript 12
INT Given an array of integers, return indices of the two numbers that add up to a target.
YOU So this is the classic two sum problem. I'd use a hash map approach...
INT Great, and what's the time complexity of that?
YOU The hash map gives us O of n time because...
Suggestions ◀ 2/3 ▶

Two Sum — Hash Map Approach

Iterate through the array once. For each element, check if target - nums[i] exists in the map.

  • Time: O(n) — single pass
  • Space: O(n) — hash map storage
  • Edge cases: duplicate values, negative numbers
💬

Real-time Chat

Message back and forth during the interview. Share code snippets with syntax highlighting.

📋

Paste Code

Drop in solutions, pseudocode, or references. Auto-detected and formatted.

🧠

Ask Claude Directly

Your buddy can query Claude independently and get answers without disrupting your flow.

🌐

Browser-based

No install needed. Pop out a link and your buddy joins from any browser.

How it works

Four steps. Zero trace.

01

Configure

Add your API keys and prep files. Takes 30 seconds.

02

Listen

Real-time transcription captures mic and system audio with speaker detection.

03

Analyze

AI classifies questions, builds context across the conversation, and generates answers.

04

Disappear

Stealth mode, click-through, opacity control — it was never there.

mctracher — session
$ mctracher start
▸ Audio capture initialized (mic + system)
▸ OpenAI Realtime STT connected
▸ Claude router ready (haiku-4.5)
▸ Answer model ready (sonnet-4.5)
 
[interviewer] Can you explain how a hash map handles collisions?
▸ classified: needs_answer
 
[suggestion] Hash maps handle collisions through two main strategies...
▸ delivered via WebSocket in 1.2s
 
▸ stealth: active · click-through: enabled · opacity: 30%

See mctracher in action

Watch a full interview session from start to finish.

Demo video coming soon

Simple pricing

No hidden fees. Bring your own API keys.

Monthly

$30 /month

Full access to all features. Cancel anytime. You provide your own Anthropic and OpenAI API keys.

Coming Soon
SAVE 72%

Annual

$100 /year

Full access for a year. All updates included. You provide your own Anthropic and OpenAI API keys.

Coming Soon

Frequently asked questions

Can my interviewer see mctracher?

No. mctracher uses macOS window levels that are invisible to screen share, screen recording, and screenshot capture software. When stealth mode is active, no one on the call can see the overlay.

Is my conversation data stored?

No data leaves your machine except API calls to Anthropic (Claude) and OpenAI (transcription), which go directly from your computer using your own API keys. We never see, store, or have access to your conversations.

What about API call logs?

API calls are made directly from your machine to Anthropic and OpenAI using your personal API keys. Their standard data retention policies apply. We have no access to your API usage or logs.

Does it work on screen-shared calls?

Yes — that's the core feature. Stealth mode renders the window at a macOS level that screen sharing software cannot capture. It works with Zoom, Google Meet, Teams, and other platforms.

What if I need to click through the window?

Toggle click-through mode with Cmd+Shift+T. The overlay becomes transparent to mouse events, so you can read suggestions while clicking and typing in the app underneath.

Is it macOS only?

Yes. The stealth mode, click-through, and window management features rely on macOS-specific APIs (CGWindowLevel, NSPanel). There are no plans for Windows or Linux at this time.

How do I activate my license?

After purchasing, you'll receive a license key via email. Add it to your config/config.yaml file under the license.key field, and mctracher will validate it on startup.

What payment methods do you accept?

We accept all major credit cards, PayPal, and Apple Pay through our payment provider Lemon Squeezy. All transactions are secure and encrypted.

Can I get a refund?

Yes. We offer a full refund within 14 days of purchase, no questions asked. Contact support@mctracher.com and we'll process it immediately.

Where can I find a buddy for my interview?

Join our Discord community — there's a #find-a-buddy channel where candidates pair up for mock interviews and practice sessions.

What API keys do I need and how much do they cost?

You need an Anthropic API key (for Claude — suggestions) and an OpenAI API key (for real-time transcription). A typical interview session costs roughly $0.10–$0.30 in API usage. Both providers offer free trial credits for new accounts.