vayel

Invisible interview copilot

The copilot
they can't see.

Vayel floats over your call in a window screen share can't capture and focus tracking can't feel. It hears the question, drafts your reasoning, and hands you the code — while you keep your eyes on the interviewer.

12 free answers a day · 60-second install · Windows 10+

content protection on
Zoom · sharing entire screen
HackerRank
146. LRU CacheMedium

Design a data structure that follows the constraints of a Least Recently Used cache. Implement get and put in O(1) average time.

Input:

["LRUCache", "put", "get"]

[[2], [1, 1], [1]]

Output: [null, null, 1]

Console

> LRUCache(2)

✓ 12 / 12 tests passed

Python 3Auto
1class Node:
2 def __init__(self, k, v):
3 self.k, self.v = k, v
4 self.prev = self.next = None
5
6class LRUCache:
7 def __init__(self, capacity: int):
8 self.cap = capacity
9 self.map: dict[int, Node] = {}
10 self.head, self.tail = Node(0, 0), Node(0, 0)
11 self.head.next, self.tail.prev = self.tail, self.head
12
13 def get(self, key: int) -> int:
Run codeSubmit
live · 12:41
ctrl+b hide · ctrl+j answer
Interviewer

Let's do a small design. LRU cache — get and put in O(1).

Walk me through the data structures before you type anything.

Talk me through eviction as well.

You

so we'd want constant-time lookup, which means…

a map, plus ordering

2 frames queued

Answerstreaming

My thoughts

  • Hash map for O(1) lookup, keyed by int.
  • Doubly linked list keeps recency order.
  • Move to head on get, evict the tail on overflow.
  • Guard capacity = 0 before anything else.
  • Sentinel head and tail avoid null checks.

Approach

Say: a hash map plus a doubly linked list gives O(1) lookups and O(1) eviction. On overflow, unlink the tail and drop its map entry.

Complexity

Time O(1) · Space O(capacity)

ctrl+shift+↑ scroll
Code · Python
1class Node:
2 def __init__(self, k, v):
3 self.k, self.v = k, v
4 self.prev = self.next = None
5
6class LRUCache:
7 def __init__(self, capacity: int):
8 self.cap = capacity
9 self.map: dict[int, Node] = {}
10 self.head, self.tail = Node(0, 0), Node(0, 0)
11 self.head.next, self.tail.prev = self.tail, self.head
12
13 def get(self, key: int) -> int:
↵ copy · no syntax errors
ctrl+h screenshot · ctrl+enter send 2 overlay protected
0 overlay pixels in this frame

Runs invisibly on

ZoomMicrosoft TeamsGoogle MeetHackerRankCoderPadCodeSignalAmazon ChimeHireVueWebexCoderByteZoomMicrosoft TeamsGoogle MeetHackerRankCoderPadCodeSignalAmazon ChimeHireVueWebexCoderByte

01 / Invisibility

Invisible isn't a setting here.
It's the architecture.

Most copilots are a second browser window with a hotkey. Reviewers learned to look for them. Vayel is built lower — at the window and keyboard layer — so there is nothing to notice.

01

The capture pipeline can't see it

Content protection is applied to the window before it ever paints, then re-asserted on every focus event. Screen share APIs, recorders, and full-screen capture all get a clean frame.

02

Your keyboard never leaves the IDE

A low-level keyboard layer swallows Vayel shortcuts before the OS or the call sees them, then hands focus straight back. Keyboard testers read zero. Tab monitors see zero switches.

03

There is no window to alt-tab to

No taskbar entry. No dock icon. No cursor travel. Always-on-top above full-screen calls, and the position is remembered between sessions. It sits where your eyes already are.

What reviewers try

  • Keyboard tester, mid-interviewclean
  • Alt-tab and tab-switch monitorsclean
  • Cursor-idle detectionclean
  • “Can you share your whole screen?”clean
  • Second-monitor checksclean

The honest caveats

A second camera pointed at your laptop, or a proctoring suite that forbids a second window, can still tell. That isn't a bug in the overlay — nothing local survives a camera.

On macOS, Zoom's own advanced capture needs window filtering enabled. We walk you through it the first time and remember the setting.

Everything runs from global shortcuts, so the app never asks for a mouse — and you never look like you're driving another window.

02 / The instrument

Built for the 45 minutes
that decide the next two years.

01

Hears both sides

System audio and your microphone are transcribed in parallel, live, in two labelled columns. The model follows the conversation instead of resetting on every question.

02

A coach, not a teleprompter

Answers arrive as your thoughts, a spoken approach, code, and complexity — so you can talk through it like it's yours. Because it is, by the time you say it.

03

Screenshot without flinching

Ctrl+H grabs the problem statement without moving your cursor, changing tab, or interrupting the call. Stack several frames and send them together.

04

Code that runs

Twelve languages, syntax highlighted, copyable with one key. LeetCode mode compiles and tests the solution against the examples in Python before it is shown.

05

Your résumé, your voice

Drop your CV and the job description into a local folder. They're re-read on every answer, prompt-cached for cost, and the model is told never to invent experience.

06

Type a prompt invisibly

Ctrl+P turns the keyboard into a private input buffer. Whatever you type goes to Vayel, not to the editor, chat, or interview platform.

07

Practice with the same tool

General, LeetCode, and Interview modes share one engine. Rehearse the loop, then use it for real with the exact keys your fingers already know.

08

Bring a second pair of eyes

Share your overlay through an expiring WebRTC link and a friend or mentor can watch the transcript and answers live — without installing anything.

03 / Operation

Three keys.
Zero mouse.

