Argus
A desktop app for keeping track of opportunities, staying ahead of deadlines, and preparing applications without losing sight of the details.
- My role
- Product, design, architecture, engineering, testing and release
- Platform
- macOS and Windows
- Status
- Private beta, v0.12
- Year
- 2026


The idea
The job search was scattered across too many places. I wanted one place to manage it.
Jobs, scholarships and programmes each came with their own links, forms, deadlines and requirements. I wanted a way to capture an opportunity when I found it, keep the important details together, and make the next step obvious.
Argus runs on your computer. You can add an opportunity from a link, screenshot or photographed poster, track its deadline, review how well it matches your experience, tailor your CV, and prepare an email in your Drafts. It does not send an application for you; you review it and decide when to send.
This page covers how I built Argus. The product site has the full feature overview.




Screenshots use synthetic test data.
How it’s built
Keep the architecture small, and make the important parts explicit.
| Layer | Choice | Why |
|---|---|---|
| App | Python, Flask and SQLite in one processKeeps the application and its data straightforward to run and maintain. | Keeps the application and its data straightforward to run and maintain. |
| Desktop window | pywebview and PyInstallerA desktop application without shipping a full Electron runtime. | A desktop application without shipping a full Electron runtime. |
| Interface | Preact and htm as ES modulesAn interactive interface without a large build toolchain. | An interactive interface without a large build toolchain. |
| AI | Gemini, Claude or a local model, selected by taskLets the user choose a provider and decide which model handles each task. | Lets the user choose a provider and decide which model handles each task. |
| Secrets | OS keychain and encrypted CV storageKeeps sensitive values out of plain configuration files. | Keeps sensitive values out of plain configuration files. |
| Releases | GitHub Actions triggered by version tagsProduces Apple Silicon, Intel and Windows builds from the same release process. | Produces Apple Silicon, Intel and Windows builds from the same release process. |
Decisions that mattered
Applications stay under the user’s control
Argus prepares an application and leaves the email in Drafts. It doesn’t send messages under someone’s name without their approval. I wanted the automation to save time without taking away the final decision.
Prepare in batches, review one at a time
An early design had a separate multi-step wizard for every application. I changed it to a queue: prepare several in the background, then review each result in one place. That better fits the way a real job search works.
Local-first, with clear choices about AI
A job search contains personal information. The core records live on the user’s computer, and tasks can be directed to a local model instead of silently falling back to a cloud provider. When a cloud model is selected, the data sent to that provider depends on the task and the provider chosen.
Don’t make an older computer do unnecessary work
Long-running AI tasks run in the background, and the app doesn’t download large dependencies at runtime. The goal is to keep it practical on everyday hardware, including machines that aren’t new or particularly powerful.
Where it stands
Private beta · v0.12
Argus is currently invite-only. Releases include plain-language notes, the test suite has more than 650 cases, and beta telemetry is limited to anonymous usage counts rather than the contents of opportunities, CVs or API keys.
- v0.9.0First private beta, with capture, reminders, CV matching and discovery.
- v0.10.0Invite-only access, a full Settings page, one-click data export and a plain-language telemetry disclosure.
- v0.11.0Redesigned interface, batch applications, career memory and CV tailoring that preserves document formatting.
- v0.12.0Applications prepared as one PDF, capture from a phone through Telegram, and updates without a restart.
The current builds aren’t code-signed, so macOS and Windows may show a warning on first launch. I’d rather be clear about that than leave people wondering what it means.
Next project
Principia Works
The cybersecurity startup I founded to show people and organisations what attackers can learn about them from public information.
Explore Principia Works