Bangalore Is the Fourth-Biggest Tech Hiring City. It Isn't Doing Your Outsourcing.
We shipped location pages a couple of weeks ago, which finally let us ask our own data a question we had been guessing at for about a year: when a tech company names a place in a job post, which place is it?
The top three came back exactly as you would draw them from memory. San Francisco, then New York, then London. No surprise there, and honestly a little boring.
Then we looked at fourth.
The ranking
| City | Companies hiring there |
|---|---|
| San Francisco | 196 |
| New York | 172 |
| London | 143 |
| Bangalore | 85 |
| Toronto | 56 |
| Singapore | 54 |
| Seattle | 48 |
| Austin | 39 |
| Berlin | 38 |
| Paris | 38 |
| Dublin | 36 |
| Boston | 35 |
| Sydney | 34 |
| Chicago | 32 |
| Amsterdam | 31 |
| Tokyo | 27 |
| Denver | 19 |
| Los Angeles | 19 |
That is every city page we run, not a top slice, so you can see the shape of the tail as well as the head. (Those counts move a little every day as roles open and close. The pages are the live number; this post is a snapshot of the morning it went out.)
Bangalore sits at 85, ahead of Toronto, Singapore, Seattle and Berlin. Put differently: of every US city in our set, only San Francisco and New York have more tech companies hiring in them than Bangalore does. Not Seattle, not Austin, not Boston, not Los Angeles.
That is the part we did not expect, and it is worth being precise about what it means before anyone argues with it.
What the number actually counts
A company lands on a city page when at least one of its currently open roles names that city in the location field. We track 1,121 tech companies, we read the location string off every active role, and we match each string to a canonical place.
So "85 companies in Bangalore" reads as: 85 of the companies we track have at least one open role that names Bangalore. It does not mean 85 Indian companies. It does not mean 85 offices, or 85 headquarters. Just: 85 companies are hiring there right now, by their own job posts.
Which brings us to the interesting bit.
The mental model is out of date
Here is who shows up on the Bangalore page: OpenAI, Snowflake, MongoDB, Stripe, Databricks, GitLab, Datadog, Cloudflare, Figma, Adyen, Airbnb, ClickHouse, plus Zscaler, DigitalOcean, Airwallex, Samsara, Fivetran, Celonis, Together AI and Harvey.
Read that list again, because it is the same rotation you get on the San Francisco page and the New York page and the London page. Not a parallel tier of vendors you have never heard of. The same companies.
The model a lot of engineers still carry (and it was accurate once, which is why it stuck) is that Bangalore is where a western company sends the work it does not want to pay western salaries for. Support tiers. QA. Keeping the lights on in a system somebody in Menlo Park designed.
The list does not look like that anymore. When OpenAI and Stripe and Databricks put a role in Bangalore, they are not offshoring the maintenance. They are staffing the same product org in a second timezone.
And here is the part that actually surprised us: we do not track a single Indian IT-services company. No Infosys, no TCS, no Wipro (we checked, they return zero, they are simply not in our set). Bangalore reaches fourth place without any of them. This ranking is not measuring India's domestic tech industry at all. It is measuring global tech's presence in Bangalore, and that alone is enough to beat Seattle by 37 companies.
What this does not prove
We should be careful with the obvious victory lap here, because there is a version of this post that overclaims and we do not want to write it.
This is not evidence that remote work died, or that everyone is back in an office. A company naming Bangalore in a job post tells you it wants people in that timezone. It does not tell you those people sit at a desk five days a week. Our data has nothing to say about that, and anyone who tells you their job board data settles the remote debate is selling something.
It also is not a cost-of-living or salary claim. We are counting companies, not comparing pay. (We do have salary data, but that is a different post, and the honest answer is our coverage there is around half of roles.)
Why the list stopped moving
Small confession, and it is the reason this post is a week late.
When we first drafted it, a page existed for any place holding at least 20 companies. That sounded reasonable right up until we watched it work. Mexico City, Sao Paulo and Denver were sitting on 20 or 21, and inside a week all three had slipped under the line and their pages were gone. Los Angeles went the same way. We had published a number as though it were geography, and it was behaving like weather.
Worse than the flickering: those pages had been indexed, and one of our own posts links to Denver. That link had been quietly broken for two weeks before we noticed, which is the sort of thing you find out about your own site only when you go looking.
The obvious fix is to raise the bar. That fix is wrong, and it took someone saying it out loud to see why: raising it to 30 just moves the flickering to whoever is sitting on 30. The company counts have a smooth tail with nobody standing in a convenient gap, so wherever you draw a hard line, some city stands on it and dances.
So we stopped letting the count decide. Which places get pages is now a decision we make and write down, and no count anywhere can take a page away. Eighteen cities, fourteen countries, thirty-two pages, and they exist because we chose them rather than because a threshold happened to be met on a Tuesday. Denver and Los Angeles are back, at 19 companies each, which is thin and true and considerably better than a 404.
That last bit is the part we got wrong twice before getting it right. Our first attempt kept a much lower floor, around 10, on the theory that a nearly-empty page is embarrassing. But a thin page tells you something true and can recover; a 404 on a URL Google has already indexed is how you get removed from the index. And since the failures that would empty a page (a broken alias, a scraper outage) hit everything at once, a floor's real job turns out to be deleting every page simultaneously on your worst day. So there is no floor now.
The trade is real and worth naming: our list will not automatically grow when a new city gets big. We have a check that tells us when that has happened, and then a human goes and looks. For thirty-two pages, we would rather own the decision than let the scraper's week own it. (If you are wondering whether an SEO page should exist because a threshold said so, we now think the answer is no, and we are a little embarrassed it took a broken link to work that out.)
Where this data is soft
The honest caveats, because you should know what you are reading:
Location strings are free-form text written by whoever posted the job. "New York", "New York City", "New York, NY" and "NYC" are four different strings that mean one place, and we normalize them with an explicit alias list rather than clever guessing. That list is hand-maintained, so it is good, not perfect. If a company writes a place in a way we have not seen, we miss it.
Roles that name no city at all are invisible in this ranking. A fully distributed company posting "Remote" with no geography attached simply does not appear on a city page. So this is a ranking of named places, not a census of where every tech worker lives.
The role counts on each city page (San Francisco says 3,946) are the total open roles across those companies, not the roles in that city. We frame it that way on the page on purpose. It is the honest derivation available to us, and it is why this post ranks on company counts and not on job counts.
Country pages exist too, and we left them out of the ranking on purpose. They answer a different question (a company counts for a country if it names the country or any city we track inside it), so a country page and a city page are not the same measurement stacked at different zoom levels. Worth a post of their own rather than a paragraph here.
Go look at your own city
All eighteen city pages are live at remoet.dev/locations, alongside fourteen countries. If you want the data conversationally instead, you can connect your agent to Remoet and ask it directly.
We are genuinely unsure how much of the Bangalore result is a shift in how global companies staff versus a shift in what they are willing to say out loud in a job post. Both would look identical in our data (which is a slightly uncomfortable thing to admit in the same post where we lead with the number, but there it is).
So: does the ranking match what you are seeing from inside your own company? If your city is missing, or we have folded it wrong, come tell us on Discord. We would rather fix the alias list than defend it.