15 Tracking applications
Tiago Águeda edited this page 2026-09-22 14:45:33 +02:00

Tracking applications

An application begins as a listing — a posting you noticed — and becomes an application the moment you apply to it. That first stage has its own page: Listings. This one is about what happens from the application onwards.

Statuses

Status What it means
Draft You are considering it. Nothing has been sent.
Applied You sent something. The clock starts here.
Acknowledged They confirmed receipt — a human or an autoresponder.
Screening An initial call or a recruiter conversation.
Interviewing Interviews proper.
Assessment A take-home task, a test, or a technical exercise.
Offer An offer is on the table.
Accepted You took it.
Rejected They said no.
Withdrawn You pulled out.
Ghosted They stopped replying.

The first seven count as still live. The last four are settled.

Ghosted is deliberately not the same as rejected. An employer that stops replying has not made a decision you were told about, and recording it as a rejection would misstate both their behaviour and your own response rate. It is by far the most common ending, and it deserves its own name.

Nothing is ever deleted by changing a status. Rejections and withdrawals are exactly the records that make the interesting questions answerable.

Company logos

A company can have a logo, and it makes a long list of applications much faster to read. There are three ways to give it one, all on the company's page or its form:

  • paste an address. Postulo fetches the image once, from the server, and keeps a copy. It does not put the address in the page: that would ask the company's own server for the picture on every view, telling them which companies you are looking at and when.
  • Find logo, which reads the company's own website — the one public place every company maintains — for the icon it declares: an apple-touch-icon, a declared icon, the logo in its schema.org details, and last the conventional /favicon.ico. One press, one page, a handful of images.
  • upload one yourself.

PNG, JPEG, GIF and WebP. SVG is refused for now: it can carry scripts and references to other files, and accepting it means a sanitiser first. Whatever arrives is decoded and re-encoded to a 256-pixel square, which drops anything else the file was carrying, and is served from your instance like every other file. The most recent action wins, so there is no precedence to remember, and Remove takes it away.

A company with no logo shows its initials, coloured from the name.

Postulo never fetches a logo on its own: an address is fetched when you save it, and a website is read when you press the button. Nothing happens on a page view.

Telephone numbers

A number written down the way it is said locally — 06 12 34 56 78 — cannot be dialled from anywhere else, and six months later nothing in the record says which country it belonged to. So a phone field asks which country the number is for, starting at the one your own language suggests, and keeps what you type in the international form: +33612345678.

The country's flag sits at the front of the chooser, so you can see which country a number belongs to without opening the list. The list itself gives the dialling code and the name — +351 Portugal — and no flag, because a dropdown entry can hold text and nothing else in any browser. With JavaScript turned off the flag still shows the country the page loaded with; it simply stops following the chooser until you save.

Paste a number that already begins with + and it is taken exactly as it is; the chooser beside the box is ignored, because you have already said which country it is for. Type something Postulo cannot make sense of and it is kept exactly as you typed it, because a number nobody can parse is still worth having.

Numbers are shown grouped so they can be read aloud, and linked so a phone can ring them.

Postulo does not tell you whether a number is valid. That would need every country's numbering plan, and it is not going to dial anything.

More than one number

Several telephone numbers is a plugin, and it ships switched on. With it on, you and each of your contacts can have as many numbers as are worth keeping — a mobile, a desk line, a switchboard — with one of them marked primary. The primary is the number a CV and a cover letter print, so nothing downstream has to know there are several.

The kind is yours to leave blank. A number carried over from before this existed has none, because nobody was ever asked, and Postulo would rather show the number alone than call it a mobile because that is the commonest answer.

Switching it off does not delete anything. Postulo shows and uses the primary number only — exactly what it did before the plugin existed — and the page tells you how many others are being kept back. Switch it on again and they are all there, in the order you left them. An export carries every number either way, because an export is what you leave with and a switch is not a decision about your records.

The same shape again for a person's addresses on the web, and this time it is three plugins: Several social profiles, Several code repositories and Several websites, each shipped switched on. Your details used to hold one website, one LinkedIn and one code repository, and a contact one LinkedIn; each of those is a row now, and you can add as many of each kind as are worth showing — a Mastodon beside the LinkedIn, a Codeberg beside the GitHub, a blog beside the site — with one of each kind marked primary. The primary of each kind is what a CV prints, so a header never grows a list.

