Now
September 3, 2026
September 3, 2026
Fixes and reliability (early September 2026)Three things that were going wrong quietly. The largest was a filter panel building itself before anyone had opened it, which is what locked up Discover on load for some users.
For everyone
- Tabs that pick up the latest version: A tab left open kept running whichever version of cord it loaded with, until you navigated out of the app entirely. One customer sat on a four-day-old build and hit a bug that had been fixed and released days before. cord now checks for a new version every 15 minutes and whenever you come back to the tab. A tab you have not touched for an hour reloads itself quietly, an active one picks the new version up the next time you move between sections, and neither will reload over a position you are part-way through writing.
For job seekers
- Newsletter and events emails you can turn off: Switching "Newsletter and events" off in your email settings said "Saved", then showed the toggle back on the moment you reloaded, and the emails kept arriving. Nothing had been written. It affected everyone verified before February 2024, because that setting only got a record at verification and older accounts never had one. Turning it off now creates the record on the spot, and the emails stop straight away rather than up to an hour later.
For companies
- Company feeds that respond straight away: Opening a company feed under Discover looked ready, then locked up for a few seconds if you clicked a filter, scrolled, or switched job role, sometimes far enough for Chrome to offer "Page Unresponsive". The filter panel was building 2,065 checkboxes and around 10,500 page elements before you had opened it, 1,726 of them the 863-item skills list rendered twice, once for Core skills and once for All skills. Each panel now builds its options when you open it, so landing on a feed with the filters closed builds none of them instead of 2,062, and a saved feed still loads with its filters applied.
August 19, 2026
August 19, 2026
An Intros page that explains itselfA position that had never produced a single intro said "Ready for more intros?", and pressing Generate escalated that to "You've actioned all your intros! Great job."
Both credited you with work you hadn't done, and neither told you the one thing worth knowing: whether anybody matches the role.
Improvements
- Why there are no intros: An empty list now says nothing matches this position yet, and names the two things that usually change that, work type and salary range, with a link straight to the position. Of 908 positions running an intro agent, 854 have live intros, 53 have never produced one and exactly one had genuinely been worked through. The old copy was wrong for 53 of those 54 empty cases.
- Generating the first set: A position's first list only appeared once the overnight job reached it, and that job doesn't run at weekends. 72 live positions were sitting in that state. Generate intros is now the main button on the empty state and runs there and then.
Fixes
- A page that loads: A single position pointing at a listing cord couldn't resolve took the whole Intros page down, on every reload, which left the account with nothing to work from. The page now renders and the problem position is logged instead.
- Long position names: A long position title spilled out of the selector and over the buttons beside it. The selector is capped and long titles truncate. The empty state was also rendering behind the top navigation with its illustration cut off, and now clears it.
August 19, 2026
August 19, 2026
Emails that go to the right peopleOne company user received 20 message request emails over a weekend. Their notification settings showed no positions selected at all.
Those emails went to everyone at a company and were then trimmed down by each person's position preferences. If someone had no preferences stored, there was nothing to trim, so they got everything. This release sorts out who is on the list, and stops the emails that were being dropped on the way out.
Fixes
- Message requests: No stored preferences now means you're not a recipient, rather than a recipient for every position at your company. Around 45,000 preference rows were filled in from the positions people already hold, and newly invited users start muted, then pick up positions when they join a hiring team.
- Chaser emails: Reminders about one unanswered application on one position went to the whole company, so the 40 accounts with nothing stored were getting a chaser for every position going. They now go to the hiring team, plus anyone already in the conversation.
- Replies in a thread you're part of: If you were talking to someone about a position you don't own, your position preferences quietly stopped their replies reaching you. 6 of 221 conversation pairs over 14 days were in that state, 4 of them not on the hiring team. Being in the thread is now enough. Switching new message emails off still switches them off.
- Emails that never arrived: Two templates hit an error while rendering, and a failed render meant the email was never sent and never retried. 29 went missing in 15 days, roughly 2 a day, all of them digests and mention notifications. A comment mention on someone outside a shortlist accounted for 8, and now sends with a link to that person in search.
- A blip in the cache: When cord briefly couldn't read its cached email rules, it read that as "this person has no rules" and dropped every email in flight. It now goes back to the database instead.
- Position preferences on a new role: Creating or updating a position didn't wait for the hiring team's email preferences to save, so a member could end up holding a position with nothing stored against it. That write now finishes before the position is confirmed.
- Unsubscribe in demo emails: Clicking Unsubscribe always landed on "Unsubscribe failed". It works now. Those emails were also printing the redaction placeholder as it was written, so a profile read "Senior Cloud Engineer at Redacted" and "M. Ipsum". They now read "Senior Cloud Engineer" and "M.", with a line explaining that full profiles come with a subscription.
- Dates in emails: Work and education ranges rendered as "-05 '25 - Present". They now read "May '25 - Present".
August 18, 2026
August 18, 2026
Fixes and reliability (late August 2026)Five things that were failing quietly. The biggest one switched off live messaging an hour after you logged in, and never mentioned it.
For everyone
- Realtime messaging: An hour after logging in, the connection carrying live messages and notifications started failing and never recovered for the rest of that page's life, with nothing on screen to say so. It was failing on 87% of requests, 234,174 of them against 33,590 that worked, over 7 days. Sessions now renew that connection instead of giving up on it.
For job seekers
- AI messages: You'd watch cord start writing a message, then stop, leaving an empty box and no error. The message had been written every time. Across 6,413 generations in 30 days, not one came back empty, and the app was throwing it away. It only happened from your second message onwards, which is why it was so hard to pin down.
- Direct and external roles: A role could sit in the direct tab badged "Message directly" with a named contact, then open with an "Apply externally" button and no way to message anyone. The role's own setting now decides, whatever the company record says, in all seven places that classify one: the tabs, the counts, the ranking, search cards, your saved and applied positions, the company name in search, and the position page.
For companies
- Message requests that wouldn't open: A request from someone with no location on their profile crashed the page, so it sat there unread and couldn't be accepted or turned down. 21 active profiles were on that empty location record, along with roughly 9,240 passive ones.
- Feeds with a deleted position: Deleting a position left your feeds and their AI summaries still pointing at it, and the feed then showed "We couldn't load this" on every single load. A deleted position now drops out of the summary dropdown, and deleting one clears the summaries and feed references behind it.
August 14, 2026
August 14, 2026
One role, more than one officeA role open in three cities had one field to say so. It named one city, and the other two ended up in the description where no filter could reach them.
For companies
- Up to five locations: The logistics section of the position form now takes up to five office locations for a single role. Positions you've already posted are untouched.
- Location search: The location inputs suggest cities, postal towns and postcodes alongside street addresses, so you can name a city without having to pick a building inside it.
- In search and matching: The extra cities count everywhere the first one does, so location filters, sorting, the match score, the default feed and how people are ranked for the role all take them into account.
For job seekers
- On the position page: A role based in more than one office shows the main city with the rest behind a short "+2 more", on the position page, the preview and the about-this-position card. Up to three cities show before the rest fold away.
August 13, 2026
August 13, 2026
Boolean search that finds the people you meantA Boolean search for University of Oxford returned 3,563 people. Two in five of them had studied there.
Whatever you typed into the Boolean box went to a single query over the whole profile as one block of text, which is why the box kept behaving in ways nobody asked for. Five separate faults, all of them measured against the live index of 251,036 people.
Fixes
- Operators: A lowercase or was thrown away as a stopword and the words joined with AND instead, so python or java returned 35,789 people rather than 128,135. A lowercase not did the opposite of what it says: python not java required java. Both now read as what they are, and python not java returns 55,234.
- Universities: University of Oxford matched anyone whose profile mentioned it anywhere. It now reads the schools people actually listed, so 3,563 results at 40% accuracy become 1,412 at 100%. X University, X Uni, Uni of X and the acronyms recruiters type (LSE, UCL, KCL, QMUL, MIT) all resolve to the same place.
- Job titles: Product Manager returned 138,961 people, 12% of whom held the title. It now returns 17,152, all of whom do. Quality Assurance went from 13,660 at 8% to 1,114 at 100%.
- Punctuation: C# and C++ were the same search, both returning 77,160. They now return 37,884 and 29,438. Curly quotes pasted in from a document were also ignored, so the phrase never ran as a phrase.
- Skills are left alone: Deliberately. Of 27,110 results for Kubernetes, 13,234 only mention it in their work history without ticking it as a skill, and those are real matches. Mentioning a skill is evidence you have it. Being named in someone else's job description is not evidence you held their title.
- Saved searches: The repair happens as the search runs, so saved searches and alerts improve without being re-saved. Expect lower counts wherever a search was matching more than it should. That is the fix rather than a regression, but it is worth knowing before the numbers move.
August 10, 2026
August 10, 2026
AI search that shows its workingType "we need an ABM manager" into cord's AI candidate search and there is almost nothing in the sentence to filter on. cord searched anyway, on whatever it could pull out.
It now works out what the role implies, shows you where each guess came from, and waits to be told to go.
Additional Features
- What it fills in: A prompt that states no requirements gets skills, titles and seniority inferred from cord's own data, with a line explaining each one. What cord decided against sits in a collapsed "What else I considered". A prompt that already says what it wants skips the stage entirely.
- Where the numbers come from: Every figure in the explanation is read off cord's pool rather than written by the model. 135 verified people hold the Account Based Marketing skill, and their job titles are Head of Marketing (40%), Growth (30%) and Digital (24%), so those are the titles the search targets. A skill fewer than 25 people hold is left out, as is a title with fewer than 150 people behind it.
- It waits to be told: An inferred filter is a guess, so the search stops and asks before it runs. Anything that isn't plainly a yes is read as a correction, which is the recoverable direction to get wrong.
- Refining continues the conversation: A follow-up used to replace the whole exchange and reopen with "Got it, looking for a...", so changing one thing read as starting over. Earlier turns now stay on screen above the live one.
Fixes
- The readback reads as a sentence: Of 675 saved search names, 16% were plural ("a Software Engineers"), 15% opened on a vowel ("a AI Engineer") and 37% carried no role noun at all ("a Senior React"). The role is now written separately from the name, so "a AWS Cloud Engineer London Hybrid" reads back as "AWS cloud engineers".
- Skill chips: An inferred set of skills matches anyone holding one of them, but the chips said AND. Six inferred skills read as though every person had all six. The row now shows what the filter actually does.
August 7, 2026
August 7, 2026
AI messages that stay on the pointTwo things about cord's AI-written messages were wrong in ways that made people stop using them. Both are fixed.
Fixes
- Templates: Picking a template while the AI was still writing meant the AI draft overwrote it a few seconds later, so you had to pick it again, with a real chance of sending the wrong message. Choosing a template or typing now stops the AI, and your words win. This covers company outreach and request templates on the job seeker side.
- Decline reasons: Choosing "Experience (not right)" produced emails telling people they weren't senior enough, even though "Experience Level (too junior)" is a separate reason in the same list. Each reason now carries your own stored wording into the message, and the message can't decline on any other grounds. On the reported case, 3 of 3 generations mentioned seniority before the fix and 0 of 6 after.
- Experience level: Those same messages were reading the wrong level off a profile. cord stores the levels someone is open to, in the order they picked them, and the message used the last one. Someone open to mid, senior and junior was described as junior, with continuous work history back to 2011. That understated 14.8% of everyone with experience levels set.
August 6, 2026
August 6, 2026
Fixes and reliabilityA smaller digest this time: hiding people where you're actually looking, the loyalty discount on reactivation, and filter dropdowns on a narrow screen.
For companies
- Hiding people: Hiding someone in one feed left only Unhide on every other feed, so hiding them where you were actually looking took two clicks in the wrong order. The button now answers for the feed you're on, with a separate note when someone is hidden in another feed. Unhide and Undo also stick now. Across cord, 254 unhides were being ignored, 96 of them clicked within 15 seconds of the hide.
- Reactivation pricing: Companies coming back to cord were seeing full current pricing instead of a reactivation discount. Any company that has used cord before now gets a 20% recurring loyalty discount when they reactivate.
For job seekers
- Experience level filter: Long options in the Experience levels filter were cut off, and hovering a cut-off one showed an internal code instead of the label. The dropdown is wider, descriptions wrap onto their own line instead of clipping, and no filter anywhere shows a code reference now.
- Filter dropdowns: On a narrow screen, opening a filter dropdown could put the panel off screen and add up to 256px of empty space to the scrolling row of filter chips. Panels now stay pinned to their chip, wherever the row is scrolled to.
August 6, 2026
August 6, 2026
AI search that runs the search it shows youType a prompt into cord's AI candidate search and it reads your brief back as filter chips. The chips and the search running underneath them had drifted apart in a few places. This release lines them up.
Fixes
- Keyword search: The public search showed a quoted phrase in the chip and ran the unquoted words underneath. "Account Based Marketing Manager" returned 17,034 people that way, against 1 for the phrase itself. Both now run the phrase, so expect lower and more honest counts.
- Skills and job titles: AI search was losing any skill or title spelled differently from cord's own list. Ask for "typescript" and it landed in the keyword box as loose text, because cord stores it as "Typescript". Matching is now case-insensitive, and titles resolve from the label you see on the chip, so "full stack developer" finds Full Stack.
- Refining a search: Adding one skill to a search built on "any of these skills" used to turn it into "must have this one", and the other skill chips disappeared from the readback. A new skill now joins the existing list instead.
- Search names: Short prompts could pick up a stray fragment in the search name, so "engineer" read back as "Software Engineers 77db840e". It was an internal safety token sitting at the end of the prompt. Measured live, "engineer" leaked in 11 of 12 runs before the fix and 0 of 12 after.
- Demo feeds: A demo opened from the hiring page had no sort set, so it fell back to whoever had logged in most recently instead of the best matches. It now opens on recommended score.