InterviewBeacon Security

Nothing about your interview ever reaches a server we operate — no analytics, no telemetry, no crash reporting. That's possible because your audio is captured and transcribed locally on your own machine and never leaves it; there's no InterviewBeacon server anywhere in the audio path at all. What network activity does exist is limited to five specific, narrow connections, each detailed below: your own LLM provider (using your key), LemonSqueezy for license checks, GitHub's public API for update checks, a free-tier hint counter (hashed device ID, free tier only), and — once you activate a paid license — an activation log (your license key plus a hashed device ID, so a key shared across many devices can be spotted).

At a glance

Network connections the app makesFive: your LLM provider (your key), LemonSqueezy license API, GitHub public releases API, a free-tier hint counter (hashed device ID, free tier only), and a paid-license activation log (license key + hashed device ID, paid tier only). Nothing else.
AudioCaptured and transcribed locally (an on-device speech-to-text model), processed in memory, never written to disk, never transmitted.
What leaves your machineOnly the text of a transcribed question (and an optional screenshot), sent directly to your own LLM provider — plus a hashed device ID to the hint counter, free-tier only. Never anything audio-shaped, never interview content, to us.
Where your API key livesOS-native secure storage — macOS Keychain / Windows Credential Manager — never a plaintext file.
Analytics / telemetryNone. No product-usage tracking of any kind.
Code signing — macOSSigned with an Apple Developer ID and notarized by Apple.
Code signing — WindowsNot yet signed (disclosed below).
Release checksumsSHA-256 published for every release.
Open sourceNo — the client source is not public today.

Every network connection this app makes

This is the complete list — not examples. You can confirm it yourself with a network monitor while the app runs.

1. Your own LLM provider. Eitherapi.anthropic.com/v1/messages orapi.openai.com/v1/chat/completions, depending on which you choose — connected directly from your machine to the provider, using your own API key. This happens only when you actually submit a question. There is no InterviewBeacon server in this path; your request goes to Anthropic or OpenAI and nowhere else.

2. LemonSqueezy's License API.api.lemonsqueezy.com/v1/licenses/activate and /validate. This happens when you enter a license key, and then roughly once every 30 days for a silent background revalidation. If you're offline when that check would run, it's a no-op — it doesn't block anything or interrupt you. Freeing up a device slot is self-serve, done from your own LemonSqueezy account portal, not from inside the app.

3. GitHub's public releases API. InterviewBeacon and SyntaxCue are the same underlying app, built and maintained by the same solo developer, distributed from one shared public releases repository: github.com/ZetBaur/syntaxcue-releases, once per app launch, to check whether a newer version exists. No account, no auth token — it's the same public endpoint anyone can curl. If a newer version exists, the app shows a note. It never auto-downloads or auto-installs anything.

4. A free-tier hint counter — free tier only. A Cloudflare Pages Function the developer operates, currently reachable atsyntaxcue.com/api/trial-hint — the same backend infrastructure shared across both of the developer's products, since it's the same app under the hood. Here's exactly what it does and doesn't see. It exists because the original design — a hint counter in a local file — turned out to be trivially defeated by deleting and reinstalling the app, with no technical skill required, which undermines the whole point of a metered free tier. The app sends a hashed hardware identifier (hashed with SHA-256 before it ever leaves your machine, so the raw ID never reaches us) to check and record your remaining free hints. It receives nothing else — not your name, email, audio, transcribed text, screenshots, or AI answers. This call happens once when a hint is requested and once after, to record it used. It stops entirely the moment you activate a license — a paid copy never contacts this endpoint, ever. If this endpoint is unreachable, the app failsclosed: it blocks the hint rather than silently allowing one.