The kind says what sort of thing a link is — a social profile, a code repository, a website — and never which host, so the next network or somebody's own Forgejo needs no new option. Give a link a name if you want one shown; left blank, Postulo shows the address's host.

Postulo never opens a link on its own. Not to check that it answers, not for an icon, not for a picture. What is recorded is what you typed.

They are three switches because they are three decisions. An administrator content to let people list every forge they publish on may still want one LinkedIn and nothing else on a CV header. Switching one off shows and uses the primary of that kind only — exactly the one box Postulo had before — and the page tells you when others of that kind are being kept back. Nothing is deleted; switch it on again and they are all there. An export carries every link either way, and an archive from before this reads back in with its columns as rows.

One number, one instance

A telephone number is kept once across the whole instance. Type one that is already recorded and Postulo says so rather than taking it from whoever has it.

That message tells you something about somebody else: that an account on this server holds that number. There is no way to enforce the rule without saying so, and a vaguer message would disclose exactly as much while leaving you guessing, so it says it plainly. Nothing else is disclosed — not whose, not where, not when.

Two things sit outside the rule. A number Postulo could not parse has no comparable form, so it is kept as you typed it and collides with nothing. And a number that was already recorded twice before the rule arrived is left alone; the first time you edit one, Postulo tells you.

A number carries a verified state, and on this release nothing is ever verified. Proving a number means sending a code to it, and Postulo cannot yet send to a number at all — so every number here is a claim nobody checked, and the first account to type one holds it.

That is written down rather than left implied, because the state exists for what comes next: a number that could get you back into your account has to be one you proved you hold. When that lands, no number recorded before it will be promoted. Numbers have been first-come first-served since they arrived; granting them verification retroactively would hand a way into an account to whoever typed a stranger's number a month ago. Verification will start empty and be earned, whatever churn that causes.

Two more things about that state, decided now so they are not decided under pressure later. A proof will lapse after a year — people give up numbers and carriers reissue them, which is a failure mode an email address does not have. And only numbers on your own profile will ever count: a recruiter's switchboard is a number you recorded, never a number you are.

Being told a number is already recorded here is now rate-limited. The disclosure itself is unavoidable and deliberate; the same honest sentence asked five hundred times is a list of which numbers have accounts here, so after a score of them in an hour Postulo says when the answer will be available again instead. You will not meet this while recording your own numbers: only the informative answer is counted.

The number that gets you back in

A confirmed number of your own can be nominated as the way back into your account, joining email and a passkey. Two things about it are deliberate.

It is not the primary. The primary is what your CV and letters print — a recruiter dials it. If the same row were also your way back in, changing the number on your CV would silently change how you prove you are you. They are separate choices, and changing one never touches the other.

Switching off several telephone numbers never takes it away. That plugin decides what Postulo shows and uses; it does not decide whether you can get back into your account. An administrator turning a feature off for somebody must not quietly remove their way in, so recovery reads a confirmed number regardless of it.

The choice only appears if this instance can confirm a number at all, which needs a text gateway the operator installed — Postulo ships none. Until then no number is nominated anywhere, and the interlock that keeps mail switched on stays shut for everybody.

Acting on several at once

Tick rows in the table and the bar underneath applies one thing to all of them: add a tag, or move them to a status. The companies table does the same for a field of activity.

Only additive things, and that is deliberate rather than unfinished. Deleting forty applications is a different act from deleting one, and deleting a company takes every posting under it with it — a confirmation naming an unseen number is a confirmation nobody reads. If bulk deletion arrives it will arrive with a design of its own.

Ticks last as long as the page. Change a filter and you get a fresh page with nothing ticked. Every other answer surprises somebody: acting on twelve rows when four are shown is the surprise with consequences, so this is the one that stays.

Select all means this page, and it is a button rather than a checkbox in the header — a header checkbox does nothing without JavaScript, and a control that does nothing is worse than one that is not there. Ticking rows works with scripts off; the button and the running count are what the script adds.

