40% off any plan until Nov 1.

The undetectable AI interview assistant

Stay undetectable.
Show up ready.

Get real-time answers during interviews and assessments without switching tabs, stealing browser focus, or appearing in the window you share.

New users get their first 5 messages and 2 minutes of voice free.

Screen-share invisible

Stays out of supported screen captures

No focus theft

Keep the interview window active

Global hotkeys

Control it without switching apps

Built for the live interview.

Five things working together while you talk.

Listening

Never miss the question.

Control listens in real time and turns the live conversation into usable context.

Listening

“What would you have done differently?”

Interviewer

Walk me through the project. What problem were you trying to solve?

You

We were rebuilding onboarding for a B2B product with a major launch approaching.

Interviewer

What outcome were you responsible for?

You

The goal was to ship before the deadline and support the new sales motion.

Interviewer

Did the timeline change after the work started?

You

Yes. Leadership moved the launch forward by three weeks after a customer commitment.

Interviewer

What was the team size?

You

It was three engineers, one PM, and a designer working on contract.

Interviewer

What was the biggest delivery risk at that point?

You

The onboarding flow was still unfinished and touched several services we did not own.

Interviewer

Reading

Read the screen, not a screenshot.

Pull the question straight off the page with no screenshot, no copy, and no switch of focus. It rides along with your next answer.

HHackerRank | Software Engineer Assessment×
www.hackerrank.com/tests/swe-2026/questions/cloud-instance-hostname-check
C
H52 minutesRunNext
EditSelectionViewGoRunTerminalinstance-list.ts —— projects —— HackerRank VSCode
1

Angular: Cloud Instance Hostname Check

A cloud hosting provider has a visual form for creating an instance. One of its fields requires an advanced validation mechanism as described in the user stories below.

User Stories

  1. The user should fill out the required hostname field.
  2. The format of the hostname is any number of alphanumeric characters separated by a dot.
  3. The hostname is unique, which means that no instance can be created using the same hostname.
  4. When the hostname field is empty, the error message Cannot be empty should appear.
  5. When the hostname field is invalid, the error should be a valid host name should appear.
app.component.html×app.component.ts×instance-list.ts×
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { Component } from '@angular/core';
import {
  AbstractControl,
  FormControl,
  ValidatorFn
} from '@angular/forms';

import { Instance, instanceList } from '../shared/mock/instance-list';

