How to Research Salary Before Your Interview
TL;DR - Going into a salary conversation without data puts you at a structural disadvantage. The recruiter knows the market. You should too. - Levels.fyi is the most reliable source for big tech and established tech companies. Glassdoor and LinkedIn Salary are useful for mid-size and non-tech employers. - Never rely on a single source. Triangulate across at least two or three to get a realistic picture. - Adjust raw data for geography, level, and total comp vs. base salary. - When you can't find data for a specific company, use peer companies in the same sector and size range.
Recruiters know exactly what the market pays for the role they're filling. They have internal data, external benchmarks, and often years of experience managing offers at that specific company. You're walking into that conversation having done research or having done none.
The recruiter's goal is to make a hire within their budget. Your goal is to get the best offer within their range. Those goals are not aligned. Doing your research does not guarantee a higher offer, but not doing it almost guarantees you'll leave money on the table.
This guide covers where to find reliable salary data, how to make sense of conflicting numbers, and what to do when the data on your target company is thin. Once you know the market, negotiating your first engineering offer becomes a much more grounded conversation.
Why Salary Research is Specific Work
Searching "software engineer salary" and taking the first number you see is not research. It's a false sense of preparation.
The number you need depends on:
- The company. A major tech firm and a mid-size regional company do not pay the same for the same title.
- The level. "Software Engineer" at Google means something specific (L3 or L4). "Software Engineer" at a 50-person startup means something else entirely.
- The location. Bay Area base salaries typically run higher than equivalent roles in, say, Raleigh or Dallas.
- The component. Some data shows total comp. Some shows base only. They are not comparable.
Salary research that doesn't account for these four dimensions produces meaningless numbers. The sections below walk through the best sources and how to filter them correctly.
Where to Research: The Primary Sources
Levels.fyi
Levels.fyi is the best source for salary data at established tech companies. It was built specifically to track total compensation, and it separates data by level (not just title), which makes it far more useful than general job boards.
When you look up a company on Levels.fyi, you can filter by:
- Location. This matters because many large companies pay differently in different cities.
- Level. Filter for the specific level you're interviewing for. Don't look at the full range and assume you'll land at the midpoint.
- Total comp vs. base. Levels.fyi shows total compensation breakdowns, including base, equity (annualized RSU value), and bonus.
The data is self-reported, which means it's subject to some bias. Engineers who received high offers tend to be more motivated to share. The numbers may skew slightly high, especially for top-end offers. Use Levels.fyi as a ceiling check and triangulate with other sources.
Levels.fyi is most useful for: Google, Meta, Amazon, Apple, Microsoft, Salesforce, Stripe, Airbnb, Lyft, and similar large or well-known tech employers. The dataset thins out for smaller companies.
Glassdoor
Glassdoor aggregates self-reported salaries from a broader set of employers, including mid-size companies and non-tech firms that won't appear on Levels.fyi.
The weakness of Glassdoor: it often shows base salary only, the filters for level are less reliable, and the sample sizes at smaller companies can be too small to be meaningful. A company with three salary data points on Glassdoor is giving you an average of three salaries that may span multiple levels and years.
That said, for mid-size employers and non-tech companies — industries like healthcare, finance, insurance, or manufacturing — Glassdoor is often the best available data you'll find. Use it for directional reference, not precise targeting.
LinkedIn Salary
LinkedIn Salary requires a Premium subscription but provides filterable salary data by title, industry, location, and years of experience. The dataset is large because LinkedIn has enormous reach.
The same caveats apply as with Glassdoor: data is self-reported, level filtering is imprecise, and the numbers often reflect base salary only. LinkedIn Salary is most useful as a secondary data point when you've already established a baseline from another source.
One underused feature: LinkedIn shows salary ranges for specific job postings when pay transparency laws require disclosure. If a job posting for your target company shows a range, that range is real and specific. Use it.
Blind
Blind is an anonymous professional forum popular with engineers, particularly those at large tech companies. It's not a structured salary database, but it has salary discussion threads, offer comparison posts, and candid conversations about compensation that you won't find elsewhere.
The data is anecdotal and unstructured. A thread where engineers are comparing offers is not a dataset. But it's often the most honest picture of what real offers look like at specific companies at a specific point in time. Use Blind for texture and for catching anomalies — if you see many people discussing that a company has been lowballing new grads, that's useful context even if you can't cite it numerically.
Comprehensive.io
Comprehensive.io aggregates compensation data from H-1B visa filings, which are public records. This provides a floor of real reported salaries at companies that file H-1B applications, which includes most large tech employers.
H-1B salaries are required to meet the "prevailing wage," which means they tend to represent the minimum a company is willing to pay for a role, not the median or the top. Use Comprehensive.io to establish a floor: if a company's H-1B filings show that they consistently pay software engineers in a certain range, you know their offers are unlikely to fall below that.
How to Triangulate Multiple Sources
No single source is right. The goal is to find the range where multiple sources agree.
A practical approach:
- Start with Levels.fyi if the company appears there. Note the median total comp for your target level and location.
- Check Glassdoor for the same company and title. Note whether the number is base or total. If it's base, add a mental estimate for equity and bonus based on what you found on Levels.fyi.
- Look for any LinkedIn pay transparency data in current job postings.
- If the company has H-1B data on Comprehensive.io, use it as a floor check.
- Scan Blind for recent offer discussions for the company.
After this exercise, you should be able to define a realistic range: a floor (below which offers are unlikely), a midpoint (typical for new grads at that company), and a ceiling (strong offers for candidates with more leverage or competing bids).
Your ask should typically target the midpoint or slightly above. You're not asking for the ceiling with zero leverage. You're not accepting the floor by default.
Understanding Base vs. Total Comp in Listings
This distinction is one of the most common points of confusion when researching salaries.
Base salary is your fixed annual pay. It arrives reliably regardless of company performance or your equity vesting schedule.
Total compensation adds equity (typically RSUs at public companies, annualized over the vesting schedule) and bonuses on top of base. At Big Tech companies, total comp can be significantly higher than base. What makes up software engineer total compensation is worth understanding before you start comparing offers.
When comparing two salary data points, make sure you're comparing the same component. A $160,000 total comp package and a $160,000 base salary are very different things.
If a source doesn't specify, check the context. Levels.fyi typically shows total comp by default. Glassdoor often shows base. LinkedIn varies by listing.
Adjusting for Geography
Raw salary data from any source reflects a mix of geographies. If you're looking at Levels.fyi for a company with offices in multiple cities, filter specifically for your target location. Pay differences across locations at the same company can be substantial.
For remote roles, the adjustment depends on the company's pay policy. Some companies pay everyone the same "national rate" regardless of where they live. Others apply a location multiplier that reduces pay for employees outside high-cost markets. Before you adjust your expectations for a remote role, find out which policy applies. This is a fair question to ask a recruiter before you've received an offer.
If you're comparing data for a company in a market where you have limited data, look at companies in the same sector and size range in that market. A mid-size SaaS company in Austin will have compensation benchmarks closer to other mid-size SaaS companies in Austin than to a Big Tech company in Seattle.
What to Do When Data Is Thin
Not every company will have good salary data. Early-stage startups, small firms, and niche industries may have no reliable data at all.
When data is thin, work from analogies:
- Find companies in the same sector and similar stage or size.
- Use their salary data as a proxy.
- Look at job postings from those companies to see if they publish ranges.
- Ask in relevant communities (Blind, specific Slack groups for your industry) if anyone has recent data on the company.
You can also ask the recruiter directly and early. In some markets and with some companies, asking what the budgeted range is for the role is a normal part of early screening conversations. Not every recruiter will answer, but some will give you a range, and that's more reliable than any third-party data.
If you genuinely can't find data for a company, use the data you have to set your own floor. Know the minimum you'd accept based on your market research of comparable companies. That number becomes your anchor, even if you can't cite a specific data point for this particular employer.
Before the Salary Conversation
The goal of all this research is to arrive at the salary conversation with a specific number or range in mind, grounded in data. Not a vague sense of "I'd like to make more than my last job" and not a number you pulled from a single Google search.
When a recruiter asks "what are your salary expectations," you want to be able to say something like: "Based on my research on comparable roles at companies in this market, I'm targeting a base salary in the X to Y range." That statement is calm, specific, and informed. It signals that you've done the work.
The research you do before the interview is not just preparation for negotiation. It also tells you whether the role is worth pursuing at all. Understanding entry-level pay across company types before you start applying helps you filter for opportunities that can realistically meet your requirements.
The Bottom Line
Salary research is not glamorous work. It involves looking at multiple data sources, filtering carefully, accounting for geography and level, and reconciling conflicting numbers. It takes a few hours.
Those few hours are among the most financially consequential you'll spend in your job search. A well-prepared candidate who knows the market can negotiate from a real position. An unprepared candidate accepts whatever lands in front of them.
Do the research. Know your number. Show up ready.
For the full picture on negotiating once you have that number, see salary negotiation for your first engineering job.
If you want structured support with job search preparation and negotiation strategy, here's how the Globally Scoped program works.
Interested in the program?