Negotiation makes the most sense for "high-leverage jobs" like software engineering or most other jobs in tech. An example of a low-leverage job would be to stock shelves in a grocery store or drive a taxi in NYC. The difference between the best and average worker in those fields is not that large. But in engineering, the difference in output for the best vs the average can easily be 10x or 100x.
Within the high-leverage category, there are jobs that have many comparable data points (e.g., junior or mid-level engineer) and those that are bespoke because they're rare/senior at the company, e.g., executive level or senior engineering leads.
Negotiation makes less sense for jobs that are purely stepping stones, or those that are time-bound. The classic example here is for internships. A good litmus test is if you know anyone who has ever negotiated that offer, e.g. no one at Stanford ever negotiated the summer research pay.
Finally, negotiation does not make sense if you already accepted the offer at a lower number.