Now

How to hire a software engineer in 2026
Hiring a software engineer meant a job board and a lot of waiting. The process has changed at every step, so here's what it looks like now.

How to reduce time to hire
The usual advice trims days off the interview loop. The weeks are somewhere else.

The State of UK Tech Hiring: Summer 2026
AI took over the growth rankings this summer, the odds of getting hired vary fourfold by sector, and growing fast earns a company almost no attention. cord's quarterly read on UK tech hiring, built from 306 growth-ranked and 391 demand-ranked companies.

Where startups and scaleups find software engineers
The engineers worth hiring are rarely the ones applying. That single fact reorders the whole list of places to look.

Cost per hire: cord vs recruitment agencies
A recruitment agency charges a percentage of the salary for every hire. A direct platform charges a flat fee. On an engineer, the gap runs to thousands of pounds.

Applications to interviews ratio: cord vs Indeed
The application-to-interview rate is the number that decides whether a job posting was worth it. On general job boards it is low by design.
Changelog
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.
September 3, 2026
An Intros page that explains itself
A 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
Emails that go to the right people
One 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 19, 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 18, 2026
Company spotlight

What companies say about their time to hire on cord
Twenty-five companies on how long it actually took them to fill a role.

What companies say about their cost per hire on cord
Twenty-five companies on what happened to their cost per hire once the agency fee came out of it.

What companies say about candidate quality on cord
Twenty-five companies on the people they ended up hiring.

What companies say about using cord day to day
Twenty-five companies on how much of the week sourcing on cord actually takes.

What companies say about response rates on cord
Twenty-five companies on what happens when you message people who are actually looking for work.

Highlighted company: Pod
Six live roles, 67 conversations started in the last 30 days, every one of them with the salary on the front.
Other
How to hire Python developers: define the stack first
Your recruitment dashboard's biggest number is its least useful one
How to hire AI engineers
How to hire remote developers
How to get engineers to respond to your outreach