brightSay hi

Job hunting in China is ridiculous

· #life #work #notes

Job hunting in China is ridiculous.

A market can be brutal and still be a market. Someone reads the note, someone answers, someone says yes or no. This one keeps the brutality and skips the market. It is not subtle, and it repeats, in the same order every time: the message, then the interview, then the door.

Before anyone reads you

Five ways a message dies.

They never open it. The note sits in the thread and ages. A person whose work is to look at candidates has decided that looking is optional. You can refresh for a week. The unread mark is the whole reply, and it is not a reply.

They read it and go quiet. The chat shows read. Then it shows nothing else. You were worth a thumb. You were not worth a sentence.

They read it and answer a different conversation. You asked where the role sits, what the work actually is, whether the next round is still on. Back comes a sentence that would fit any candidate on any week: a slot nobody proposed, a slogan, an attachment you did not ask for. Eyes moved. The question did not.

An AI replies. You can hear the laminate. It thanks you for your interest in a role it cannot describe, gestures at a next step that is on nobody’s calendar, and closes with the warmth of a settings page. A person would have said Thursday, or no. The model produces a paragraph that feels like an answer and commits to neither.

A human replies, mechanically. The sentence has been sent so many times it no longer points at anyone. Received. Please wait for notification. We will feedback you. You are a row that tripped a macro. The macro is polite. Politeness with no decision is latency in a nicer font.

A rejection is a sentence. These five are ways of keeping you in the building without opening a door.

Judged before the file arrived.

On Boss Zhipin the résumé sometimes cannot be sent at all. The control is closed. No attachment, no link, nothing for a person to open. Some of them were never going to look, and the product makes the not-looking official. I do not get to hand the page over.

The reply is still a template. The template says the résumé is not suitable. Suitable is a word about a document. The document was not in the chat. What they declined was the chance to read, and the macro attached a reason that pretends the reading happened. A no I can use is a no about the work. This one is a no about a file they refused to hold.

The same company will then disagree with itself. One recruiter accepts the résumé. Another will not take it. Same name on the door, two policies about whether the page is allowed to exist. A bar that flips with whichever HR drew the thread is not a bar. It is two moods.

Pay for a higher rank, receive junk.

The platform is not a neutral hallway. VIP is sold as exposure: pay, and the résumé ranks higher, so more employers see it. The rank is the half of the promise they will say out loud.

The other half is what applicants who paid keep reporting. Past the bump in the list, the product goes and finds junk openings and pushes them at you, so a chat can start. A role that did not need to exist. A JD that is a costume. A conversation whose job is to have happened. You paid to be shown. What arrives is a pile of postings chosen to give you someone to message.

I have not watched their ranking code run. If that account is right, the membership does not stop at a higher slot. It manufactures threads, and every thread is more time — paid for, then spent — talking to a job that was never the point.

The interview is not a hire

It ends by evaporation.

Once a company has sat on a call with you, going quiet should get harder. It gets easier.

You hang up. You write to ask how it went, or you wait and then write. The follow-up joins whichever pile is in season: unopened, opened and blank, or answered with a line nobody would sign. The calendar invite was real. The afternoon was real. The part where they owe you an ending is where your time turns out to have been the expendable piece.

An interview with no aftermath is not a maybe. It is a deleted afternoon wearing a meeting link.

The opening is a prop.

Some JDs stay up because the company is not hiring and still wants the conversation. The interview is how they get you to walk through the way you did the work. You prepared for a seat. They took a free hour of your experience and called it a round.

Some HRs send the invite because a number on a dashboard has to move. The candidate is the KPI. Whether anyone intends to hire is a separate question, often unanswered. You clear the afternoon. Their week records an interview.

Some rounds fit on a link. They demand the room. The commute, the half day, the trip across the city. Online was available. Onsite was chosen. The work under discussion did not require a body in their building. The requirement was your time.

When the seat is actually filled, the posting often stays up anyway. Closing it is a click. Leaving it up sends the next person through the reading, the note, the hope, toward a job that already has someone in it. The JD becomes a flyer for a decision that already happened.

The interviewer who was not told.