export function hostnameUniqueValidator(): ValidatorFn {
  return (control: AbstractControl) => {
    const host = (control.value ?? '').trim();
    return instanceList.some((i) => i.hostname === host)
      ? { hostnameUnique: true } : null;
PreviewTest cases
https://vm-ld292690-9f10-4278

HCloud Instance Hostname Check

We are currently investigating the open issue Subsea Fiber Faults in the Pacific#2 region

Create Instance

Location:

DC-1, default

• Location: Pacific#1
• Status: available

DC-2

• Location: Pacific#2
• Status: not available

Important: "DS-2" data center is temporarily unavailable.

Configuration

1GB / 1 CPU / 25 GB SSD Disk

Hostname:

Cannot be empty.
Should be a valid hostname.

Create
00Ln 14, Col 32Spaces: 2UTF-8
Listen
Angular: Cloud Instance Hostname Check

Write a custom ValidatorFn: trim the control value, require a dot-separated alphanumeric hostname, then return { hostnameUnique: true } when it already exists in instanceList.

ShorterSimpler
Type a message…
Start listening“Angular: Cloud Instance Hostname Check. A cloud hosting provider has a visual form for creating an instance; one of its fields requires an advanced validation mechanism…”Careful
Answer this

On macOS, Read screen lifts the question's text straight from the window into your next answer.

Focus

Stay focused on the interview.

Get relevant help without switching tabs, retyping prompts, or breaking your flow.

Design a real-time context pipeline

p95 < 500 msordered per sessionreplayable
Audio captureEvent gatewaypartition: sessionIdContext workersummarize + indexDurable logordered eventsContext storeRedis + summaries✓ idempotent event IDs✓ hot state in Redis
Capture the boardCtrl+H
Listen
How does this pipeline stay current without losing earlier decisions?

Audio capture sends idempotent events through the Event gateway, partitioned by sessionId. The Durable log preserves their order, while the Context worker consumes each event to update recent turns in Redis and rolling summaries in the Context store. Answer requests read both layers, so fresh details stay available without dropping earlier decisions; retries are safe and worker lag never blocks capture.

Give an exampleShorterSimpler
Type a message…
Start listeningRead screenCareful
Answer this

Hotkeys and remote

Help is always within reach.

Use undetectable global hotkeys to capture context, ask for help, and control the interview without leaving your workflow.

From your keyboard

  • Capture the screen

    Grab the question without a screenshot or a tab switch.

    Ctrl+H
  • Get an answer

    Ask about what was just said or shown.

    Ctrl+Enter
  • Hide the overlay

    Gone in one keypress, back in one.

    Ctrl+B

Five more cover regions, listening, chat, new topics and stopping an answer.

From your phone

Away from the keyboard, open Remote on your phone.

Read the answer, take a screenshot or move the overlay without touching the interview machine.

9:41
NorthstarSystem Design · Context Pipeline

Where does the pipeline start?

At ingestion. Every turn lands on a Redis stream, and a worker writes it to Postgres before anything reads it back.

How would you keep earlier decisions available as the conversation grows?

Split memory into two tiers and read both on every turn:

  • Recent turns stay verbatim in Redis, capped at the last 20.
  • Older turns roll into summaries in the context store, keyed by topic.
  • On each request, merge both under a token budget, newest first
Capture screenshot
VisibleMoveMore
Ask Control about the interview…

Control can make mistakes. Check important answers.

Context

Every follow-up makes sense.

New questions stay connected to what was discussed, decided, and attempted earlier.

Alex Rivera asking a follow-up question on the video call
Alex Rivera

You  We started by polling the API every second.

Alex  How did that hold up at peak?

You  It fell behind, so we moved writes onto Redis streams.

Alex  What did you do when that didn’t work?

What did you do when that didn’t work?

Once polling fell behind at peak, I kept the Redis streams path from earlier but added a worker that batches writes into Postgres, so reads never waited on ingestion. If that worker lagged, the stream just held the backlog until it caught up.

Give an exampleShorterSimpler
Type a message…
Start listeningRead screenCareful
Answer this

Answers build on what you already said, so follow-ups never start from zero.

Prep before. Notes after.

Plan each interview on the web with the job and your resume, so Control knows what you're walking into. When it ends, notes from what was said and what you captured are waiting here.

Overview

Welcome back, Maya

Live now

Northstar — Senior Software Engineer

Next interview

Stripe — Backend Engineer

Mon, Sep 8, 11:00 AM

Next up

Ready 3 of 4

  • Time set
  • Context attached
  • Resume attached
  • Job description present

1 application reached an interview stage with nothing planned. Plan from Apply

Recently finished

Plan

Monthly

Full access is active

Renews

Oct 1, 2026

Renews automatically

Desktop app

Download the desktop app for system-wide shortcuts and screen-share invisibility.

Invisible wherever they look.

Control stays private across the interview tools and system checks that could expose your workspace.

1

Invisible to screen share

The overlay never shows up in the window you share or in the recording, and the interview tab keeps focus the whole time.

Your screen

NNorthstar Engineering Assessment×
assessment.northstar.dev/interview/rate-limiter
C
solution.tstests.ts
1
2
3
4
5
6
7
8
9
10
11
class RateLimiter {
  private requests = new Map();

  allow(userId: string, now: number) {
    const windowStart = now - 60_000;
    remove expired entries
    const recent = (this.requests.get(userId) ?? [])
      .filter((time) => time > windowStart);

    if (recent.length >= 100) return false;
  }
}
Maya Chen speaking in a minimized interview call with a Golden Gate Bridge virtual backgroundMaya Chen
Interview in progress•••
Listen
Rate limiter under concurrent requests

Make cleanup, the limit check, and insertion atomic. In Redis, run them together in a Lua script:

redis.call('ZREMRANGEBYSCORE', key, 0, now - window) if redis.call('ZCARD', key) >= limit then return 0 end redis.call('ZADD', key, now, requestId) redis.call('PEXPIRE', key, window) return 1
Give an exampleShorterSimpler
Type a message…
Start listeningRead screenCareful
Answer this
NNorthstar Engineering Assessment×
assessment.northstar.dev/interview/rate-limiter
C
solution.tstests.ts
1
2
3
4
5
6
7
8
9
10
11
class RateLimiter {
  private requests = new Map();

  allow(userId: string, now: number) {
    const windowStart = now - 60_000;
    remove expired entries
    const recent = (this.requests.get(userId) ?? [])
      .filter((time) => time > windowStart);

    if (recent.length >= 100) return false;
  }
}
Maya Chen speaking in a minimized interview call with a Golden Gate Bridge virtual backgroundMaya Chen
Interview in progress•••
What the interviewer sees in the share
2

Invisible to process checks

Search the running apps for Control and nothing comes up. It runs under a system-style name.

Tested against current Zoom desktop releases, the HackerRank desktop app and browser-based screen recording, as of October 2026. How we test

Verification

Test what focus-tracking systems actually detect

Run our focus test to see what interview software can observe, what it flags, and where Control stays out of the signal path.

Run focus test

Compare local behavior against visible focus signals

Built for the tools used in real interview workflows

Control is meant to fit the standard interview stack: video call, shared screen, browser-based editor, and coding assessment platform. You should be able to drop it into that environment without changing how you normally work.

Zoom

Video call

Google Meet

Video call

Microsoft Teams

Video call

Webex

Video call

HireVue logo

HireVue

Interview room

CoderPad logo

CoderPad

Live coding

HackerRank

Assessment

CodeSignal

Assessment

Pricing

Pay for the interviews you have.

New users get their first 5 messages and 2 minutes of voice free before choosing a day pass, sprint pass, or monthly plan.

24 Hours

Day Pass

$12
/24 hours
24-Hour Full Access
Real-Time Voice + Screenshots
Phone Remote Included
No Subscription Required
72 Hours

Sprint Pass

$19
/72 hours
72-Hour Full Access
Built for Interview Clusters
Real-Time Voice + Screenshots
No Subscription Required
Recommended
Monthly

Monthly

$39
/month
Full Access All Month
Best for Active Interview Cycles
Phone Remote Included
Cancel Anytime

Questions, answered.

The things people ask before their first interview with Control.

Still have questions? Contact support · Leave feedback

Can I try Control before paying?

Yes. New users get their first 5 messages and 2 minutes of voice transcription free. The trial runs the real product, so you can check the overlay, the hotkeys, and the transcription in the exact tools you interview in before spending anything.

Will interviewers or proctoring software detect Control?

Not in the capture paths we test, and we state which ones those are. Tested against current Zoom desktop releases, the HackerRank desktop app and browser-based screen recording, as of October 2026. In that set the overlay is absent from the shared screen and from recordings, no Control process appears in macOS Activity Monitor, and global hotkeys never reach the browser as keystrokes. Not covered: other proctoring tools that install their own capture driver or a locked-down browser until we test them, and cameras. The full tested list, and what falls outside it, is on the About page under "How we test what stays hidden".

Which Zoom versions is the screen-share invisibility confirmed on?

All current Zoom desktop releases, re-tested October 2026. Zoom ships often, so we re-check new builds as they come out. If you want to see it for yourself, run the free trial with a test meeting and a second account before an interview.

Does it work inside browser assessments like HackerRank, CodeSignal, or CoderPad?

Yes, and that includes the HackerRank desktop app. Re-tested October 2026, the overlay stays out of its screenshots and screen recording, and Control does not trip its focus or tab-switch checks. In the browser, Control sits beside the assessment tab as a separate desktop window and never takes focus from it, and screenshots of the problem are captured by the desktop app, not by anything running in the page. The platform's own proctoring keeps working: a webcam check or an ID check is outside what Control does, and so is any other locked-down browser we have not tested. Our platform guides describe what each assessment records so you know before the session starts.

Are there free alternatives, and why pay $12?

There are. Open-source overlays exist and some of them are good at the one thing they do, which is usually a hotkey that sends a screenshot to a model you supply a key for. What they typically lack is live transcription of the interviewer, a phone remote so the interview machine stays untouched, a tested answer to "does this show up in Zoom", and someone to email when it breaks the morning of an interview. Control's free trial exists so you can decide that for yourself. If it earns the $12, the day pass covers a full interview day; if it does not, you have spent nothing.

Why is Control a desktop app instead of a browser extension?

Because a browser extension lives inside the window you share. A desktop app can respond to global hotkeys regardless of which window has focus, capture the problem on screen without a click in the page, and render its overlay outside the shared surface. Extensions cannot do any of those in a live screen-share, which is where most technical interviews happen.

How does the mobile remote work?

Sign in on your phone and on the desktop app and they pair through Control's servers. From the phone you can trigger a screenshot, read the response, and type a follow-up, so the interview computer shows nothing but the interview. Nothing is installed on the phone beyond the web app.

Which plan should I pick?

One interview tomorrow: the Day Pass ($12, 24 hours). An onsite loop or a cluster of rounds inside three days: the Sprint Pass ($19, 72 hours). An active search with interviews most weeks: Monthly ($39, cancel anytime). Every plan has every feature; the only difference is how long you have it.

Is my code and data private?

Screenshots and audio are captured only when you trigger them and are sent to Control's servers for the model to answer; they are not used for marketing or sold. Account and payment data are handled by Stripe and Supabase and are not used for advertising. The privacy policy lists each permission and what it is for.

What is the refund policy?

Access starts the moment you pay, so there are no routine refunds: passes are final, and cancelling Monthly stops the next renewal without refunding the current period. Billing errors and duplicate charges are corrected. The free trial is there so a first purchase is never a blind one, and the most a first paid test can cost is $12.

Show up ready for the next one.

Try it free in your next practice round: 5 messages and 2 minutes of voice, free.