Postulo says how many rows changed, which is not always how many you ticked: an application already in the status you chose has not changed, and nothing outside your own account is ever touched.

One page, two shapes

Applications is one page with two shapes, and a switch beside the Columns control — Table or Board — changes the shape of what is below it and nothing else:

  • the table is everything, settled applications included, sortable and narrowable from its headers;
  • the board is only what is still live, in columns by status. Move one along with the dropdown on its card — it saves immediately.

The search, the filters and the sort survive the switch, because they are one set: narrow the table to quiet applications at Acme and press Board, and that is what the board shows. The shape you choose is remembered with your other table preferences, so the page opens the way you left it; a link can ask for one shape with ?view=board without changing that. The old address /applications/board/ still works and lands on the board.

Because the board shows only what is still live, a filter that matches settled applications — Rejected, say, or Settled — is said on the board, with a link to the same filter in the table, rather than shown as an empty board.

The filters: text search across job title, company and location; status; outcome (live or settled); tag; and gone quiet.

Keeping a view

"Everything I have not heard back on in three weeks" is a question a search asks every week. Narrow a table the way you want it — filters, sort, columns — open Views beside Columns, give it a name and press Keep. It is listed there from then on, on the applications, companies and listings tables alike, and choosing it restores the filters, the sort and the columns together. Each is an ordinary address you can bookmark or send yourself.

One view per table can be what the table opens as: press Open as this beside it, and the bare address goes there. Clear and Plain table are the way back out. A view saved against a table that has since changed — a column renamed, a filter that no longer exists — still opens, shows what it can, and says what it had to leave out. Views travel with your export like the rest of your table settings.

Moving a card on the board

Drag a card to another column and it moves, and the timeline records the change exactly as it would have if you had used the menu — there is no separate path for dragging. The card moves at once and the counts follow; if the server refuses, the page it sends back is the truth.

The menu on each card stays. Dragging fires on neither a touch screen nor a keyboard, so the menu is the way that works everywhere, and dragging is an addition to it. Each menu is named by its own application — the role and the employer — because a board is a page of them and Change status thirty times over is thirty controls you cannot tell apart.

A status chosen with the keyboard is saved when you have finished choosing: press Enter, or leave the menu, and the card moves. Arrowing through a closed menu passes over every status between where you are and where you are going, and each one of those used to be saved — a status change and a timeline entry for a status you never chose. Choosing with the pointer still saves at once, so advancing a card is still one click.

The table

The table is yours to arrange, and the same is true of the Companies table.

  • Sort by clicking a column header; click again for the other direction, and a third time to stop sorting by it and go back to the table's own order. Dates sort newest first on the first click. The arrow shows which column is in charge, and every header also says in words what clicking it would do — including that it would stop.

  • Narrow by typing in the header. Beneath each header that can filter sits an input: text columns match anything containing what you type, dates take a from and a to, counts take a least and a most, and choices such as priority are a list. The table updates as you type; without scripts, the Filter button applies everything at once. Header filters combine with the form above. Clear filters takes everything off and keeps the sort. On a phone the header row is hidden — a row of inputs inside a table at that width is not something you can use — and the same filters sit under Narrow beside the search box instead.

  • Choose and order columns with the Columns control. Tick what you want to see, move columns up and down, pick 25, 50 or 100 rows a page, and Apply. The applications table offers, beyond the usual five: deadline, priority, applied through, salary, tags, last activity, next reminder, next interview and the date recorded. Companies offer people, website, careers page, notes, one column per identifier scheme, last activity and the date added; every one of them narrows, and all but notes and industries sort — notes because an alphabetical order of your own notes means nothing, industries because a company has several. Reset restores the usual layout.

  • Drag a column wider or narrower by its end edge. The handle is a button as well as a drag: give it focus and the arrow keys widen and narrow it, and Home lets the column size itself again. It reports the width it is at, and says the new one after each press, so the keyboard is not the silent way of doing it. Widths are saved as you go. With scripts switched off there is no handle at all and the columns size themselves, exactly as they always did.

Sort and filters live in the address, so a view you have set up can be bookmarked or sent to someone, and the back button works. Which columns show, how wide they are, and how many rows a page holds are a preference: they are saved to your account and follow you to every device.