Set up before the call, then never reach for the cursor. Every action is a global shortcut that works while the browser or IDE stays focused — and is gone from the keyboard before the call sees it.

  1. 01

    Before

    Drop your résumé and the job description into the context folder. Vayel shows the byte count so you know it's loaded.

  2. 02

    Join

    Open the call and press Ctrl+L. Interviewer audio and your mic transcribe side by side. Nothing to configure, nothing to click.

  3. 03

    Answer

    Press Ctrl+J after a question. Your thinking, an approach to say out loud, and code land in three panels. Press it again to continue the thread.

KeymapWindows / macOS
  • Show or hideCtrl / ⌘ + B
  • Listen / stopCtrl / ⌘ + L
  • Answer latest questionCtrl / ⌘ + J
  • ScreenshotCtrl / ⌘ + H
  • Send queueCtrl / ⌘ + Enter
  • Move overlayCtrl / ⌘ + ↑ ↓ ← →
  • Hide panelsCtrl / ⌘ + 1 2 3
  • Reset contextCtrl / ⌘ + G
Swallowed below the app. Never registered as a keypress.

04 / The output

Not a wall of text.
Something to say.

Answers are shaped to be spoken. You get the reasoning first, the pitch in plain English, and the implementation last — the same order a good engineer thinks in.

Coding roundlive transcript

"Implement an LRU cache with O(1) get and put."

My thoughts

  • • Hash map gives the constant-time lookup.
  • • Linked list keeps recency without shifting arrays.
  • • Evict from the tail, move hits to the head.

Approach

Say: dictionary keyed on the key, wired to a doubly linked list; get moves to front, put evicts the tail.

self.map = {}

self.head.next = tail

return node.val

Time O(1) · Space O(capacity)

Behavioral roundrésumé-aware

"Tell me about a time you disagreed with your manager."

  • • At Northwind, we disagreed on shipping a billing migration before the ledger audit closed.
  • • I wrote a one-page risk note: three failure modes, one reconciliation job, two days of delay.
  • • Manager chose the delay; I owned the reconciliation script and ran the cutover.
  • • Migration shipped clean, zero duplicate charges, and the note became the team's checklist.
  • • Takeaway: disagree with artefacts, not volume.
Drawn from resume.md · no invented employers

05 / The market

Stealth used to cost $150.
Now it costs $29.

The big copilots gate invisibility behind their most expensive tier — or charge per month what a bootcamp costs. We built the stealth into the base product and priced it for a single job search.

 

included in every paid plan

CluelyFinal Round AIInterview Coder
Monthly price$29$149.99$150$299
Invisible during screen shareTop tier onlyClaimedClaimed
Live interviewer audio
Coding answers + complexityPartial
Keyboard-only operationPartial
No second monitor
Résumé-aware answers

Public monthly list prices, checked October 2026. Cluely's $149.99 tier is the first with undetectability. Feature coverage varies by plan; vendor claims are marked rather than tested.

06 / Pricing

One interview pays for the year.

A human coach is $100–300 an hour. A single bad round costs a month. Keep the copilot for the whole loop, then cancel.

Free

starter

$0

No card. Key by email.

  • 12 AI answers a day
  • 15-minute live sessions
  • All three modes
  • One device, no card
Get a free key

Interview week

one loop

$14.99

/ 7 days

One charge. Ends by itself.

  • Unlimited screenshot solves
  • Unlimited live interview time
  • Full transcript + code panels
  • Résumé / JD context
  • Two devices
most picked

Pro

$29

/ month

Cancel in one click.

  • Unlimited screenshot solves
  • Unlimited live interview time
  • Full transcript + code panels
  • Résumé / JD context
  • Three devices
  • Priority support

14-day refund on the first payment

Stripe CheckoutVAT / GST calculated at checkoutCancel from the billing portalThree devices per seat

07 / Questions

The things you'd ask
before trusting it.

Still unsure? Email support@vayel.ai — a human answers, usually within a day.

Will the interviewer know I'm using it?

On a screen share, no. The window is excluded at the OS level, so Zoom, Teams, Meet, and browser capture all receive a frame without it. It also never takes keyboard focus, so tab-switch and cursor-idle checks stay quiet. A second camera pointed at your screen is the one thing a local overlay can't beat.

Does it work with HackerRank, CoderPad, or CodeSignal?

Yes. Vayel is a desktop window, not an extension, so it doesn't care what's underneath. It floats above full-screen browsers and IDEs on both supported platforms.

Does it work on macOS?

Not yet. Windows ships first. The macOS build is being tested now and will use the same key — buying Pro today covers both when it lands. macOS needs Screen Recording permission and Zoom window filtering; both are already wired.

Do I need a second monitor?

No. The overlay is designed to sit over the problem, inside the same screen, and is moved with the arrow keys so your cursor never travels. A second display just gives it more room.

Which languages can it write?

Python, JavaScript, TypeScript, Java, C++, C#, Go, Rust, Swift, Kotlin, Ruby, SQL, and PHP. LeetCode mode's compile-and-fix pass currently runs Python locally.

Is my audio or résumé stored?

Audio is streamed to the speech model and not retained. Transcripts, screenshots, and your résumé folder stay on your machine. The résumé and job description are re-read locally on every answer.

What are the system requirements?

Windows 10 or 11 for now — 300 MB of disk, 4 GB of RAM. A macOS 13+ build is in progress. Linux is not supported; its capture APIs break the invisibility guarantees.

How do refunds work?

Fourteen days on your first payment, in full. After that, cancel any time and keep access until the period ends. Full policy on the refund page.

Is there a student or new-grad price?

Yes — 30% off Pro with a .edu address. Email support from that address and we'll send a code. It doesn't stack with the launch offer; one at a time.

No second monitor required

Take it to the next round.

Install in under a minute. Twelve free answers a day. Pay only when the loop gets real.

Windows 10+ · macOS soon