What's new
Every change worth telling you about, newest first. Written for someone using it rather than someone reading the code.
A rebuild really cannot copy the old version now
v2.36.2 · 20 August 2026
- The previous fix relabelled the old resume and asked the writer not to copy it. The very next rebuild copied it anyway, character for character — an instruction not to take a shortcut loses to a shortcut left in the room.
- On a plain rebuild the old version is simply not there any more; the writer starts from your record because there is nothing else to start from. When you attach feedback, the old version comes along clearly labelled — your notes are about it, so the writer needs to see it — but it still cannot sit where the new document goes.
Rebuilding a resume actually rebuilds it
v2.36.1 · 20 August 2026
- Pressing rebuild handed the writer its own previous resume, already complete, at exactly the spot it was told to write the new one — so it did the sensible thing and handed it straight back. You paid a few cents for a copy of what you already had, and any improvement the rebuild was meant to pick up never happened.
- The previous version now arrives clearly labelled as the previous version. The writer can look at it, but it has to write the new resume from your record.
Resumes stop reading like a machine wrote them
v2.36.0 · 20 August 2026
- A resume we built was run through an AI detector and flagged. The facts were fine — the giveaway was the machinery: every bullet poured into the same sentence shape, the same coined phrase reused three times, an em-dash every few lines, a tilde in front of every number.
- The builder now writes every bullet with the same evidence discipline as before — what happened, how it was measured, how it was done, all traceable to your record — but varies the grammar the way a person does, and prefers your own words from your interviews over resume-speak. No more 'spearheaded', no more 'leveraged', no coined phrase used twice.
- Every build is now also measured against the tells we found, deterministically and at no cost, so if the style ever drifts back it shows up in the logs as numbers rather than as a rejection email.
Some employers' job boards were failing to read at all
v2.35.1 · 19 August 2026
- Forty-one employers on Teamtailor were erroring every time we tried to read their openings, and had been for days. Their feed comes in two different formats and we only understood one of them — on the other, our code ended up reading the labels instead of the jobs. Both formats work now, and those boards are being read again.
- A second, wider fix behind it: job boards describe themselves in a standard format that allows any field to hold either one value or a list of them. We assumed one value everywhere, so an employer listing two versions of their own name could stop their postings being saved. Every field a board sends us is now normalised at the point it arrives, rather than in the thirteen separate readers that would each have to remember.
Reading jobs 2.6x faster, so California is done in about a week
v2.35.0 · 19 August 2026
- Every job has to be read properly before it can be scored well, and that reading was running at almost exactly the rate new jobs arrive — so the queue never got shorter. About 190 Californian jobs turned up per cycle and each cycle read 200.
- Each cycle now reads 520. The 58,700 Californian and remote jobs waiting should be read in about a week rather than never, and after that it keeps pace with a wide margin.
- The admin page was also flattering itself. It estimated the reading rate from how often the work is scheduled rather than how often it actually ran — 24 times a day against a real 15 — so it overstated progress by 40%. It now counts what ran, and reports California separately from the whole country, because those are a week and three months apart and only one of them is the thing being worked on.
California jobs get read first
v2.34.0 · 19 August 2026
- Reading a job properly — pulling out the skills, the seniority, the pay, the things scoring depends on — costs money, so there is a queue. That queue was national: 636,000 jobs waiting, and at the rate we get through them, about six months to the end of it.
- The 46,500 of those that are actually in California now go first, with remote roles beside them. That is about a fortnight's work rather than six months — so instead of a thin scattering of properly-read jobs everywhere, the roles you can actually take get read within days.
- Jobs whose employer never published a location go next, because a missing location is a gap in their posting, not evidence the job is in Ohio. Everything else still gets read, just after those two. Nothing is excluded and nothing disappears from search — this only changes what we pay attention to first.
New employers are being found again, and the search for them stopped crashing
v2.33.0 · 19 August 2026
- The part of the system that goes out and finds new employers had quietly stopped. It was down to one company in its queue, out of 233,675 waiting — so for two days nothing new was being found and nothing said so.
- The cause was a rule we added last week to keep the alpha focused on California. It asked whether an employer hires in California before looking at their job board — but their job board is the only place that answer comes from. So the rule excluded exactly the employers it needed to look at in order to decide. Finding a board is cheap and is now done for everyone; the California rule still decides who we keep checking back with, which is where the real cost is.
- The same rule had stranded 1,055 employers whose boards we hold but had never managed to read once. Each of those now gets one read, which is enough for them to be judged on their own postings rather than on no information at all.
- Separately: the container doing that searching had been killed by the server 3,217 times in two days — about once every 16 seconds — and restarting each time. It had a limit on how much of a web page it would download, and the limit was measured before the page was unpacked. Pages arrive compressed, about five times smaller than they really are, so a page inside the limit could be five to eight times over it once opened. It now measures the unpacked size, which is the number that actually has to fit in memory.
- The admin health page will now say so if either of these happens again, rather than reporting everything as fine.
Interviews that stopped mid-conversation can be continued again
v2.32.0 · 19 August 2026
- If your interview answered you with "the model call failed", it will work now. Every unfinished interview in the system was affected — and your answers were never lost, so pressing send picks up exactly where you stopped.
- What happened: the AI model behind the interview was retired by the company that hosts it. We deliberately fix the model for the length of a conversation so it cannot change personality halfway through — which turned out to mean that when the model disappeared, those conversations were pinned to something that no longer existed, and repairing our settings could not reach them.
- Fixed for the conversations already stuck, and the code now notices a model that has gone away and moves the conversation to the current one instead of failing forever.
Telling us something is broken is now one tap from anywhere
v2.31.0 · 16 August 2026
- There is a "Something wrong?" line at the top of every page. Tap it, type what happened, send — you stay exactly where you were, and it goes straight to Dylan with a note of which page you were on.
- It was already possible and almost nobody would have found it: the form lived on the News tab alone, while the help page and the error page both told you it was at the bottom of every screen. It had not been there for nine days. Those three pages now say where it actually is.
- Ideas and compliments still have the fuller form on News — this one is for when something is broken and you should not have to go looking.
- Also in this release: the model behind several features had been retired by its provider and every call to it was failing. Repointed at the current version.
"Read my documents" failed for anyone who named a file after themselves
v2.30.1 · 16 August 2026
- If you uploaded a CV called something like "Smith Resume.pdf", the step that reads your documents refused to run — every time, for everyone it happened to.
- The reason is the safety check working slightly too well. Before anything is sent to a model we strip your name out of it, and then re-read what is about to go to make sure none of it survived. We were stripping the CONTENTS of every document and then writing the file's own name at the top of the page — so the check found your name, correctly refused to send, and the feature stopped dead.
- Nothing was ever exposed: the refusal happens before the request leaves, and every one of those runs cost nothing. But the effect was a button that quietly did not work, and two people hit it and gave up.
- Filenames now go through exactly the same redaction as the text inside them — and the two halves of that check, the part that removes your name and the part that verifies it is gone, now share one rule instead of two that disagreed about whether a file called smith_resume.pdf counts.
The alpha narrows to employers with a California presence
v2.30.0 · 16 August 2026
- We had been trying to track every employer in the United States — 460,000 companies, 15,000 job boards, a store approaching 700,000 postings — and the arithmetic said a full sweep of it took nineteen days. A job found nineteen days late is a job somebody else got.
- Every employer now carries a verdict: does this company hire in California? Decided from its own job postings first — a bank headquartered in New York that staffs a San Francisco office counts, because its own board says so — with headquarters data as the fallback when the board says nothing. Every verdict records the reason it was made.
- Measured before switching: employers with a California presence are one in five of the boards but carry HALF of all the postings we have ever found. The reading and decoding effort now goes entirely to them, which turns the nineteen-day sweep into hours — new California roles appear the day they are posted.
- Employers who post only remote roles are in: a remote job is fully takeable from California.
- Nothing already found was hidden. Out-of-scope postings stay searchable and age visibly; the scope decides where the machines spend their time, never what you are allowed to see.
We stopped paying to read job postings in the order they arrived
v2.29.0 · 15 August 2026
- There are 551,135 open postings nobody has read into structured form yet, and reading one costs a fraction of a cent. Reading all of them costs about $153 — and most of that would be spent on the same handful of roles posted thousands of times by a handful of very large employers.
- Every posting now carries a score for how much it is worth reading, worked out from its title, the pay the employer published, and how many near-identical roles that employer has open. It costs nothing to compute: no model reads anything.
- Checked against 10,437 postings a model HAD already read and scored: the top tenth by this score contains thirteen times as many roles the model rated highly as the bottom tenth does. The same money now buys the top of the market rather than a random sample of it.
- It decides what we read first and nothing else. It never hides a posting from anybody — if you want the job stacking shelves at the store down the road, it is still there and still searchable. There is a test that fails if anyone ever tries to use it as a filter.
- Also fixed: seven evaluated roles were showing a file name where their reasoning should have been.
"Score 20 more" now reads the twenty you are looking at
v2.28.0 · 15 August 2026
- It read twenty roles, but not the twenty at the top of your list — measured on a real board, the overlap between the two was zero. The button was handing a model Customer Success Manager and Chemical Manufacturing Product Manager while the page showed Director of Data Science.
- The page and the button had drifted into ranking by different rules. The page puts roles we have actually decoded first, adds how much you would WANT the job to how well you fit it, and then adjusts for your level, your line of work and your pay expectations. The button did none of that — and because so many roles tie at the top of the simpler score, what it really sorted by was which job board we happened to read last.
- There is now one definition of "the best twenty", used by the page, by the button, and by the tool we use to check the two agree. Same list, same order.
- It also no longer spends money reading postings already flagged as not real jobs.
The company-finder was running out of memory, and then out of patience
v2.27.1 · 14 August 2026
- The part of the system that works out where a company posts its jobs was being killed and restarted about once an hour. Cause: it fetches up to 24 pages at once, and each was allowed to be as large as a job board's whole index — a limit that makes sense for a job board and none at all for a company's careers page. Twenty-four of those together was more memory than the container had.
- Careers pages now have their own, much smaller size limit, and there is a test that multiplies the two numbers together and fails if they no longer fit. The arithmetic nobody did is now the thing under test.
- That container also had no entry on the operator page at all — no record of what it was doing, how much memory it was using, or that it had died. It writes one now, like every other part of the pipeline.
- A note on how it was found: the crash breadcrumb added this afternoon named the URL that was in flight when the process died, within seconds of the restart. It turned out to be a slow site rather than the cause — worth knowing, because it means the breadcrumb lists suspects, not culprits.
- Watching the fix land then caught something worse and older. Four of the patterns used to recognise which job-board software a company uses could take MINUTES on a single page — a company's careers page with a large script on it would pin the whole company-finder for the length of it, doing nothing, looking healthy. Measured at three seconds for a fortieth of a page; the cost grows with the square. Bounded, they take three thousandths of a second, and there is now a test that fails any future pattern with the same shape.
The operator page stops describing yesterday's outage
v2.26.0 · 14 August 2026
- Yesterday's memory problem is fixed, but every warning about it stayed on the page — including the one that said the job-board reader might be down while it was in fact reading boards every second. It now tells a slow sweep apart from a stopped one, and says which it is.
- It also stops crying wolf about the thing that is not a fault: most job boards have not been read in the last three hours because there are 9,611 of them, not because anything is broken. Boards that genuinely cannot be read are now counted separately from boards that are simply waiting their turn.
- And the number that was missing: how long a full rotation of every employer takes. Measured from what actually happened rather than from what the schedule intends, it is 19.8 days — so a role posted and filled inside that window is never seen at all. That is the ceiling on finding you good work, and no amount of ranking lifts it.
- The reader now records how much memory it is using every thirty seconds instead of only when a sweep finishes, so if it is ever killed again the evidence survives it.
Finding jobs had quietly stopped keeping up, and nothing said so
v2.25.0 · 14 August 2026
- The process that reads company job boards was running out of memory and being restarted every few minutes — for about twenty hours. It kept finding roles the whole time, so nothing looked broken, but it never got to the end of a sweep, and the steps that come after reading a board never ran at all. That means new roles were arriving without being decoded, which is what the ranking reads.
- The sweep now admits boards by how big they are rather than how many there are, so its memory does not grow with the size of the job registry — which has reached 9,522 readable boards, some of them with thousands of openings each.
- Reading, decoding and scoring are now independent: one of them failing no longer silently cancels the two after it.
- The operator page now describes the whole job store, not just the sweeps that fill it: how many postings there are, how many can actually be decoded and ranked, and — the number that matters most — how many the employer has taken down while we carry on showing them. That last one turned out to be 74,746 of 581,101.
- The operator page can now see work IN PROGRESS rather than only finished work, which is what made the outage invisible. It shows a stage-by-stage view of the last day, so a step that stops shows up as a cliff instead of a slowly worsening total, and a sweep that is still running reports how far it has got as it goes.
What the roles you actually want keep asking for, and how to get it
v2.20.0 · 14 August 2026
- A new tool: the skills that come up again and again in the roles you said you'd want, which your record doesn't claim yet. Counted across every role a model has read for you, weighted so the ones you'd love count most — then ordered by which you could realistically get, with something concrete to do about each, tied to work you have actually done.
- Every skill on the list shows its own working: how many roles asked for it, and how many of those called it essential rather than nice to have.
- Some of it will be things you can already do and have never written down. Say so, and it drops off the list and goes onto your interview list instead — the record is still only ever written by an interview, which is why the button asks rather than assumes.
Scoring only runs for people who are looking, and stops tripping over surnames
v2.19.0 · 14 August 2026
- Our privacy check scanned the employer's job posting as well as the summary we write about you — so if your surname is a common word, every posting that happened to contain it was refused and your scoring stopped. It now checks what we wrote, which is the only place we could leak anything. Your name is still protected.
- Background scoring now goes to people who are actually job hunting — someone who has saved, dismissed or applied to something recently. It used to pick whoever had the most unread roles, which is precisely the people who never look.
- The switch that pauses automatic scoring now pauses all of it. It was only stopping one of the two things that score in the background.
Background scoring was silently broken for nine days
v2.18.0 · 14 August 2026
- If your record lists "Self-employed" as an employer, our privacy check treated that phrase as a piece of your identity — so any job posting containing the ordinary words "self-employed" was refused before it could be read, and the whole scoring pass stopped. One mortgage posting at the top of one person's list meant nothing was model-scored for them for nine days.
- Employment statuses — self-employed, freelance, contractor, retired and the like — are no longer mistaken for employer names. A real company whose name merely contains one of those words is still protected.
- A scoring pass that has to stop now records that it stopped, instead of leaving a job that looks like it is still running. 11,471 of those were cleaned up.
Cover letters carry your real contact details, and stuck builds unstick
v2.17.1 · 14 August 2026
- A cover letter's header could come out reading [REDACTED] where your email and phone belong. The model is never shown those details — the resume adds them back at the end and the letter did not. It does now, and the three letters already written this way have been repaired.
- Two documents about your record — the self review and what a stranger would make of it — could get stuck saying "building" forever. Two of them could start at once and neither would finish; only one runs at a time now, and anything that does get stranded is cleaned up within a few hours instead of never.
- The application page has its navigation back.
We do not call Claude, and the tier that did is retired
v2.17.0 · 14 August 2026
- A routing default meant any task nobody had explicitly assigned ran on Claude — quietly, successfully, and for about a hundred times the intended price. Two did yesterday. The default is fixed and the router now refuses outright rather than silently substituting, so the next unassigned task fails loudly instead.
- Reading a photographed document still uses Claude, because no other model we use can read an image. It is the one exception and it is named in code.
- The unused "paid" tier is gone. Two accounts were sitting on it, including the one that books all background work, and its settings routed eight kinds of work to the expensive model.
Apply now knows which posting it is applying to
v2.16.1 · 14 August 2026
- The apply page was not carrying the job's link, title or employer, so on a role found through receipts it said the posting had been pasted in and offered no way to open it. Both buttons work now.
A browser extension that fills the application form for you
v2.16.0 · 14 August 2026
- Press Apply on a Greenhouse or Lever role and the posting opens with the form already filled — your details, the resume, the letter. You read it and press their submit button; we never press it for you.
- Anything it was not sure about is outlined for you to answer, rather than guessed at. Questions about work authorisation are always left to you.
- Pair a browser under Account. The key is shown once and can be revoked per browser if you lose a laptop.
- Applications you start on your phone wait in the extension until you open a computer, because phone browsers cannot run extensions at all.
- We looked hard at sending applications straight from our servers and it is not possible on any site that matters — they all screen for it. The extension is the honest version, and the apply page now says exactly why for each employer.
Apply: everything ready in one place, and an honest account of how to send it
v2.15.0 · 13 August 2026
- Every role now has an Apply button, under the description and the fit. It opens a page that gathers your details, your work authorisation, the tailored resume and the cover letter — and builds whichever of them you do not have yet.
- It tells you plainly how this particular employer can be reached, and when we cannot send it for you it says why rather than showing a button that fails. Greenhouse, Lever and Ashby put a robot check in front of submissions; Workday wants an account with the employer before it will take one.
- Pressing "I submitted it" records what was sent — the exact letter, the resume, and the answers — and keeps it frozen even if you change your profile later.
- Your street address and ZIP can now be saved with your contact details. They never appear on a resume; application forms ask for them.
The record of a deletion now says how many files went with it
v2.14.1 · 13 August 2026
- When an account is deleted we keep one row proving the request was honoured — no address, just a fingerprint and a count. The count was never filled in, so every one of them said zero. It says the truth now.
Every time on the site is Pacific, and the operator page describes today
v2.14.0 · 13 August 2026
- Times were rendered in UTC everywhere, in thirty-four separate places. They are all Pacific now, from one place, so daylight saving is handled rather than remembered.
- Operator page: the list of recent runs was 100% automatic background scoring, which meant it could not show a single thing a person had done. It lists chosen work now and says how much automatic work it left out.
- Operator page: the invite machinery is folded away — anyone can sign up, so it was answering a question nobody asks — and a panel that repeated the table beneath it is gone, with the one thing it showed uniquely moved into that table.
- Operator page: an account can be deleted, which needed a database client before. It asks you to type the word rather than offering a button next to a row.
Tools keeps you on Tools, and every document says which one it is
v2.13.0 · 13 August 2026
- Asking Tools to build a document sent you to the Record page — including the notice telling you it had started. Every button on Tools now leaves you where you were.
- The plain-text view sat underneath the list of your other documents while showing your resume, so there was no way to tell which document you were reading. It now sits with the resume and says its name.
- Documents you have already built look like things you can open, instead of grey lines that happened to be clickable.
Reading what you built is now the obvious thing to do
v2.12.0 · 13 August 2026
- Across the app, the button to make something a second time was bigger than the button to read what you already made. That is backwards — remaking is rare, and reading is the point of having built it. Fifteen controls swapped weight.
- Documents is the first tab now, because it is the first thing to do.
- The Documents page no longer interrupts you with a card about the interview. It says the same thing in one line, at the end of the sentence that was already there.
- Nothing was removed and nothing costs more or less — the same buttons do the same things, they just stop competing for your attention.
Job parsing now shows up in what we spend
v2.11.0 · 13 August 2026
- Reading job postings is the most frequent thing this service pays a model to do, and it was the one thing missing from our own spend records — 31,761 postings read and not one of them written down. It is recorded now, and there is a new table on the operator page showing what the month went on, by task.
- Nothing about this changes what you are charged: none of it was ever billed to a person's account, and it still is not.
- Automatic background scoring of newly found roles is paused while we work out how much of it is worth doing. Everything you press yourself is unaffected.
“Runs on our side, you can close the tab” is now true
v2.10.0 · 13 August 2026
- It was true of the work and false of the page: a build kept going if you closed the tab, but coming back showed no sign of it. Now the page says what is running and how long it has been, picks the progress bar up where the work actually is, and tells you when it finishes even if you were somewhere else.
- Something that failed while you were away says so, with the reason, instead of looking like it never ran.
- A build interrupted by a deploy used to leave the page insisting it was still going, forever. Those are closed out within the hour now.
- Two tabs can no longer start the same build twice.
Dismissing a role no longer reloads the page
v2.9.0 · 13 August 2026
- Dylan: “it would be awesome if it just magically went away instead.” It does. Dismiss, Save, Unsave and Restore take effect as you tap them and leave one line behind with an Undo, so clearing a long list is as fast as you can read it.
- Undo puts the role back where it was, not somewhere else — dismissing a saved role and undoing it returns it to Saved.
- Hiding an employer takes every one of their roles off the list at once, and now also removes them from the company filter, which had been offering a filter that could only ever come back empty.
- All of it still works with JavaScript switched off; it is just bouncier.
The Roles page stopped counting things nobody asked for
v2.8.0 · 13 August 2026
- It was spending over two seconds per load on numbers: a total beside each tab, and another for the pager. Both are gone — the tabs say what they are, and the pager offers the next page without claiming to know how many there are.
- The filter menus and the sign-in check were being rebuilt on every single load. They are not any more.
- Nothing about which roles you see changed. Where a number is still shown it is still exact.
The 75,000 roles with no description have started filling in
v2.7.0 · 13 August 2026
- Roles from Oracle-run career sites had no description at all — not a short one, none. We were reading sixty of them per employer and then reading the same sixty again on every pass, so a grocery chain with 6,000 openings never got past the first page.
- Now each pass reads descriptions we do not already have, so a large employer fills in over a day or two instead of never.
- This was the last group of postings here with nothing to read.
63,000 postings had their description replaced by the real one
v2.6.0 · 13 August 2026
- Roles from UKG job boards were being stored as a two-line summary instead of the posting. Grocery Outlet’s openings went from 405 characters to 3,778, and a quarter of them turned out to state their pay in the part we had been dropping.
- This affected 63,171 roles — one in eight of everything here. They will refill with the full text over the next day as their boards are re-read.
- Pay written as “$21.00 Hourly” or “$26.50 an hour” now counts. Three of four postings sampled wrote it that way and none were being read.
A new job board we can read, and every posting got its stylesheet removed
v2.5.0 · 13 August 2026
- Employers on Paycor are now read — 378 of them, previously found and skipped because nothing here could open their boards. Torani is the first, with 26 roles in San Leandro, every one of them stating its pay.
- Job descriptions no longer contain stylesheets. Postings we read as whole web pages were carrying the page’s CSS and scripts into the description, which the reader that handles the largest employers does for every posting.
- Grocery Outlet’s 92 openings are in, after a probe found their board on the first try.
Thousands of San Francisco jobs were being filed as overseas
v2.4.0 · 12 August 2026
- Roles at OpenAI, Perplexity, Handshake and others — in San Francisco, saying so — were marked as outside the United States and hidden from every list. One job board writes the country as “United States” rather than “US”, and we read anything that was not “US” as abroad.
- Those roles are back, and most of them arrive with their salary already attached, because the pay was being collected the whole time and never shown.
- Jobs genuinely outside the US are still excluded. London, Singapore, Bengaluru and Tokyo were never the problem — San Francisco was the single most common location in the excluded pile.
- Salaries published by Lever job boards are now read directly, with the currency and whether it is hourly or annual stated rather than inferred.
A university's initials were being read as a foreign currency
v2.3.2 · 12 August 2026
- Postings were being skipped because three letters somewhere in the text looked like a currency code — “PLNU”, a university's own abbreviation, read as Polish złoty. A pay range four paragraphs later was thrown away with it.
- A salary quoted in another currency now only disqualifies the figure next to it, not the whole posting. A London office mentioned in a footer no longer hides what a US role pays.
- Hourly ranges show both ends. “$24.00 – $27.00 per hour” was being recorded as $27.00.
More of the salaries that were already in front of us
v2.3.1 · 12 August 2026
- Hourly pay written as a bare range — “Pay: $39.75 – $49.75”, with the word hour nowhere near it — now counts. Staffing agencies write it that way.
- Pay described as “up to $24.00 an hour” counts too. A rule meant to ignore sign-on bonuses was throwing away real hourly wages along with them.
Tens of thousands of roles now show the salary the employer published
v2.3.0 · 12 August 2026
- A role that said “not listed” often did list its pay — the figure was in the description all along and nothing had ever read it. We read it now, without a model, so it costs nothing and applies to the whole board.
- California roles gain the most, because the pay-transparency law means half of them state a range.
- Your salary floor now judges those roles too. Before, a role we had no figure for counted as “didn't say” and survived a filter it should not have.
- A published figure lifts a role in your ranking; an estimate we worked out ourselves does not, and never did.
- Nothing overwrites a figure we already had, and anything we cannot read confidently — another currency, a sign-on bonus, a number in a sentence that isn't about pay — is left blank rather than guessed at.
Correct anything in your record, and we now guess what field you're in
v2.2.0 · 12 August 2026
- Anything in your record that is wrong, you can take off it — a job, a story, a skill, a qualification. Look for “Not right?” under any item. This page used to have a section headed “why you can't edit this here”, which was the wrong answer to a fair complaint.
- Nothing you remove is destroyed. A correction is a new version of your record and the one it replaced stays readable in the history at the bottom of the page.
- A skill rating you gave yourself, you can now just change. Ratings decide what a resume is willing to claim, so one number being wrong made documents wrong.
- You can still only ADD to your record by talking to us or filling in your timeline. Every line has to be able to say where it came from, and a box you type an achievement into cannot.
- Your jobs list is now ranked around the field you work in, guessed from the job titles in your record — it says so on the page, roles outside it are nudged down rather than hidden, and confirming or changing the guess is one click.
Your list is now ordered by your level, your line of work and your pay
v2.1.0 · 12 August 2026
- A role asking for two years of experience no longer sits above one asking for fifteen when your record shows fifteen. Roles well below your level are pushed down rather than hidden — a step back can still be the right job, so it stays on the list.
- Roles in a completely different line of work are demoted. Your titles come from your own record, so this needs no setting up: the closer a posting is to the work you have actually done, the higher it sits.
- A salary the employer published, above the floor you set, now lifts a role. A figure we estimated ourselves does not — estimates were moving invented numbers to the top of the list.
- Every role that got pushed down says why, on the row. A penalty you cannot see is indistinguishable from the list being broken.
The top of your roles list is now roles we have actually read
v2.0.0 · 12 August 2026
- Every one of the first hundred roles on your list used to be a posting nobody had read yet — no field, no level, no pay, nothing but a word-count against your record, and all of them tied at the same score. Those are gone from the top.
- How much you would WANT a role now affects where it sits. It was being judged all along and then ignored when the list was ordered, which is how an internship sat second on a list built for fifteen years of experience.
- Pages that are not jobs — a benefits summary, a careers index — no longer appear at all once we have read them and seen what they are.
- Salary figures quoted in another currency are no longer treated as dollars. A role quoting ¥300,000 a month was reading as $3.6M a year, which cleared every salary floor anyone could set.
Evaluating a role takes about 25 seconds instead of two minutes
v1.99.0 · 12 August 2026
- A full evaluation used to take just under two minutes on average, and sometimes over three. It now takes 21 to 28 seconds.
- The change was made by measuring, not by guessing: the new model was run against five roles you had already had evaluated, and it agreed with the old one on literal fit, capability fit and screening risk every time. It reads your record slightly more generously on how much you would want a role.
- If it is ever unavailable the old model still answers, so a slower evaluation is the worst case rather than no evaluation.
A Tools tab, so your record is your history and nothing else
v1.98.0 · 12 August 2026
- New Tools tab in the nav: your general resume, the four other documents you can build from your record, the career coach for your whole direction, and the read of your history. Everything there is made from your record and none of it changes it.
- Your record page is now just the record — what we know, where each claim came from, and what is still missing. It is a third shorter.
- Per-role documents and the coach for a specific job stay on that role's own page, where they belong.
Everything written for you now reads like a document
v1.97.0 · 12 August 2026
- Both career coaches, the gap analysis, the screener read, the panel review, the phone-screen prep, your cover letter and all five documents built from your record now render as headings, lists, emphasis and tables instead of showing the raw characters around them.
- Documents built from your record open one at a time, so getting from your resume to your LinkedIn About section is one click and does not bury the page in panels.
- Copying your cover letter now puts clean prose on the clipboard rather than the asterisks that used to travel with it into an employer's form.
- The job posting itself is deliberately unchanged: employers write plain text with their own line breaks, and formatting it would run those lines together.
A Recents tab, counts on every tab, and back actually goes back
v1.96.0 · 12 August 2026
- New Recents tab: every role you have done something with, newest first, whatever tab it normally lives in. It shows each role's status but never filters by it — the point is remembering what you were working on, not where it sits.
- Every tab carries a count now, not just three of them. The numbers respect whatever filters and salary floor you have set, so a tab that says 40 opens a list of 40.
- Opening a role and coming back returns you to the tab you left instead of resetting to Evaluated.
- The Applications page has the same tab strip as the rest, so it is no longer a place you can only leave with the browser's back button.
Every role shows what it pays, and the reason it fits gets room to explain
v1.95.0 · 12 August 2026
- A pay line now appears on every role. Before, it showed only where the employer published a band — about one row in five — and a missing line was impossible to tell apart from a bug. Where nobody published a number it says so plainly.
- The reason a role fits you gets four lines on a phone instead of two, and "On their site" moved up beside the other links rather than taking a line of its own.
- Links to the employer's own posting open in a new tab, so going to read one no longer costs you the page you were on.
- The situation box on your record is now called "What's on your mind?", starts closed, says it is optional, and explains itself in one line instead of four.
Fixed: the new documents and both coaches failed with a server error
v1.94.1 · 11 August 2026
- Everything added today that runs in the background — the academic CV, the bio, the LinkedIn About section, the self-review, and both career coaches — failed with a server error the moment you pressed the button. A database rule listing which kinds of work may be queued had not been updated, so the work was refused before it started. Nothing was charged and nothing was half-built.
The career coach now knows what the work pays and where it is going
v1.94.0 · 11 August 2026
- Both coaches carry real figures: the median pay for an occupation, the range most people in it actually earn, the projected change in employment through 2034, roughly how many openings a year, and what level of education is typically needed to enter it. All from the US Bureau of Labor Statistics, attributed and dated.
- Pay shows on the stepping-stone roles too, which is the point of having it — a role that pays less can still be the right next move, and that is your call to make with the number in front of you rather than ours to leave out.
- Where there is no figure, there is no figure. Neither coach may estimate a salary or adjust one for your market, and a national median for an occupation is not a prediction about you — both are told so plainly.
A career coach on every role, and one for your whole record
v1.93.0 · 11 August 2026
- On any application there is now a career coach: what would actually make you a stronger candidate for that specific role, sorted by how long it takes — something you could do this month, something this year, the one role that makes this one reachable, and the things that are not closeable on any useful timeline. Naming that last group is the point: it stops you building a plan around an impossibility.
- The stepping-stone role is not a guess. Adjacent occupations come from the US Department of Labor's own map of which work shares enough skills and experience to move between, and the coach says when a suggestion is its own reasoning instead.
- On your record there is a second one: where this record could go. Three to five directions it actually supports, what each would take, and the first concrete step — including developing the job you already have, which is how most senior roles get filled and which a tool built on applications would otherwise never mention.
- It will not tell you a degree requirement is optional because the posting says “or equivalent”. At companies that publicly dropped degree requirements, fewer than one in seven hundred hires actually lacked the degree, so the requirement is usually real and you deserve to hear that.
- Anything that costs money or more than a weekend comes with an estimate of both. No salary premiums for certificates: the loudest figures come from the people selling them.
Five documents from your record, not just a resume
v1.92.0 · 11 August 2026
- The record page can now build an academic CV, a professional bio, a LinkedIn About section or a self-review, as well as the general resume it already made. Pick one from the dropdown; none of them need a job posting.
- The CV is a real CV and not a long resume: education first, research interests, full publication citations, grants, teaching and service, and no length limit. If your record is not an academic one it says so and tells you which sections a search committee will expect.
- The bio is around 120 words in the third person with the strongest thing first, because organisers cut a bio from the bottom. The LinkedIn About is around 250 words in the first person, written so the opening two lines work alone — that is all LinkedIn shows before “see more”.
- The self-review is the odd one out and deliberately so: it is for a performance review or a promotion case at the job you already have. Five to seven accomplishments with the impact, plus what you grew at, because a review with no growth in it reads as someone who is not paying attention.
- Anything you set under “what you're trying to do” shapes all five.
Tell it what you're trying to do, and ask what a stranger makes of your record
v1.91.0 · 11 August 2026
- New on your record page: what you're trying to do. Six situations — accounting for a gap, moving into a different field, reaching above your last title, returning after time away, reading thinner on paper than you are, or wanting the blunt version — plus a line for anything else. Every resume, letter and review now argues for you instead of just describing you.
- It never changes the facts, only which of them lead and what gets explained. And it reaches the interview too, so the questions go where you need them rather than finding out at turn fifty that there was a gap to talk about.
- Also new: “what a stranger would make of it”. A straight read of your whole record with no job in mind — what it says you are, the strongest three things in it, what a recruiter would doubt or ask about, and the three things worth doing next. No score and no grade, because a number invites you to optimise it.
- If you asked for the blunt version, the review is blunt. It is told plainly that being worried about something is not a request to be reassured about it.
The documents page says the same thing in a third of the words
v1.90.0 · 11 August 2026
- Bringing in your LinkedIn profile was three side-by-side methods and about two hundred words, one of which explained how to copy a web address out of a browser. It is one line and one box now, and it says what you get: employers, titles, dates, education and skills, plus your name and location filled into your profile.
- The two manual methods — copying the page on a phone, or LinkedIn's own exports on a computer — still work and are tucked behind a line you can open. They only apply if you have no link to paste.
The front page signs you up instead of asking you to wait
v1.89.0 · 11 August 2026
- The form on receipts.cv was a waiting list — it took your email, told you we'd be in touch, and left you there. It creates your account now: email, a password, and the next page is the product. Nothing to approve and nobody to wait for.
- It still asks what role you're after and how you heard about us, and both answers now arrive attached to your account rather than to a queue entry.
Anyone can sign up, and a password is how you get back in
v1.88.0 · 11 August 2026
- There is no invite list any more. Pick an email and a password on the home page and you have an account — no invitation, no waiting for anybody to add you.
- Passwords are now the normal way in, and there are no rules about them: no minimum length, no required symbols. Short and memorable is fine.
- Sign-in links are now the password reset rather than a way in. Ask for one, open it, and it takes you straight to the page where you set a new password. Typing your email on its own no longer signs you in — that was convenient while links were getting lost in spam, but it meant anyone who knew your address could open your account.
- If you had an account before today, your password is 1234 until you change it. There's a note on the sign-in page saying so, and Account is where you change it.
A resume now fills in your city and title too, not just what we could pattern-match
v1.87.0 · 11 August 2026
- When your documents are read, the contact header is now read properly rather than pattern-matched — so as well as your name, email, phone and links, a resume can fill in the city and state we previously refused to guess. It costs nothing extra: the same reading that builds your timeline returns the header alongside it.
- It knows the difference between your details and somebody else's. Tested against a resume naming a hiring manager and an employer's office in another city: it took neither. And as before, it only fills blanks — anything you typed is untouched.
Your documents are on the record page, and stop asking you for what they say
v1.86.0 · 11 August 2026
- Documents had no link from the record page or the top nav — they were only ever linked from the pages you see when you first arrive, so once you came back there was no way to reach your own files short of typing the address. There's now a Docs tab, and the record page lists what you've added with a way to add more.
- And when you upload a resume or bring in your LinkedIn profile, the contact details it states are filled in for you — your name, email, phone, links, and from LinkedIn your city and title too. It only ever fills in blanks: anything you typed yourself is left exactly as you wrote it, even when a document disagrees. The page tells you which fields it filled so you can check them.
Paste your LinkedIn address and your history comes across
v1.85.0 · 11 August 2026
- There are now three ways to bring in your LinkedIn profile, and the new one is the easiest: paste the address of your profile and press a button. About half a minute later your employers, titles, dates, education, skills and certifications are in your documents. It works the same on a phone as on a computer, which neither of the other two do — LinkedIn will only start its own exports from a desktop.
- It brings across the part that is slow to type and not the part only you know. Profiles almost never say what you actually did — the one we tested had four roles and not a single description — so this saves you the dates and leaves the interview to ask about the work.
- Your LinkedIn password is never involved, and nothing imported becomes part of your record until the interview asks you about it. The two manual methods are unchanged and still there if you prefer them.
Every document says what it is, whether it was read, and has an ✕
v1.84.0 · 11 August 2026
- Upload five things and you can now tell them apart. Each one is numbered, so you can say "file 3 is just a template" and be understood, and each says what we think it is — a resume covering two roles, a job description for a role at Stripe, a blank template with nothing filled in. When we can't tell, it says so rather than guessing: being told your resume is something else is worse than being told we're not sure.
- Each row also says plainly whether we could read it, and every one has an ✕ to remove it. So "my resume didn't upload, I'll delete it and try a different format" is now four obvious steps instead of guesswork.
- Deleting a document now also removes it from what the interview has read. It didn't before — a file you'd deleted could still be quoted back at you, which is not what deleting is supposed to mean.
"Benefits" is not a job, and 772 of them were on the list
v1.83.1 · 11 August 2026
- When we read an employer's openings from their own website, we follow the pages under their careers section. Some of those pages are not roles — a benefits summary, an FAQ, "How to Apply" — and 772 of them had been saved as openings, scored against people's backgrounds, and in 32 cases read by a model at our expense. They are gone, and the reader now recognises a page name and skips it.
- The rule only matches a title that is exactly a page name, never one that merely contains it: "Benefits" is a page and "Benefits Analyst" is a job. Losing a real opening would be far worse than keeping a stray page, so that line is drawn deliberately on the cautious side.
One unstorable job no longer takes 200 others with it
v1.83.0 · 11 August 2026
- Jobs are saved in batches of 200 for speed. Three times this month a single posting the database refused — an invisible control character, a web address two employers shared — threw away the whole batch it travelled in, with no error anywhere and no sign that roles were missing. Each cause was fixed as it appeared; this fixes the arrangement behind them. A refused batch is now retried one posting at a time, so the cost is the one posting rather than two hundred, and the number refused is reported instead of being silently absent.
FIX: one shared web address could throw away a batch of jobs
v1.82.1 · 11 August 2026
- When we read an employer's jobs from their sitemap, the web address is how we tell one role from another. Two Purdue boards both listed the same page, and rather than skipping the duplicate the whole batch of jobs being saved was rejected — every time that board was read. The duplicate is now skipped and the rest of the batch is kept.
Jobs now say who is actually hiring — 58,000 of them were wrong
v1.82.0 · 10 August 2026
- Nearly a third of the jobs on the site had a code where the employer's name should be. Two of the hiring systems we read identify a company by an internal reference rather than a name, and we were printing it: 3,799 Marriott jobs said "CX", and 37,129 postings in total showed something like "CX_1" or "TRO1001TROO". They now show Safeway, Marriott, Northwell Health and the rest.
- Another 21,484 named a brand instead of the company doing the hiring. Employers often run one job board for everything they own, so following a careers link can land on the parent's board — Juniper Networks jobs are Hewlett Packard Enterprise jobs now, Ritz-Carlton is Marriott, City Gear is DTLR. Where we can establish who publishes a board, that is the name you see.
- Searching still works by the old name. Type "Casetext" and you get the Thomson Reuters roles it became, because the previous name is kept alongside the new one.
FIX: 99 employers were filed as found and could never be read
v1.81.1 · 10 August 2026
- Yesterday's two new hiring systems, Oracle and UKG, need more than one detail to identify an employer's job board — the address is the record. When we found one of those boards by reading a company's careers page rather than by its own address, we saved the employer's name and lost the address, then marked the company done. Done means we stop asking, so 99 employers were filed as found and produced nothing, with no error anywhere. StandardAero, EchoStar, CBIZ and Liquidity Services were among them.
- All 99 are back in the queue and will be looked at again properly. The cause is fixed in one place that both paths now share, and a test asserts the address we save is one our own reader can read back — the check that was missing.
405,228 more employers to look through, biggest first
v1.81.0 · 10 August 2026
- We knew of 55,000 companies. We now know of 460,000 — every US company with at least 51 staff and a website of its own that we could find in a public dataset. Knowing about a company is not the same as being able to read its jobs, and that part happens in the background from here: each one gets checked for a job board we can follow, and the ones that have one start appearing in searches.
- The order is deliberate. The largest employers are checked first, because they have the most openings and are the most likely to use hiring software we can read — so the useful half of this arrives in the first days rather than the last.
- Nothing about the site got slower and no existing job moved. A company we cannot read yet is invisible to everything except the background check.
FIX: one stray character could hide every job at an employer
v1.80.1 · 10 August 2026
- Some employers' job descriptions contain a character Postgres refuses to store — it comes from pasting text out of certain tools, and their hiring software keeps it. We save jobs in batches, so one of those characters threw away up to 200 roles from that employer with no sign anything was missing. The character is now removed and the job is kept.
- Separately, five employers had a job board address recorded that was never a board at all — an image file, a web address pasted into the wrong place, a bare search box. Each had been checked hourly and failing silently. A+E Global Media, Unisys, Wintrust Financial, Teledyne and Commercial Vehicle Group are back in the queue to be found properly.
Oracle boards, and 5,853 more jobs — Safeway alone had 4,777
v1.80.0 · 10 August 2026
- Oracle's hiring software is the biggest single gap we've closed. Safeway, the Cooper Companies and La Petite Academy are the first three, and Safeway on its own has 4,777 open roles.
- This one wasn't a guess. Yesterday every company we failed on started recording which hiring system it used, and an hour later Oracle was top of that list with real names attached — so the next thing to build picked itself.
- Where a board won't hand over everything it has, we now say so internally rather than assuming the rest closed. La Petite lists 2,202 roles and lets us read 799; the other 1,403 aren't treated as gone.
ADP job boards are readable now, and they didn't need a browser after all
v1.79.0 · 10 August 2026
- ADP was the most common hiring system we couldn't read, and it looked like the hard kind: the careers page is an empty shell that builds itself in your browser, so there's nothing to read in the page itself. It turned out ADP publishes the jobs openly and the page just asks for them — so we can ask too.
- Aviat Networks and Brandywine Realty are the first two, with full descriptions. Every ADP employer we find from here reads the same way.
- Worth saying because it changes what comes next: a page that renders nothing useful is not the same as data we can't reach, and we'd have spent a week on the harder answer before checking the easy one.
We can read UKG boards now, which is 905 more jobs from three employers
v1.78.0 · 10 August 2026
- We checked 100 careers pages belonging to companies we had given up on, and 44 of them ran hiring software we simply could not read. Not hidden, not protected — we had never written the code. UKG was one of the commonest, so it went first: MarineMax, Lands' End and Yesway between them have 905 open roles that were invisible to us yesterday.
- ADP, Oracle, SuccessFactors, iCIMS and Phenom are the others, in that rough order of how often they turned up. Each one is more employers we can start reading.
- Also fixed: a company could hold a working job board while our own records still said we had failed to find one, so the count of what we can read was too low and the search for new boards kept re-checking companies it had already found.
1,272 employers we could see but never look at — including NVIDIA
v1.77.0 · 10 August 2026
- Every public company came to us from a government filing that lists names and no websites, and we had nowhere to put a website that arrived later from a different source. So 8,000 employers sat in the list permanently unreachable: we knew they existed and could never check whether they were hiring. NVIDIA, Autodesk and Comscore were three of them.
- That's fixed for 1,272 of them — they have a website now and are in the queue to be checked. The rest are waiting on a source that knows their address.
- We also try the address a careers page usually lives at when a company's homepage doesn't link one — worth a couple of percent, and it found the NFL. It only accepts a board that agrees it belongs to that company: one company's /jobs page turned out to be a job board listing other people's roles, and we would have put those on your grid under the wrong employer's name.
We look for new employers about ten times faster
v1.76.0 · 10 August 2026
- Finding companies whose jobs we can't read yet used to be the last thing in an hourly cycle, running on whatever time was left over — about 240 companies an hour, with 52,000 waiting. It now runs continuously on its own, and got through 200 in under five minutes. The backlog goes from roughly nine days to about one.
- It also can't quietly stop any more. In one four-hour stretch last week it did nothing at all because it shared a process with the hourly job polling and a dropped database connection took it down; polling carried on looking perfectly healthy. It has its own process now.
- Two companies had a job board recorded that wasn't theirs — one was a file server belonging to the hiring software, the other was that vendor's own demo account. Both cleared, and the check that lets a board be recorded is stricter.
The interview saves itself as you go
v1.75.0 · 10 August 2026
- You no longer have to press Save to record. The interview writes what you've said into your record as the conversation goes, so closing the tab, losing signal or simply not noticing a button can't cost you an hour of answers.
- The button still works and still gives you an immediate answer about what was kept — it just isn't the only thing standing between you and your own words.
FIX: a first interview could never be saved to your record
v1.74.0 · 10 August 2026
- If you had no record yet — which is everyone, the first time — pressing Save to record failed. Every time. Two separate causes, both of which only ever affected the first save anybody made, which is why it went unnoticed: nobody had got past it to find out what came next.
- One real interview was already stuck behind this: 64 questions answered, nothing kept. It has been recovered — six roles, two degrees and seven stories are now in that record — and the fix means it can't happen to the next person.
FIX: interview spend wasn't counted against anyone's budget
v1.73.1 · 10 August 2026
- Conversations are billed in a different place from document builds, and the budget check only looked at one of them — so the interview, which is the thing you can keep going as long as you like, was the one thing the limit couldn't see. Both are counted now. Nothing was ever billed twice or lost.
Your timeline arrives filled in from your own documents
v1.73.0 · 9 August 2026
- Upload a resume and the timeline is waiting for you already filled in — employers, titles and dates read straight out of it. The rows are marked, and nothing reaches your record until you press Save.
- Where a document didn't say when something started, the box is left empty instead of filled with a guess. The banner tells you how many need a date, so the empty boxes are the job rather than a nasty surprise on a resume later.
- Certificates are their own thing now. A CFA, a PMP, a teacher training — they have an issuer and one date, not a school and a date range, and asking you for the wrong two facts made them impossible to fill in properly.
- Anything you already recorded won't be suggested again, and if the whole lot looks wrong there's one button to throw it away.
FIX: yesterday's "the interview reads your documents" didn't actually work
v1.72.2 · 9 August 2026
- The digest of your uploads is filed in one place and we were looking for it in another, so the interview would have found nothing every time — and would have kicked off a fresh read of your documents on every visit, forever. Nobody hit it: it was caught before a single one of those reads ran. Now it looks in the right place, and there is a test that checks the table rather than the label on it.
FIX: finding new employers stopped when the database connection dropped
v1.72.1 · 9 August 2026
- The part that goes looking for companies we don't have job boards for was holding a database connection open the whole time it was out on the internet — minutes, across hundreds of requests. Connections don't survive that, and when one was dropped the whole round died with a crash instead of picking up where it left off. No data was lost; the companies it was working on just stayed unchecked until somebody noticed.
Your timeline is a form now, and the interview finally reads your documents
v1.72.0 · 9 August 2026
- The interview never read your uploads. Five pages said it did. The part that reads them was built, tested and wired to nothing — so somebody could upload a resume listing every employer and date, and then get asked for every employer and date. That is fixed: uploads are read in the background and the conversation gets them before it asks you anything.
- New page: your timeline. Jobs, school, internships, freelance, volunteering — where you've been and roughly when, as a form. Dates are miserable to dictate into a chat, and they were taking up a good share of an interview that should have been asking what you actually did.
- A year on its own is fine. So is 'Mar 2019', '03/2019' or 'still here'. If you type something we can't read as a date, we keep it rather than throwing it away.
- It works whether you have ten short gigs or one internship and a degree. School counts, projects count, and overlapping dates are fine.
- Saving the timeline never overwrites interview work. It owns four fields — what, where, from, to — and leaves everything else on the entry alone.
- And the documents page no longer claims a stage takes about ten minutes. It doesn't, and we should not have said so.
Several files at once, Pages files, and saying when we can't read one
v1.71.0 · 9 August 2026
- You can pick more than one file. It only ever took one at a time, which nobody should have had to work around.
- Pages files work now. They were refused twice over — the file chooser greyed them out, and if you got past that the message named Word and Excel at you. We read the PDF preview inside the bundle; if there isn't one, we say so and point at the Export To PDF menu.
- The documents list says when we couldn't read something, and why. Before, a file we could not open looked exactly like one we could, so the only way to find out was to guess.
- And the page now says what it never said: documents on their own don't produce anything. They are raw material — the interview is what writes your record. Apologies to anyone who loaded a pile of files and waited for something.
A photo we read and then threw away
v1.70.1 · 9 August 2026
- Photographs uploaded on the day this shipped were transcribed and then lost — a bookkeeping row failed to save and took the transcription with it. Fixed, and the one affected transcription has been restored to the account it belonged to.
LinkedIn, told straight: you can't export it from your phone
v1.70.0 · 8 August 2026
- We said the PDF took thirty seconds on your phone. It does not exist in the phone app. We then said the data archive did. It does not either — both of LinkedIn's exports can only be started from a computer. Sorry for sending you looking for buttons that were not there.
- So the phone gets its own method, which is the one that actually works: open your profile, select all, copy, paste it into the box on the Documents page. About twenty seconds, and the interview reads it just as well.
- On a computer there is now a one-click bookmark that copies your whole profile for you. It runs in your own browser on your own page — nothing of yours leaves your machine until you paste it.
Four more ways to get your documents in, and photos now get read
v1.69.0 · 8 August 2026
- You can paste. A resume, a bio, notes about a project — anything in words, straight into a box. On a phone your resume usually lives inside Google Docs or an email, where copy is the one thing that always works.
- Photographs of documents are now read. We have always accepted them and never looked at them, so pointing your camera at a printed resume stored a picture nothing could use. The text we read out of it appears beside the photo, so you can check it and delete it if it came out wrong.
- Your LinkedIn profile, two ways, with instructions for both: save your profile to a PDF from the app in about thirty seconds, or request your full data export and drop the zip in — no need to unpack it. Nothing from LinkedIn goes into your record on its own; the interview still asks you about it.
- The documents page works without JavaScript now, the file button is a real target rather than a browser default, and the page says what you have added instead of leaving it to a script.
- On Android you can install receipts.cv to your home screen and it appears in the share sheet, so sending a file from Drive or Gmail is three taps.
Job pages were returning an error instead of the job
v1.68.1 · 8 August 2026
- Opening a role you had not already started an application for showed an error page. It lasted about forty minutes and only affected roles with no application yet — which is most of them, and the one you tap first from the list.
Say what a role has to pay, and stop seeing the ones that don't
v1.68.0 · 7 August 2026
- Two new settings on your account: the minimum you'd take, and what you're aiming for. A role that states a salary below your minimum is hidden from Roles entirely, on every tab — a floor that applied on one tab and not the next would read as a bug rather than as a filter.
- Roles that don't state a salary at all are still shown, and that is deliberate. About four in five postings say nothing about pay, so treating silence as failure would delete most of the board — including roles paying far more than your floor — and the only sign would be a shorter list. There's a tick box to hide them as well if you want the strict version.
- Roles says how many it hid and gives you one tap to see them, because a filter you set a month ago and forgot is indistinguishable from the thing being broken.
- Where a posting does state a band, the row now shows it, and marks the ones that reach what you're aiming for.
- Fixed: the old pay filter ignored anything quoted hourly or monthly, so a contract at $95 an hour — about $198,000 a year — disappeared from any filtered view because of the units on the label.
A walkthrough, and a card telling you where to start
v1.67.0 · 7 August 2026
- New accounts get a short card at the top of every page: upload an old resume, do one interview stage, add your contact details and what you're after, then open Roles. It goes away for good when you say so, and that sticks across devices because it's kept on our side rather than in the browser.
- The card names your contact details because that is the one hard requirement — a resume with no name on it cannot be rendered, and the refusal used to arrive at the moment you were trying to build one.
- There's a longer version at How it works, linked from the card and the footer. It covers the five interview stages, what the three Roles tabs actually mean, why the gap analysis comes before the resume, and what the thing will not do.
Signing in no longer depends on an email arriving
v1.66.0 · 7 August 2026
- Sign-in links have been landing in spam, which made the front door depend on a message surviving somebody else's filter. Entering an invited address now signs you in on the spot. We still email you a link, and it is still worth finding — if one arrives that you did not ask for, someone else typed your address.
- Worth being plain about the trade: proving you can read your email is no longer part of getting in. Anyone who knows the address of someone in the pilot could open their session. The pilot is still invite-only, so this is not open to strangers, and it will be tightened again once the email is reliable.
- The operator's page is read-only until you turn editing on. Publishing a notice, revoking an invite and taking a testimonial down were all one mis-tap away while scrolling a long page on a phone.
- That page also reads properly on a phone now. Seven tables of five or six columns were a sideways scroll inside a downward one; each row is its own labelled block on a narrow screen.
Several roles are read at once, and never read twice
v1.65.0 · 7 August 2026
- Evaluating three roles used to take sixteen minutes, because every step waited for the one before it even when the two had nothing to do with each other. Different roles now run at the same time, four at a time. The steps within one role still run in order, because they genuinely depend on each other.
- A role that has already had the full read will not be read again, whatever a button says. Tapping Evaluate on one tells you it is already done and charges nothing. Building documents on it skips straight to the documents.
Evaluate is one step, and every role page shows its score
v1.64.0 · 7 August 2026
- Tapping Evaluate now runs one thing: a read of the posting against your record. It used to run the gap analysis straight afterwards, which doubled what a tap cost and how long you waited for an answer you had not asked for yet. Your gaps are a button on the role's own page, for when you have decided to apply.
- Every role page now shows how it scored, what it says you are missing, and when it was scored. Combining the two pages last release moved the description and the requirements across and left the number behind.
A re-scored role now says when it was re-scored
v1.63.1 · 7 August 2026
- When a role was scored again — a rough sort upgraded to a real reading, or a fresh read after your record changed — the new scores were saved and the date was not, so the page reported the day it was first scored rather than the day it was last scored. Found by checking what actually happened after three taps on a phone.
Evaluate roles without leaving the list
v1.63.0 · 7 August 2026
- Tapping Evaluate on a role now starts the deep read and leaves you where you are — the button greys out and says so. Go down the list tapping the ones you care about, then switch to Evaluated when they land. It used to throw you onto the application page after every single one.
- Your roles are in three tabs now instead of two: Raw, Scored and Evaluated. They were two, which meant the Evaluated tab offered an Evaluate button on roles that were already evaluated. Raw is word overlap, Scored is a model reading, Evaluated is the full read against your whole record.
- The row buttons are much smaller. Five stacked buttons took more height than the job title, the summary and the company put together.
- A role's page and its application are one page. You can read the full posting and what the job asks for without leaving the place where you build the documents — before, the description was hidden at the bottom of the application page inside a panel that could never open.
- Applications show fit, progress and an Archive button. Roles you only looked at fold away into their own section instead of sitting among the ones you are actually working on, and nothing you archive is deleted.
- Fixed: buttons that redirected with a message — starting an application, hiding a company, reporting a bad listing — were sending messages the page then threw away. You pressed a button and nothing said what happened.
- News replaces Activity in the menu: a one-line summary of each change, with the feedback box that used to be buried in the footer.
Closing the tab no longer throws away work you paid for
v1.62.2 · 7 August 2026
- Fixed, and it explains something you may have noticed: saving an interview to your record only worked if you stayed on the page until it finished. Close the tab, switch apps, lock the phone — and the work was cancelled partway, with nothing written and no error. Eight jobs had been abandoned that way over four days, including both attempts to save an interview.
- Everything long-running now finishes on its own once you have started it. That goes for reading a posting, mapping gaps, building a resume or a letter, the screener review, and saving an interview. You can start one and go and do something else.
The chat uses your employer's name, and saving works again
v1.62.1 · 7 August 2026
- Fixed: the interviewer referred to your employer as "[EMPLOYER_1]". Your record is de-identified before it is sent to a model — that is deliberate and is how the privacy promise is kept — but the reply was being shown to you still in that form instead of being turned back. It now reads normally, both as it arrives and when you reload the page. What we store and send onward is unchanged: still de-identified.
- Fixed: "Save to record" answered with "could not start". That was a bug introduced hours earlier in 1.62.0 — a check meant to stop you paying to save the same conversation twice was written against a column that does not exist, so every save failed instead.
The interview keeps what you type, and reads like a chat
v1.62.0 · 7 August 2026
- Fixed, and this one lost real work: if you sent an answer and switched tabs before the reply arrived, your answer was gone. Not just off the screen — it was never saved. Your words are now written down the moment you press send, before anything else happens, and the reply finishes and gets saved even if you have closed the tab. What you type is also kept in the box until the server confirms it has it, and restored if the connection failed.
- The conversation now scrolls the way a chat should. Pressing send used to scroll the whole page past the conversation and past the box you type into, landing you on the footer. The transcript scrolls inside itself, the box stays where it is, and if you have scrolled up to reread something we leave you there instead of yanking you back down.
- Opening a stage for the first time takes about half a minute while it reads your record. It used to show you an empty page for that whole time. It now says what it is doing, in the conversation, and counts the seconds if it runs long.
- Saving no longer ends the conversation. It used to close the stage quietly, so coming back gave you a blank one — your answers were in your record but the thread was gone. Save as often as you like and pick up where you left off; marking a stage finished is now its own separate thing.
- The interview no longer opens with a message from "you" that you never wrote.
- Less clutter around the box: the cost and token count are gone from every page that streamed them, the model is named rather than shown as a provider's internal URL, and the privacy and voice explanations are behind one link instead of taking six lines above your answer.
- On an application, "Build resume & letter" no longer sits there lit up while it is already building — and once everything is built it stops being the loudest thing on the page.
- An application's four steps now read as four words with a tick or a cross, on one line. Marking one applied is a single dropdown instead of two buttons and a hidden panel.
Reading your resume, and getting back into your interview
v1.61.0 · 7 August 2026
- The way back into your interview is at the top of your record now, on a button that names the conversation it will take you to and knows whether you are continuing one or starting a new one. It used to be at the very bottom, under everything, which on a full record is a long way down.
- Fixed: a stage with two conversations in it showed the turn count of one of them, more or less at random, and the other was hidden. Worse, coming back to that stage could drop you into an empty conversation you had opened and abandoned, with the real one still there and unreachable. You now land in the one you were actually last speaking in.
- You can tell us what to ask you about. A short list on your record — "the pricing rebuild at my last job", "how I actually use SQL" — and each entry goes to the conversation it belongs in. Write the topic, not the answer: nothing you type there is added to your record, it just tells the interviewer what to raise. Tick things off as they get covered.
- The interview stages describe themselves in plain words now, instead of showing you the instructions we give the model.
- When the roles list has nothing in it yet, you can paste a posting right there and get a tailored resume immediately. That has always worked and was on a page you had to already know about. Finding roles for you takes weeks to get good; this does not.
- We can put a short notice at the top of the pages when there is something worth everyone knowing. One at a time, and it stays gone once you dismiss it — on every device, not just the one you clicked on.
- You can read a resume without downloading it. "Read it" opens the finished document in a tab, which on a phone is the difference between looking at it and hunting through your downloads for a file. The PDF and Word downloads are still there next to it.
- The finished resume is now the first thing under the build button. It used to be inside a collapsed section, so the document you had just paid for was two taps and a guess away.
- Fixed: building an application told you to refresh the page when it finished. It now just shows you the result.
Your roles list shows what we actually know about each role
v1.60.0 · 6 August 2026
- Fixed: having a role read properly did not change its row. You could pay for a full reading, get a real score on the application page, come back to the list and still see "rough match, mentions 14 things" — the two halves of the product were keeping separate scores and never comparing notes. The row now shows the real reading: the score out of ten and a line of the actual reasoning, in place of the word count.
- The roles list is now two tabs: Evaluated and Raw hits. They were mixed together and sorted against each other, which cannot work — one number is how many words overlapped with your record and the other is a judgement out of ten. Evaluated is the one worth reading; Raw hits is everything else we have found.
- A button to read twenty more, on the Evaluated tab. The top of your list is read automatically as roles arrive, but that is a trickle and you may not want to wait for it.
- Every action on a row is now visible without opening anything: Evaluate, Evaluate and build a resume, Save, Hide, Hide company. "Start application" is gone from the list — deciding to apply from a title and two lines of text is not a decision, and the button is still there on the role's own page where the context is. Tapping the title still opens it.
- Marking a role applied is now two things: applied with the resume we built, and applied elsewhere. The second is always available; the first is greyed out until a resume exists. We were recording both as the same event, which meant we could not tell you — or ourselves — whether our documents are the ones getting replies.
- Long jobs show a progress bar based on how long that step has actually taken recently, and when it finishes the page says what was found rather than asking you to reload. The bar deliberately never claims to be at 100% before it is.
- The score moved into the row instead of sitting in its own column, which was taking about a seventh of a phone screen for two lines of text.
Twenty-nine more employers, including ones we had written off
v1.59.0 · 6 August 2026
- We now watch 38 employers, up from nine. Databricks, OpenAI, Stripe, Airbnb, Figma, Reddit, Coinbase, Lyft, Notion, Palantir, Scale AI, Anthropic and two dozen more. That is the number that decides whether a role can reach you at all, so it is the number worth moving.
- Most of them were reachable the whole time and we were looking in the wrong place. A company's careers page increasingly says nothing about where its jobs actually live, so we now also check whether they are on one of the standard job systems under their own name. That found seven large employers we had written off as unreadable.
- Kaiser Permanente and UnitedHealth Group are readable now too, through their sitemaps — the list of pages they publish for search engines. They are large, so they fill in over a few weeks rather than all at once.
- Roles now say where they are and whether they are on-site, and if you tell us where you can work, ones you could not physically get to drop to the bottom with the reason shown. Set it on your account page; it does nothing until you do.
- We are gentler with employers' websites than we were. One of them rate-limited us while this was being built, which was fair — we now pause between requests, read the big sites four times a day instead of hourly, and never re-read a job posting we already have unless the employer says it changed. Starting an application always re-reads that one posting first, so what you tailor against is current.
A job page you can read on a phone
v1.58.0 · 6 August 2026
- The score is at the top of an application now, above the buttons that spend money on it. It was at the bottom, under everything, which is the same as not having it.
- That page was about ten screens long on a phone. The steps are behind one control and each result opens when you want it, so it is about two.
- Every button now gets one sentence saying what it does, instead of a paragraph arguing why it exists. Roughly half the words on the pages you actually work in are gone.
- Tell us where you can physically work, on your account page. An on-site or hybrid role somewhere you cannot get to drops to the bottom of the list and says so — a hybrid job in Chicago is not a match for someone in California, whatever else it has going for it. Remote roles are unaffected, and this does nothing until you set it.
- On the roles list, tap a description to read the rest of it. The "…" was decoration before — nothing happened when you touched it.
- A run now shows the seconds ticking while it works. There was no sign of life between starting one and it finishing, which is indistinguishable from a hang.
- FIXED: opening a role you had already started created a SECOND copy of the same application, and since yesterday each copy also paid for its own scoring run. If you have duplicates in your applications list, that was this. They are still there and you can delete them.
- FIXED: an application never recorded which role it came from, so the buttons for recording a screen, an offer or a rejection — announced yesterday — could not appear for anyone. They work now. Sorry: yesterday's note described a feature that was not really there.
The pages catch up with the product
v1.57.0 · 6 August 2026
- Search your roles. A search box on the Roles page, at last — title or company. Filters also now survive paging and sorting instead of quietly resetting.
- The "mentions 12 things from your record" line now says which things, right on the row.
- The button on a role now says what it does. "Start application" creates the application and scores the posting against your record automatically — one click costs about a cent of model reading, where before it only opened a page of more buttons. Building the documents is still its own explicit click.
- Your applications list shows real names now — "Lead Data Scientist — Anthropic" instead of the internal folder name. Applications can also be deleted.
- The cover letter can finally leave the page: copy it, or download it as a text file, next to where it is shown.
- After you mark a role applied, you can record what happened — got a screen, got an offer, rejected. Rejected also archives it. This is the part of a job search everyone tracks in a spreadsheet; now it lives where the application does. Correction: this did not actually work until v1.58.0 the next day, because an application never recorded which role it came from, so the buttons never appeared for anyone.
- The home page tells the truth about your progress — an interview you are in the middle of no longer counts as not started — and it finally mentions the roles grid, which was somehow absent from our own list of what the product does.
- The Activity page shows the work you started, not a wall of background bookkeeping. The background scoring is one summary line with its daily cost.
Watching more employers, and knowing when we stop
v1.56.0 · 5 August 2026
- We can now add employers a few hundred at a time instead of one at a time, so the number of companies we watch is about to go up a lot. That number is the product: we read employers' own job boards, so a role only reaches you if we are watching the company it is at.
- Paste a job and we now learn that employer's whole board from the link in it. Every posting you paste makes the next search better for everyone.
- Two of our job board readers were quietly stopping early on large employers — one after 100 roles and one after 200 — and the roles past that point were being marked closed and then reopened on the next pass. Fixed. If you saw a role at a big employer flicker in and out of your list, that was this.
- Boards that stop working now say so instead of looking like an employer with nothing open, which is what they looked like before. A board that fails repeatedly gets checked less often and eventually switched off, with the reason written down.
- We can now measure whether you would find roles elsewhere that you do not find here. That is the bar this is being built to, and it is now a number rather than a feeling.
- FIXED: filtering your roles returned a page of raw error text instead of your roles. It happened whenever you filtered without picking a minimum pay, which is the default — so the filter bar was broken for most of the ways you would use it. Sorry. It also could not happen quietly: you saw it, which is the only reason it got fixed today.
This page, invite links, and three things we might build
v1.55.0 · 5 August 2026
- This page. Every change worth telling you about, written for someone using the product rather than someone reading the code.
- The version and the date it shipped are now in the footer of every page, so you can tell what you are actually looking at.
- Invites can be sent to several people at once, or shared as a one-time link that lets someone enter their own address. The link only grants permission to sign in — you still have to prove you can read the mailbox.
- Invites now expire after 30 days. Shared links last a week.
- Three things we are thinking about building are on your account page, with the full terms of what each would mean. None of them is on, none of them turns on by accident, and saying you want one tells us to build it sooner.
Choose how your documents look and read — and edit them yourself
v1.54.0 · 5 August 2026
- Four resume designs: Modern, Classic, Compact and Executive. All four are single column, because that is what applicant tracking systems actually parse — two-column resumes fail roughly a third of the time however good they look.
- Cover letters now take a length and a voice. Shorter letters get replied to more often, so the longest option says so rather than pretending more is better.
- Set a default in your account, or choose something different for one application.
- Tell it what to change. If a line is true but you do not want it that prominent, say so — for that document, or for everything you build from now on.
- Edit any resume by hand. It is your document; the PDF and Word file rebuild from your edits, and the version you already sent is kept.
- Job ranking reads the requirements a posting actually gates on, and marks a role down when your record does not evidence them — and says which ones.
A privacy policy written from what the providers actually promise
v1.53.0 · 5 August 2026
- The privacy policy was rewritten against the real terms of every provider in the chain, rather than the usual boilerplate.
- A general-purpose resume now lives on your record page, for the applications that do not start from a posting.
An About page that generates itself from the live routing
v1.52.0 · 5 August 2026
- The About page shows exactly which model sees which part of your data, read from the running configuration when you load it — so it cannot go stale.
- Buttons say what they will actually do, including when that is 'nothing yet'.
- The top of your job list is re-scored continuously rather than on request.
Build a whole application in one click
v1.51.0 · 5 August 2026
- One button reads the posting, checks your gaps, tailors the resume, writes the letter and reviews how the two read to a screener — in that order, because each step is bound by the one before it.
- It runs on our side, so you can close the tab.
- There is a hard ceiling on what one click can spend.
The jobs list becomes usable
v1.50.0 · 4 August 2026
- Filter by company, location, field, pay and how remote a role is.
- Hide a company you never want to see again, or report a posting that is wrong.
- Roles you have applied to, saved and archived each have their own tab.
Your name never reaches a model
v1.43.0 · 4 August 2026
- Employers, schools and people in your record are replaced with placeholders before anything is sent, and put back in our own code at the very end.
- The request body is inspected for anything identifying before it leaves. If something slips through, the build stops rather than sending.
- Interview transcripts stay with a US provider. That is a commitment, enforced by the routing rules and a test, not a promise in a policy.
Your data, on your terms
v1.36.0 · 4 August 2026
- Export everything or delete your account, from your account page, without asking anyone.
- Encrypted contact details, added to a document by our code at the last step.
- A help page, and a way to tell us when something is wrong.
Bug fixes and internal work are left out
unless they changed something you would notice. If something looks wrong,
tell us.