The timeline

Every application has an append-only log of what happened. Status changes are recorded automatically, including when you change the status from the edit form — there is no way to move an application without the log noticing.

You can add entries yourself: a call, an email sent or received, an interview, an assessment, a follow-up, or a plain note. Each carries the date it happened, which may be different from the date you got round to recording it.

The status field is what the board and filters read. The log is what actually happened. When they disagree, believe the log.

Interviews

A timeline entry says an interview happened. An interview in the diary says one will: it has a start and an end, a place or a link to the call, the people you are meeting, a kind — phone screen, video call, on site, panel, assessment — and notes to prepare with.

Schedule one from the Interviews card on the application page. Three things follow:

  • the timeline records that it was scheduled, and later how it went;
  • a reminder falls due the day before (untick it if you do not want one), so whatever tells you about reminders tells you about interviews too;
  • it appears under Coming up on the dashboard, on the board card, and in the table.

Once its time has passed, the diary asks how it went. Held writes an interview entry on the timeline dated when it took place and moves the status forward if it had not kept up — a phone screen to Screening, an assessment to Assessment, anything else to Interviewing — through the same path as any status change, so the log says so. It never moves a settled application: an interview you remember after a rejection reopens nothing. Cancelled and No-show are recorded too; nothing is deleted.

Recording one that already happened uses the same form: an interview whose time is past is written straight onto the timeline as held.

Every interview has a Calendar link that downloads an .ics file any calendar application imports, and Dashboard → All interviews → Calendar file downloads everything still ahead in one file. Each interview keeps a stable identifier, so importing the file again updates the meeting rather than duplicating it.

A downloaded file is a snapshot. To have the interviews simply be on the phone, and to have a move made there come back here, the operator installs a synchronisation plugin and you add a connection under Settings → Connections: postulo-dav puts the interviews in a calendar called Postulo and the people you are meeting in an address book of the same name, on Nextcloud, Radicale, Baïkal, SOGo, Fastmail or anything else that speaks CalDAV and CardDAV. Only those two collections are touched, ever. Each connection has an interval — fifteen minutes to once a day — that the scheduler honours, and a Sync now button beside it. Moving an interview on the phone moves it here and says so on the timeline; deleting it there never deletes it here.

Calendar

Calendar, beside Reminders in the navigation, draws the dated things of a search by day: the interviews in the diary and the reminders, each a link to the application it belongs to. A month first, the week the 1st falls in to the week the last does; Week, Day and Agenda are the same things in another shape, and the agenda — the next thirty days as a list, days with nothing on left out — is what a phone wants, where a month grid is thirty-one cells of nothing.

It is drawn by the server, with no script: Earlier, Today and Later are links, and the period is in the address (?month=2026-09, or ?view=week&on=2026-09-15), so a month is bookmarkable and the back button works. A cell in the month shows two of its events and counts the rest; the day number, and the count, open that day. A reminder you have done, and an interview that was cancelled, are drawn struck through rather than dropped, because the month is a record as well as a plan. Days are your days: the time zone under Settings → Language and time decides which day a late reminder falls on.

It shows four kinds of thing: interviews, reminders, an application's deadline and the day a listing closes. The last two are whole days rather than times, because nobody knows the hour an employer stops reading. A deadline you have already applied by, and a listing you have decided about, are drawn struck through — the same rule as a done reminder.

The key along the top says which colour is which, and it is also the filter: click a kind to take it off the calendar, click it again to put it back. What is showing is in the address (?kinds=deadline,closing), so a calendar narrowed to deadlines is a page you can keep.

An appointment at the employment office is the obvious next thing to put on it; it is not there yet.

Your diary file carries the dates too. interviews.ics — Subscribe on the interviews page — holds the deadlines and closing dates of the next six months as all-day entries beside the interviews, marked free, so they appear along the top of the day without making you look busy to anyone who can see your calendar.

Suggestions

A plugin that reads for you — a mailbox, through postulo-imap — never writes anything into your record. What it works out lands under Applications → Suggestions: what the message says, which application it seems to be about, who it came from, and the phrase that was recognised.