5. A paid-license activation log — paid tier only. Also a Cloudflare Pages Function operated by the same developer, at syntaxcue.com/api/license-activation. It exists to catch the one gap self-serve licensing has no technical way to prevent: a person deactivates their license and hands the key to someone else, who activates it on a different device. There is no DRM against this — see below — but this is how it's watched for. Each time you activate a license, the app sends your license key as-is(it's proof of a $79 purchase, not a secret the way an API key is) plus ahashed hardware identifier, the same kind used for the free-tier counter. A key seen on an unusually high number of distinct devices gets flagged for manual review — there is no automatic revocation. This call happens only on activation, never on ordinary use, and never for the free tier.

That's all of it — five connections, no analytics beacon, no usage statistics, no crash reporter, and nothing about your interview reaches any server we operate.

What never leaves your machine

Your settings (provider choice, interview context, hotkeys) and license state are stored as plain local JSON files in the OS's standard per-app data directory. These are preferences, not secrets — which is why they're not in the Keychain, but your API key, which is a secret, is.

How to verify your download

Every release on github.com/ZetBaur/syntaxcue-releases publishes a SHA-256 checksum of the installer in that release's notes. One thing worth knowing before you download: the installer and the installed app are named"SyntaxCue," not "InterviewBeacon" — it's the same shared build (see the note above on the GitHub releases connection). Nothing else about the app changes. To confirm the file you downloaded matches what was published:

macOS:

shasum -a 256 /path/to/SyntaxCue.dmg

Windows (PowerShell):

Get-FileHash C:\path\to\SyntaxCue-Setup.exe -Algorithm SHA256

Compare the output against the value posted on the GitHub release page. If they match, the file wasn't corrupted or swapped in transit. This confirms the file you have matches what was published under that release tag — it is not, by itself, proof of what's inside the app, since there's no reproducible-build setup today that would let you independently verify the binary was built from a specific source.

What we don't do (yet)

Stated plainly, because vague reassurance would defeat the point of this page:

InterviewBeacon is a solo-developer product, and these are the honest current limits of what you can independently verify. The things you can verify today — every network connection, local-only audio, where your key is stored, and the download checksum — are listed above specifically so you can check them yourself.

How to report a security issue

Found something? Email us directly — the same address used for all feedback, listed on the Contact page. There's no public issue tracker or bug bounty (it's a solo-developer product), but security reports are taken seriously.

FAQ

Is InterviewBeacon open source?

No. The client source code is not public today — the main development repo is private, and the only public repo hosts compiled release binaries, not source. So you can't audit the source. What you can verify independently: every network connection the app makes (with a network monitor), that audio stays local, and that your download matches the published SHA-256 checksum.

Do you store my interview audio?

No. Audio is transcribed locally on your machine, processed in memory, and never written to disk or transmitted anywhere. There is no InterviewBeacon server for it to go to. The only thing that leaves your machine is the text of a transcribed question, sent directly to your own LLM provider.

What if my license key or API key leaks?

Your API key is stored in your OS's secure storage (Keychain / Credential Manager), not a plaintext file, and clearing it in the app deletes that entry. A purchase activates on 1 device; to free up that slot, use the self-serve deactivation link in your LemonSqueezy account portal and activate again on the new device. If you believe your provider API key is exposed, rotate it in your OpenAI or Anthropic dashboard.

How do I know the file I downloaded is genuine?

Every release publishes a SHA-256 checksum in its GitHub release notes. Run "shasum -a 256 <file>" on macOS or "Get-FileHash <file> -Algorithm SHA256" in Windows PowerShell and compare against the posted value. A match confirms the file wasn't corrupted or swapped in transit. The macOS build is also Apple-notarized.

Is the Windows build safe if it isn't signed yet?

The SmartScreen notice appears because the build isn't code-signed yet, not because the file is unsafe — signing is planned. You can verify the download yourself with the published SHA-256 checksum before running it, and get past SmartScreen with "More info" then "Run anyway." You don't need to disable any security software to do this.

Get InterviewBeacon

Download it, check every claim on this page yourself, and decide from there.

A network monitor and a checksum tool are all you need to check every claim on this page yourself, before or after you buy.