{"total_weight":114,"flags":[{"key":"no_salary","slug":"no-salary-range","name":"No salary range listed","weight":18,"question":"No salary range listed — why, and is it a red flag?","why":"Ghost listings are rarely budgeted roles, so there is no real number to publish. A growing list of pay-transparency laws (Colorado 2021, NYC 2022, California and Washington 2023) requires ranges for covered employers — a covered employer that still hides pay is either non-compliant or not really hiring.","looks_like":"No dollar figure anywhere, or a dodge like 'competitive salary', 'compensation DOE', or 'salary commensurate with experience' with no numbers.","what_to_do":"Search the company's careers page for the same role — real, funded roles increasingly carry a range. If the company is in a pay-transparency state and still hides pay, weight this flag heavily.","sources":[{"label":"Colorado Equal Pay for Equal Work Act (pay transparency)","url":"https://cdle.colorado.gov/equalpaytransparency"},{"label":"NYC Local Law 32 of 2022 (salary range disclosure)","url":"https://www.nyc.gov/site/cchr/media/pay-transparency.page"},{"label":"California SB 1162 (pay scale disclosure)","url":"https://leginfo.legislature.ca.gov/faces/billNavClient.xhtml?bill_id=202120220SB1162"}]},{"key":"stale_posting","slug":"stale-posting","name":"Posting older than 30 days","weight":16,"question":"How long should a job stay posted before it's a red flag?","why":"Most genuinely open roles move to interviews within weeks. A listing that sits past 30 days is increasingly likely to be unbudgeted, already filled internally, or kept up to harvest resumes. Past 60-90 days the odds it is a live, fillable role drop sharply.","looks_like":"'Posted 30+ days ago', 'Posted 3 months ago', or a listing you remember seeing months back, unchanged.","what_to_do":"Check the original posting date (not the repost date) wherever the board exposes it. If you can't see a date at all, treat age as unknown — and ask the recruiter directly when the role opened.","sources":[{"label":"Project listing-age heuristic (see methodology)","url":"/how-it-works"}]},{"key":"repost_cycle","slug":"repost-cycle","name":"Reposted again and again","weight":14,"question":"Company reposts the same job every month — what does it mean?","why":"Reposting resets the visible posting date, which makes a stale listing look fresh. A role reposted monthly for half a year either has an impossible bar, a retention problem, or was never meant to be filled — all bad outcomes for an applicant's time.","looks_like":"A 'Reposted' label, the same req appearing every few weeks, or identical text under a new posting ID.","what_to_do":"Search the exact job title + company in quotes and sort by date. If you find the same listing across several months, ask the recruiter what happened to the earlier rounds before investing time.","sources":[{"label":"LinkedIn 'Reposted' listing label (help docs)","url":"https://www.linkedin.com/help/linkedin"}]},{"key":"vague_title","slug":"vague-title","name":"Vague or stacked job title","weight":10,"question":"Is a vague 'rockstar / multiple positions' job title a red flag?","why":"Real reqs are written for one approved seat with one title. 'Rockstar engineer', 'Various positions', or a title stacking three roles into one signals a resume-collection net cast as wide as possible, not a budgeted opening.","looks_like":"'Rockstar', 'ninja', 'guru', 'superstar', 'Multiple positions available', 'General application', or 'Designer / Developer / Marketer' all in one title.","what_to_do":"Ask which single role and level the req is approved for. A real hiring manager can answer in one sentence; a pipeline posting can't.","sources":[{"label":"Project title-pattern heuristic (see methodology)","url":"/how-it-works"}]},{"key":"boilerplate","slug":"boilerplate-description","name":"Boilerplate, buzzword-heavy description","weight":12,"question":"The job description is all buzzwords — is it fake?","why":"When a manager actually needs someone, the description names the team, the stack, the problems. Ghost listings are written by nobody for nobody, so they fall back on filler: 'fast-paced environment', 'wear many hats', 'self-starter'. High cliche density with no specifics is the textual fingerprint of a posting no one expects to fill.","looks_like":"Three or more stock phrases ('fast-paced', 'self-starter', 'team player', 'dynamic environment', 'wear many hats') and no named tools, products, or team details.","what_to_do":"Compare against the company's other listings. If every posting reads identically, the company is templating — and templated postings are where ghost jobs hide.","sources":[{"label":"Project cliche-density heuristic (see methodology)","url":"/how-it-works"}]},{"key":"no_hiring_manager","slug":"no-hiring-manager","name":"No named hiring manager or contact","weight":8,"question":"No hiring manager or contact named — does anyone read applications?","why":"A funded role has an owner — someone whose quarter depends on filling it. Listings with no named manager, no 'reports to', and no human contact route into an applicant tracking system that may have no human on the other end.","looks_like":"No 'reports to', no recruiter name, no team lead mentioned, applications go only to a generic portal.","what_to_do":"Find the likely manager on LinkedIn (search the company + the team named in the listing) and check whether they have mentioned the opening. Managers genuinely hiring usually talk about it.","sources":[{"label":"Project contact-presence heuristic (see methodology)","url":"/how-it-works"}]},{"key":"always_hiring","slug":"always-hiring","name":"'Always hiring' / talent-pipeline language","weight":10,"question":"'Join our talent community' — is the company always hiring or never hiring?","why":"Phrases like 'always looking for great talent', 'join our talent pool', or 'future opportunities' are honest in a way applicants miss: they describe resume collection, not an open seat. Your application feeds a database, not an interview loop.","looks_like":"'We're always hiring!', 'Join our talent community', 'for current and future openings', 'building a pipeline of candidates'.","what_to_do":"Treat pipeline postings as networking, not applications: connect with the team directly instead of submitting into the pool, and spend your application time on dated, specific reqs.","sources":[{"label":"Clarify Capital, 'Ghost Jobs' hiring-manager survey (2022)","url":"https://clarifycapital.com/the-state-of-interviewing"}]},{"key":"urgency_vague","slug":"urgency-without-details","name":"Urgent hiring, zero specifics","weight":6,"question":"'Urgently hiring' but the listing says nothing concrete — red flag?","why":"'Immediate start! Apply today!' paired with a description that names no team, no project, and no start date is a volume play. Real urgency comes with logistics: a date, an interview process, a reason. Manufactured urgency comes with nothing — it just wants your click.","looks_like":"'Urgently hiring', 'immediate start', 'apply now!' in a listing under ~120 words with no concrete details.","what_to_do":"Reply to urgency with one question: 'What is the target start date and interview process?' A real urgent req answers within a day. Silence is your answer.","sources":[{"label":"Project urgency-pattern heuristic (see methodology)","url":"/how-it-works"}]},{"key":"no_specifics","slug":"no-specifics","name":"No concrete details anywhere","weight":8,"question":"The listing has no team, no tools, no numbers — is it real?","why":"Specifics are expensive to fake. Team size, the product you'd work on, the tools in use, years of the company's history — real managers include them without thinking. A listing with not a single concrete fact was most likely generated to exist, not to hire.","looks_like":"A short description with zero numbers, no named products or tools, and responsibilities that could describe any job at any company.","what_to_do":"Cross-check the company site: does this team, product, or office actually exist? If you can't anchor a single claim in the listing to reality, don't spend 45 minutes on the application.","sources":[{"label":"Project specificity heuristic (see methodology)","url":"/how-it-works"}]},{"key":"wide_salary","slug":"wide-salary-range","name":"Implausibly wide salary range","weight":6,"question":"Salary range of $40k-$150k — what does a huge range mean?","why":"A range where the top is double the bottom (or more) usually means the range was written to satisfy a transparency law, not to describe a budgeted seat. It can also mean the 'role' is really several undefined roles — another pipeline pattern.","looks_like":"'$40,000 - $150,000', '$30 - $90 per hour' — a ceiling 2x+ the floor.","what_to_do":"Ask where in the range the approved budget actually sits for someone with your experience. A funded role has a number; a ghost role has a shrug.","sources":[{"label":"California SB 1162 (ranges must be good-faith)","url":"https://leginfo.legislature.ca.gov/faces/billNavClient.xhtml?bill_id=202120220SB1162"}]},{"key":"masked_employer","slug":"masked-employer","name":"Hidden or masked employer","weight":6,"question":"'Our client, a leading company' — why won't they name the employer?","why":"Staffing agencies sometimes post for real clients — but 'confidential client' postings are also the classic shape of fishing listings: collect candidates first, find (or never find) a client second. You cannot verify a company that won't be named.","looks_like":"'Our client', 'a leading company in its space', 'confidential', 'undisclosed', recruiter posting with no employer name.","what_to_do":"Ask the agency to name the client before you submit anything beyond a resume. If they won't name the employer even under NDA-style discretion, assume there may not be one yet.","sources":[{"label":"Project masked-employer heuristic (see methodology)","url":"/how-it-works"}]}]}