One firm booked me and then failed to tell itself. HR set the interview. The interviewer had not heard of it. I showed up as the person holding the appointment, and the person across from me learned the appointment from me. I wrote HR. HR did not write back. Two employees, one calendar, and the only one still answering was the candidate.

Off the side of the JD.

One round stays with me because it was worse than silence. Silence at least doesn’t spend the hour in public.

The questions had nothing to do with the job description. A stretch can still be about the work. This was a different subject, asked as if it were the interview. He had wandered off the page and was going to grade me on the wandering.

He also did not know the material he had wandered into, and he played it as if he did. The honest move in that chair is short: say you didn’t follow, and ask again. He took the other move. Confident, corrective, and lost. An interviewer has one job in the room, which is to tell whether the person can do the work on the page. He spent the hour defending a fluency he didn’t have, about a topic the JD never mentioned.

I don’t need him to be the strongest engineer on the call. I need him to notice when a question isn’t about the job, and to notice when he himself is lost. He managed neither. Incompetent, and full of confidence about it. That is the whole review.

杭州班布人工智能技术 cancelled the seat.

I am using the name. “A company” is how these stories get washed into weather.

banbu logo, August 2025

The process was already going. Then, at the last minute, the decision showed up: this position is not hiring. My fit never got to be the question. The opening itself stood up and left. A role that can vanish mid-thread was never a role. It was a rumor that lived long enough to spend someone’s preparation, and the someone was me.

A no admits there was a job. “We’ve decided not to staff this” admits the earlier messages were a schedule drawn on fog. Headcount that disappears on a whim is not a pipeline. It is a maybe, dressed up as an interview.

AI Rudder, three rounds, then my own phone call.

AI Rudder took three rounds. The role was AI software engineer, real-time voice interaction.

After the third, the thread did what the unread companies do, with one difference: this company had already taken three pieces of my calendar. No rejection. No “still in progress.” The follow-ups went into the same hole as everyone else’s.

So I called. That call was theirs to place. It is how I learned two things they already knew and had not bothered to send. I was not a fit. And the last round had thrown out the evaluations of the first two.

Say the first part in writing, on the day you know it. Don’t make the candidate dial the number that delivers your decision. The second part is the one that sticks. Three rounds is a lot of judgment. The final hour overruled the hours before it, and nobody wrote down why the earlier read had suddenly become wrong. I had to phone in to discover that the first two conversations had been disposable.

AI Rudder sells voice agents. The product picks up and talks to people. The hiring process could not finish a conversation it had already opened.

Say it in the JD

If the school or the diploma is going to knock someone out, print it in the JD. A degree filter kept off the posting is the cheap version of the policy: school, degree, full-time or not, all of it knowable from the CV, none of it stated next to the stack. Finding it in round two, after the afternoon is spent, means nobody read the first page — or they read it and ran the audition anyway. The wall was real the whole time. Only the posting was coy.

Years get the same courtesy, and the courtesy is bluntness. If the bar is a number, write the number. “Familiar with” and “solid background” are how a requirement stays deniable: three years, five years, a logo someone has already decided to trust. Say it where a person can see it before they prepare. A hidden experience filter is the same stunt as a hidden degree filter. It just wears a more respectable noun.

The deniable version has a favorite shortcut. New graduate, therefore no experience. A graduation date is not a blank résumé. Internships are experience. Work that shipped is experience. A thing you built before anyone was paying you is experience. It just doesn’t arrive as a company chop and a title line. Reading “new graduate” as “has never done the work” is a lazy read, and then the lazy read hardens into a rule nobody was willing to print.

The missing first rung

Almost no company hires a new graduate.

The postings ask for years. Years are produced by a job. The job is what almost nobody will give the person who does not have the years yet. One firm can prefer experience. A market where almost every firm prefers it has deleted the entrance. Every window says the same thing: come back after someone else has already hired you. The someone else is running the same listing.

That is a gap in the market, and it gets scored as a gap in the candidate. The cohort leaving school is told to explain an empty payroll. The experience on the JD was supposed to be handed out by a previous employer. There is no previous employer, because that employer wanted years too. The years they all want are years nobody is willing to start.