Each one waits there until you accept it, which writes it onto the timeline exactly as your own typing would (and moves the application, when the suggestion says so — a rejection to Rejected, an invitation to Interviewing), or decline it, which writes nothing. Every entry an accepted suggestion produces says which plugin it came from, so you can always see what was decided for you and undo it.

Neither answer is asked for twice: a message you declined is never suggested again. One that could not be matched to an application says so, and you pick the application yourself before accepting it. The dashboard tells you when something is waiting.

Gone quiet

An employer that simply stops replying is the most common ending, and Ghosted exists to record it. Postulo now notices the silence before you name it. An application has gone quiet when it is still live, was actually sent, nothing has happened to it for 21 days — change the number under Settings → Appearance — and nothing is planned: no reminder ahead of it, no interview in the diary. If you have already planned the next step, it is not quiet, it is waiting.

The dashboard lists them, longest silence first, with three things to do about each:

  • Followed up records the follow-up on the timeline;
  • Snooze sets a reminder two weeks out, which makes the application waiting rather than quiet;
  • Ghosted moves the status, through the timeline, so the record says when you stopped waiting.

The board card carries a Quiet for n days badge, the table has a Gone quiet filter, Insights counts them per source and per company, and — if you have a notifier connection with Applications go quiet switched on — the scheduler tells you when applications newly fall silent, once per silence. All of these use the same rule, so the numbers agree.

Reminders

Reminders are a note plus a date. Overdue ones are highlighted, and anything due appears on the dashboard.

A reminder appears in the application and on your dashboard when its time comes. To be told — by email, or by whatever a notification plugin speaks — add a connection under Settings → Connections and tick A reminder falls due. The built-in Email notifier needs only an address and the instance's mail settings; the operator must also run the scheduler that notices reminders falling due (see Configuration). Each reminder is announced once.

Changing one. The menu beside a reminder — on the reminders page and on an application's — puts it off until tomorrow or next week, opens it for editing, or deletes it. Putting one off moves it; it does not make a second one, and it is announced again at its new time. Editing is where an exact day and hour go, and where a summary typed in a hurry gets fixed. Both are also in the API: PATCH /reminders/{id} and DELETE /reminders/{id} (see The API).

Offers

When an offer arrives, record it from the application's page — Record an offer — in the terms it came in: the base pay as a number with its currency and period, and the rest as text, because a bonus is "10% on target" and equity is a sentence. Recording one moves the application to Offer and writes the timeline; an answer by date goes on the calendar with a reminder the day before. Offers get revised: record the revision on the same application and each change is written as one.

Offers (from the card, or /applications/offers/) puts every application standing at Offer side by side, one column each, with the base pay brought to a year within its currency so a monthly figure can be read against an annual one. Nothing on it scores or recommends. It is a real table, and on a phone each term becomes a card naming each employer's answer. Offers are in the API under /offers (read) and travel with your export.

Closing soon

A listing you have not decided about, with a closing date, is worth being told about before it closes rather than after. Tick A listing you are considering closes soon on a connection under Settings → Connections, and set how much warning you want under Settings → Appearance → Closing soon — three days unless you say otherwise.

Only listings you have not decided about are counted: one you have applied to is not urgent, and one you discarded is not wanted. Each is announced once, and again if you move its closing date, because a deadline brought forward is news.

Tags

Free-form labels of your own invention — remote, dream job, via Marie, whatever fits how you think. Manage them under Dashboard → Manage tags, and filter by them anywhere.

Companies and people

Companies are created for you when you record an application. Opening one shows every posting you have recorded there and every application you have made.

Contacts are the people: recruiters, hiring managers, a friend on the inside. Add them from a company page. An application can name one of them as its main contact.

The employment service

The public employment service you are registered with — France Travail, IEFP, the Bundesagentur für Arbeit, SEPE, Jobcentre Plus, UWV, Forem — is a place you deal with throughout a search and never apply to. Record it as a company of the employment service kind: the company form has a Kind box, and beside it a list of the services Postulo knows, by country. Pick yours and leave the name blank, and the name and website are filled in; anything you type is kept instead. Your adviser is a contact at it, like anybody at any company, and its postal address and telephone numbers work the same way.

