A job description is not a description of a job. It's a negotiated document. A hiring manager writes the wish list, a recruiter trims it for the ad platform, and sometimes legal or a compensation team edits it again before it goes live. By the time you read it, the word "junior" in the title carries no obligation about the work, the pay band, or whether anyone on that team has the bandwidth to answer your questions.
That's the bad news. The good news is that the editing process leaves fingerprints. A posting written for a role that genuinely expects to hire someone with little experience looks structurally different from one that expects a mid-level engineer at a junior price, or one that exists to fill a resume database. You can tell them apart in about four minutes, before you spend an hour on a cover letter.
Read the requirements list as a budget
Every bullet in a requirements list costs the company something. Each one narrows the funnel, and a team that actually needs to fill a seat protects that funnel. A team that's fishing does not.
Start with the number of named technologies. Count every specific language, framework, database, cloud service, and tool across the whole requirements block. A real entry-level posting usually names a language, one framework, and maybe a database or a cloud provider — the things you'd genuinely need on day one. When the count runs past eight or nine, you're usually looking at the team's entire stack pasted into an ad, which means nobody sat down and decided what a new hire actually has to know.
Next, check whether the posting distinguishes required from preferred. A split list ("Requirements" plus "Nice to have") is evidence someone did the filtering work. A single flat list where everything is required means either no one did that work, or the bar is genuinely high and the title is wrong.
Then look at the years of experience. "1-2 years or equivalent project work" is a junior req. "2-4 years" on a junior title usually means the company's internal ladder puts this at mid-level and marketing chose the friendlier word — you can still apply, but negotiate against the ladder, not the title. "3-5 years" plus "junior" is a mismatch worth asking about directly on the first call.
Some postings are legally required to exist and practically closed. In the U.S., the PERM labor certification process obliges an employer sponsoring a green card to advertise the role publicly, including cases where the person they intend to keep is already doing the job. These ads tend to read oddly specific: an exact degree, an exact number of years, and a stack combination that reads like one person's resume. They are real jobs in a legal sense and filled ones in every other sense.
The responsibilities section tells you who will teach you
A junior hire is a training investment. Postings written by managers who understand that say so, because saying so is free and it attracts the people they want.
Look for concrete mentions of the support structure: code review, pairing, an onboarding buddy, a named ramp period, a mentor, a first-project description. Their presence isn't a guarantee — anyone can type "mentorship-focused culture" — but a specific claim ("you'll pair with a senior engineer for your first six weeks") is falsifiable on the interview call, and vague claims are not. Ask about the specific one. If it evaporates under a follow-up question, you learned something cheap.
Their absence is a weaker signal, but pair it with the ownership language. "You will own the billing service end to end" in a posting labeled junior is a contradiction worth flagging. Ownership language on a junior req often means the previous owner left, no senior has slack to absorb the work, and the plan is to hand it to whoever is cheapest. That's not automatically a bad job — some people learn fast in exactly that position — but go in knowing that's the trade, and price it into what you accept.
Team size matters here too. "Join our growing team of three engineers" means you'd be the fourth, on a team where the other three are already at capacity. Small teams can be excellent for a first job, and they can also be the ones with the least room to teach. The question that separates them: how many people have shipped to this codebase in the last year, and who reviews merge requests?
On-call in a junior posting isn't disqualifying on its own. Ask how deep the rotation is and how long the ramp is before you join it. "You join the rotation after your first quarter, and there's always a secondary" is a normal answer. No answer is the signal.
Check the parts of the posting the company doesn't control
The copy is marketing. The metadata around it is not, and that's where the cheapest verification lives.
Check how long the req has been open. Job boards surface a posted date, and LinkedIn labels reposts. A junior role that's been live and reposted for six months is either an unrealistic bar or a permanently open pipeline ad. Either way, your application is joining a very long queue.
Check whether the role exists on the company's own careers page, not just the aggregator. Aggregators scrape, and scraped listings go stale without ever being marked closed. If it's only on the aggregator, treat it as unverified until you find it at the source.
Read the salary band width, where the law requires one to be published. A narrow band on a junior title is a company that has decided what this level is worth. A band that spans an enormous range usually means the posting covers multiple levels and the title is the optimistic end of it — that's your cue to ask which level they're actually hiring at before you invest in the process.
Finally, look for evidence that senior people on that team have time to write things down: an engineering blog with posts from this year, public repos with real commit history, conference talks, published RFCs. Documentation is what mentorship looks like when it's asynchronous. A team that produces none of it may still teach you well in person, but you're relying entirely on individual goodwill.
Screenshot or save the full posting text when you apply. Companies edit live reqs, and the description you interviewed against can quietly change between the first call and the offer. Having the original makes the "this said junior with 1-2 years" conversation a factual one instead of a memory contest.
Run this over ten postings and a pattern shows up fast: the ones that survive all four checks are a small fraction of what's listed, and they're worth the tailored application. The rest get a fifteen-minute generic submission or nothing. Your time is the scarce resource in a job search, not the number of applications you can physically send.
Originally published at pickuma.com. Subscribe to the RSS or follow @pickuma.bsky.social for new reviews.
Top comments (0)