12 Home
Tiago Águeda edited this page 2026-09-16 19:02:09 +02:00

Postulo

A self-hosted job application manager, written from the applicant's side of the table.

Every applicant tracking system on the market is built for the company doing the hiring. Postulo is built for the person applying: your applications, your CVs, your cover letters, and the record of what actually happened, on hardware you control.

From the Latin postulō — "I apply for". First person, deliberately.

Status: 0.3.0. Usable and used, but by one person, for weeks rather than years: treat it as something that works rather than something that is mature. Releasing is a deliberate act here, so main may be ahead of the last tag. Roadmap says exactly what is in and what is not.

Never paywalled

No feature of Postulo is, or ever will be, behind a paywall. People looking for work are, more often than not, people who cannot afford to pay for the tools to find it. Everything this software does is available in full to everyone who runs it — no paid tier, no "pro" edition, no licence key, no feature that unlocks later. That is a commitment, not a strategy, and it does not change.

If it is worth something to you

Voluntary support is this project's only income — not its main one, its only one. There is no company behind Postulo and no paid tier waiting to appear once enough people depend on it. One person writes it.

Buy me a coffee — scan to open buymeacoffee.com/tiagoagueda

Nothing is owed and nothing is unlocked by it. And nothing a person is shown while using Postulo to look for work will ever ask for money: no banner in the interface, no prompt, no reminder on the dashboard. Inside the application the question is put once, on Server settings → Overview — the page for whoever runs the instance — and nowhere else.

If money is the wrong thing to give — and for a lot of people looking for work, it is — a bug report, a translation reviewed by somebody who actually speaks the language, or telling one person who needs this that it exists are worth as much.

Modular by design

Anything that could reasonably vary sits behind an interface that a separately installed package can implement — where a posting is read from today; how you are notified and how documents are rendered next. Postulo's own implementations are plugins that happen to ship in the box, and a plugin written by somebody else is installed with one command and no change to Postulo. The person who cares about a particular job board, or a particular way of being notified, should never have to wait for this project.

Secure, because of what it holds

Postulo holds the most personal documents a person has while looking for work, and it is built as if that were the only thing that mattered. A CV carries a home address, a phone number and a full employment history; a timeline says who has and has not replied. So the code and the data are kept as secure as the project knows how to make them: every record is owned and every query is scoped, files are never served without a permission check, the browser is held to a strict content security policy, nothing is fetched from the network without a deliberate decision, and the test suite includes security tests — ownership sweeps, policy checks, the things an attacker would try — that fail the build. Dependencies are checked for known vulnerabilities on every run and on a schedule, so a fresh disclosure is noticed without anyone having to remember to look. A security report is handled before any feature is; see the security policy.

Built for everyone

Postulo is meant to be usable by everyone, at its fullest, including people with disabilities. Looking for work is hard enough without the tool getting in the way. So the interface is server-rendered HTML that works with scripts off, every control can be reached and operated from the keyboard, images and icons carry names or are marked as decorative, colour never carries a meaning on its own, changes on the page are announced to screen readers, and the pages are checked against the accessibility guidelines (WCAG 2.2, level AA) as part of the browser tests rather than as an afterthought. When a feature cannot be made to work for someone, that is a bug, and it is filed as one.

Start here

If you want to… Read
Put Postulo on a server Installing Postulo
Understand a setting Configuration
Use it for the first time Getting started
Keep on top of applications Tracking applications
Stop retyping adverts Capturing postings
See what the record adds up to Insights and the dashboard
Show an employment office you have been looking Reports
Write your CV once and tailor it Your career record and CVs and portfolios
Reuse a letter properly, of any of the four kinds Letters
Know what you sent to whom Files and what you sent
Share the instance with someone Accounts and invitations
Not lose everything Backups and your data
Capture from a script or extension The capture API
Fix something Troubleshooting

What it does

  • Tracks applications from a posting you spotted through to an offer, with an append-only timeline that records what happened and when.
  • Holds your career once — every role, qualification and skill written down a single time, with CV variants selecting from it rather than copying it.
  • Tailors CVs per role without forking your history.
  • Keeps what you actually sent, frozen as a PDF at the moment of sending.
  • Stores files you already had, versioned, and never serves them publicly.
  • Tells you what is working — how far applications get, how long employers take, which sources convert — read from the timeline rather than from current statuses.
  • Reads a posting from its address, and asks you to confirm it before recording anything.

What it will not do

  • Apply to jobs for you.
  • Send anything anywhere on your behalf. Postulo records what you sent; you still send it.
  • Phone home. There is no telemetry, and no outbound request Postulo makes on its own.
  • Charge you for any of it, now or later.