What the kind changes: the office is never counted as an employer. It is left out of the report's tallies by industry, and the report is addressed to it — For France Travail, adviser so-and-so — on the page and on the PDF. On the companies page it is listed with a chip beside its name, and the optional Kind column narrows the table to offices or to employers. An application you made through the office's own listings can say so: Employment service is one of the answers to applied through, and the report counts those separately, because that is the number the office asks first.

Every company recorded before there were kinds is an employer, which is what it was.

Departments

A contact can be recorded as being in a team: engineering, legal, the Lisbon office. Type the name on the contact form and it joins that company's list; type one already there and it is reused. Clearing the box takes the person out of the team and leaves the team alone, because a department does not stop existing when one person moves out of it.

A department is not a small company. It has no website, no logo, no identifiers and no postings of its own; it belongs to exactly one company and travels in your export inside that company's block. Deleting a department leaves its people where they work — they are still at the company — and deleting the company takes its departments with it.

One company inside another

A company can be recorded as part of another. Applying to Google, to DeepMind and to Waymo is applying to three companies you already know are one group; saying so on the company form means the page names the owner and lists what belongs to it.

A company's name opens the company, and the pencil beside it renames. The name is a link to the company's page, as a name is in every other list. Press the pencil and the cell becomes a box; Enter saves, Escape puts it back, and focus stays on the pencil rather than throwing you to the top of the page. If the name clashes with one you already have, the refusal appears in the cell with the value that caused it, in the same words the company form would have used — because it is the company form, narrowed to one field. If somebody else changed the row while you were typing, the save is refused and you are shown what it says now, rather than quietly overwriting them.

Only the name. A count is not editable because it is a count, and a date read off a posting belongs to the posting. With scripts switched off, the pencil opens the company form, which is the whole record with every field open at once.

Nothing is inherited. A subsidiary keeps its own industries, its own logo, its own notes. An inheritance rule would be one more thing to hold in your head, and naming the parent on the page is what you actually wanted to know.

Three things are refused, each saying why: a company cannot be part of itself, a chain cannot close into a loop — and the message names the company whose link would close it, because "not allowed" leaves you looking down a list of subsidiaries guessing — and a chain cannot go more than ten deep, which is far past any real ownership structure and stops a mistake becoming a page that walks for ever.

The relation travels in your export, written as the parent's name rather than as an internal number, so a restored archive keeps its groups.

Which part of the employer an application was for

An application can name a department as well as a company: not Google, but Google's engineering team.

The company is still the employer. Naming a department adds detail to the link the posting already carries; it never replaces it. That matters more than it sounds — it is the reason the whole structure can be switched off without leaving an application attached to a team with no employer behind it.

Any department anywhere in that employer's group may be named. An application through the Irish arm can be for the group's engineering team, and refusing that would make the group decorative. A department at another employer is refused, in a sentence saying which employer it is at.

The box appears only when the employer has a department to choose. A department that is later renamed out of existence leaves the application where it is, at the company.

Counting the group, or counting the company

Once an employer is more than one company, every count has two readings, and Postulo says which one it is showing.

A company page counts that company — the same as it always did. Where the company is in a group it offers Across the {group} group beside the heading, which counts every company in the tree and names the company each posting is at. The choice is in the address, so a page counting a whole group is a page you can bookmark and send.

Changing what a number means without being asked would be the other half of the same mistake, which is why the default never moved.

The companies table can show a Part of column: the company each row belongs to, as you recorded it. Its name is a link that narrows the table to that whole ownership tree — grandchildren included — so show me everything under Alphabet is one click. Each row still counts itself, which is true and visible.

Switching all of this off

One company is part of another, departments, and which part an application was for are one feature — Employers with a structure — and an administrator can switch it off, for one person or for the whole instance, under Server settings. Like every plugin Postulo ships, it is not a switch on your own Settings → Plugins: that page shows what was installed on the instance, and Postulo's own plugins only when you ask to see them.

Off is exactly what Postulo did before any of it existed. One company per posting, one name on the page, contacts hanging directly off a company. Nothing is deleted to get there: the parent links, the departments and the attachments stay exactly where they are, and the day it is switched back on they are all still there.