A buyer’s queue

The incidents are what a search feels like. They are not the explanation. The explanation is the position of the two sides.

Where people outnumber the seats a firm actually intends to fill, the firm cannot lose the transaction. Another résumé arrives in the morning whether this one was read, refused by a template, or walked through an interview that was never a hire. A written no, a filter printed on the posting, a role closed when the person is found: those are how firms behave when candidates are scarce. They are not scarce. A side that cannot lose stops keeping the ritual of a deal. Silence in that setting is the price a long queue allows.

Nothing charges the firm for the waste. The person who was jerked around cannot withhold the next cohort; the cohort sends the application anyway. The board does not demote a company for an open loop or a stale listing. What reputation exists sticks to the brand that eventually hires, not to the process that spent strangers on the way there. An unanswered thread is free. An unstated rule is free. A posting that outlives the job is free. What is expensive is a bad hire with a manager’s name on it. The market has arranged itself around that fear, so the cheap behavior spreads and the feared one is refused before it can happen.

The missing entrance follows from the same fear. Experience is manufactured by employment. When every firm demands that the experience already exist, each firm is waiting for some other firm to pay for the training. The firm that hires a new graduate bears the cost. The firm that hires them later takes the value. No one volunteers to be the industry’s school, and the empty payroll is then graded as the graduate’s failure. A single company’s taste for experience is a preference. A market full of that taste is a market that has gone missing: the market for the first job. It will not be talked back into existence by people who were never let in.

The layer around the queue is paid to keep it noisy. A recruiting platform is not an exchange that clears. It is a feed, and a feed grows when both sides keep posting, chatting, and buying a higher slot in the list. A short market, true openings only and fast refusals, is a worse business than a loud one. Inside the firms, the people who run hiring are often counted the same way: interviews held, messages sent, a number that moved. The hire can fail to occur. The motion still scores. A feed that profits from friction, set on top of a department measured by friction, produces a process no one has to own. No one’s career depends on the person outside being treated as a party. Someone’s career depends on the activity, or on not being the name attached to a risky hire.

What calls itself a job market is a buyer’s queue with an advertising layer. The rules that actually sort people — school, years, already holding a job — stay off the page, because the page is an ad. The afternoon is cheap to summon and free to discard. New graduates are not failing to find a door. The door was shut so each firm could avoid being the one that opened it. A harsh market still clears. It says yes or no, and the terms are visible before the hour begins. This one holds people in the building and calls the holding a process. The brutality was never the odd part. The odd part is that the market left, and the queue stayed.

Who gets to fail

Put the same conduct on the other side of the desk. A candidate who does not read, cannot keep track of an appointment, bluffs through a subject they do not understand, or waits until the third round to disclose a condition they knew from the beginning would be easy to describe. Unprepared. Unreliable. Unprofessional. Nobody would need a dashboard to find the words.

Move those acts across the desk and they stop being disqualifying. The person who did not read still gets to assess your preparation. The person who did not understand still gets to assess your knowledge. The company that could not decide whether it had a vacancy leaves you with another application that went nowhere. Its failures do not interrupt its authority to judge yours.

Then you go home and try to learn something.

Was the résumé wrong? Was the answer weak? Should you learn another stack, get another credential, find a better way to explain the years you have not been allowed to begin? Some of those questions deserve attention. But they assume the process found something out about you. An unread message did not. An interview for a filled seat did not. A requirement concealed until the second round was not a weakness discovered in the second round. It was information withheld in the first.

The company leaves no explanation. You are left writing one, usually about yourself.

That is how the cost travels. First it takes the afternoon. Then it takes the evening in which you try to identify what you should have done differently. The people who wasted your time do not even have to accuse you of wasting theirs. You supply the accusation. You begin preparing your defense for the next interview.

I can be wrong for a job. Someone else can be better. A company can read my work, assess it honestly, and say no. None of that is the grievance.

The grievance is being asked, over and over, to improve in response to people who have learned nothing about me and are required to learn nothing about themselves.

I am willing to account for the work I have done.

The people deciding whether it counts should have to account for theirs.