Industries are the fields a company operates in, in your own words, and a company may be in several — a bank that is also an insurer and a software house is all three. Tick the ones you already use on the company form, or type new ones separated by commas. The companies table shows them all and filters by any of them, the search box matches them, Insights reports applications and outcomes by industry (a company in three fields counts in all three), and Companies → Industries is where you rename one, merge two spellings of the same thing, or delete a word you no longer use — deleting a word never deletes a company.

In the table they are labels too, up to four of them; past that the rest are counted, because a cell that grows without limit pushes every other column off the screen. Filtering by industry is a box you type in rather than a menu — the same control whether your vocabulary holds five words or three hundred.

Companies → Industries is where you manage the list. Once it holds more than a handful there is a search box that matches the name or the NACE code, each row shows its code where it has one, and Edit or merge is where two spellings of one thing become one. Only fields you have actually given to a company appear there: the long list on the company form is a list of suggestions, not a list of rows.

They are shown as labels. The ones a company is in appear as removable chips; typing in the box beside them finds one you already have, or adds one you do not. A name that does not exist yet is drawn differently — outlined rather than filled — so you can see it is new before saving, which is what stops Fintech, FinTech and fintech from being created and then quietly collapsed into one. Tags on an application work exactly the same way, because it is one control rather than two.

With scripts switched off you get the tick boxes and the multiple select that were always there, and the form does the same thing. The labels are an addition, never a replacement — the same rule the board's dragging follows.

What the suggestions are. Two vocabularies, in one list. First a short set of familiar words — Software, Banking, Gaming — because those are what people actually type. Then the 87 divisions of NACE Rev. 2.1, the European Union's classification of economic activities: everything from Mining of metal ores to Water collection, treatment and supply, which the short list had no word for. Eurostat publishes those names in all 24 official EU languages, so they arrive already translated; in a language the EU does not publish, you see the English name and type your own word instead.

They are suggested and never imposed. NACE classifies the business, not the job: applying to a bank's software team is applying to Financial and insurance activities, which is true of the employer and not much use to you. So Fintech remains a perfectly good industry, and always will. If the word you pick happens to be a NACE division, Postulo quietly records its code beside it — which is what makes a report legible to an employment office that thinks in those terms. Nothing you already had was renamed, merged or given a code retroactively.

Identifiers tie a company to a public record, so it can be recognised wherever it turns up — in a spreadsheet you import, in a posting a browser extension captures, in another account's export — without anyone comparing spellings. A company can carry one of each: a Wikidata item (Q…), a Legal Entity Identifier (the 20-character LEI, checked for its check digits), an ISNI — which most universities have, and which is what an EU application form asks an institution for — a company register number with its country (PT 501234567, FR 552081317, DE HRB 12345), a LinkedIn, Crunchbase or OpenCorporates slug, and any number of Other ids with a name of your own (a DUNS number, an internal supplier code). Paste a whole address if that is what you have; Postulo keeps the id and links it back. One id names one company: giving a second company the same Wikidata item is refused with the name of the one that has it, because that is exactly the duplicate identifiers exist to prevent. The companies table has an optional column per kind, the search box matches the values, and the CSV importer, the API and the export all carry them — a row or a request that names the employer's Wikidata id finds your company by it even if it spells the name differently.

Companies are private to your account. Two people sharing an instance each keep their own record of the same employer, and neither can see the other's opinion of them.

Finding things

The search box in the header — press / to jump to it — looks through everything you wrote or kept: listings, applications and every line of their timelines, companies and people, reminders, cover letters, CVs, your files' titles and notes, your career record, and the text of what you sent, so "what did I claim in that CV?" is answered without opening a PDF: the hit says in the CV you sent to Black Mesa on 12 May and links to the application. Results come grouped by kind, a few per group with the passage the term was found in and a link to all of them; closed applications and discarded listings are included, because you are looking for something you remember. Matching is on words as you typed them, in any capitalisation.

Not retyping adverts

Paste a posting's address and Postulo will read the page for you — see Capturing postings. What it reads lands in your Listings, and applying from there is one short form.

What the record adds up to

Insights turns the timeline into figures: how far applications get, what share are answered at all, how long employers take, and which sources actually convert. See Insights.