12 ms·
Insights from over 10,000 comments on "Ask HN: Who Is Hiring" using GPT-4o
- lukasgw97 2y agoCrazy, didn't know that React is so important! Well done!
- rickcarlino 2y agoNice work, OP. Looking at the graph, I sure hope we did not hit "Peak HN" in Q2 2023.
- comcuoglu 2y agoIMHO, I believe the peak was due to a combination of Zero Interest Rate Policy (ZIRP) and the pandemic, both of which have faded out this year. Elon Musk's highly publicized firing of a big part of the Twitter work force also set a precedent for lay-offs in the industry. But I am still optimistic that we will many such peaks ahead of us.
- raydev 2y ago> Elon Musk's highly publicized firing of a big part of the Twitter work force also set a precedent for lay-offs in the industry Layoffs across the industry were already well underway when Musk completed his first round. I think some tech company execs were happy to use Musk as a high profile excuse, but investors everywhere were demanding layoffs/corrections as early as Summer 2022.
- greenchair 2y agoyep it was the bad economy, not to worry it will improve next year.
- johnnyanmac 2y ago>But I am still optimistic that we will many such peaks ahead of us. I'm not. But I don't think my industry is too represenative on what affects HN hirings. I've seen maybe 5-ish game positions on Ycomb job boards ever (they don't even have it as a category to filter into).
- rareitem 2y agoI really like the graph at the 'what javascript frameworks are in demand?' part. Any insight to share about that?
- comcuoglu 2y agoYes, later this week I will follow up with something to tell a little bit about the animation and the sphere positioning, that graph was kind of the most fun in writing this blog post. Thank you for your feedback!
- mewpmewp2 2y agoHonestly I would just prefer to see it ranked as a table or similar to the databases on.
- l5870uoo9y 2y agoSurprised to see Redux featured so prominent in JS frameworks section, since it is so often criticized while many praise newer competitors like Zustand.
- chrisweekly 2y agoor Jotai!
- pacomerh 2y agoFrom my experience some of these companies that are already using new state libraries still have code in older libs like Redux and it's important for them to hire candidates that understand how they work since they changed the way you think about state, and if you understand that it's very likely you'll understand the other ones.
- gloosx 2y agoIt is really common for both Redux and React to be mistakingly labelled as frameworks by the people who don't really understand that these are libraries providing specific narrow piece of functionality leaving the architectural decisions and the overall application structure up to the developer. Chat GPT seems to have statistical awareness of this fact, yet people generally choose not to figure it out
- blowski 2y agoI wonder how this would compare against a random sample of jobs on, say, Indeed or LinkedIn. My experience of Hacker News is that it’s a very biased group (in a good way) to the general industry.
- SoftTalker 2y agoI've heard that many of the jobs posted on general jobs boards like that are never intended to result in a hire. They are posted when the company already knows who they are going to hire, but are legally obligated to post the position, or when the company wants to manufacture evidence that "no qualified candidates" could be found locally.
- 7thpower 2y agoI’ve never heard of this outside of government contracts that require n+X. Is this a visa related workaround or what? Or is it just chatter from the grapevine?
- Onawa 2y agoH1B visa workaround. Companies have to show that there are no qualified US candidates before they are able to use the H1B visa process. But there have been many abusers of the system. https://www.utahbusiness.com/systemic-abuse-of-the-h-1b-lottery/ https://www.utahbusiness.com/systemic-abuse-of-the-h-1b-lott...
- fishtacos 2y agoI can tell you that when I moved from a contract position to full time at Dell Services (now NTT Data Services), they had to review and possibly? interview 2 additional candidates despite hiring from within. We did have many work visa employees though. We worked with Healthcare clients. Big ones.
- SoftTalker 2y agoCould be visa-related, it's very easy to craft a posting that only your already-identified preferred candidate will qualify for. I firsthand know of companies that did this for H-1B employees. Or any public sector job where positions have to be posted but you already have your internal hire, son-in-law, or cousin lined up. But, it's mostly just rumor I've heard.
- SushiHippie 2y ago> Using Selenium, I used a script to google iteratively for strings query = f"ask hn who is hiring {month} {year}" to get the IDs of the items that represent the monthly threads. FYI, you could've just used the hackernews API, and get all posts by the user `whoishiring`, which submits all these who is hiring posts. And then filter out only the posts where the title starts with "Ask HN: Who is hiring?", as this bot also submits the 'Who wants to be hired?' and 'Freelancer? Seeking Freelancer?' posts. https://hacker-news.firebaseio.com/v0/user/whoishiring.json?print=pretty https://hacker-news.firebaseio.com/v0/user/whoishiring.json?...
- comcuoglu 2y agoThis makes just so much sense and would spare me 65 lines of code. Thank you!
- SushiHippie 2y agoNo worries! Btw in your database graph "Snowflake" seems to be off by two positions, as it has a smaller count than ElasticSearch and ClickHouse, but appears in front of them.
- tagyro 2y agoAlso NER would have done a better job imo
- codetrotter 2y agoAlso if you want to manually browse them, look at https://news.ycombinator.com/submitted?id=whoishiring https://news.ycombinator.com/submitted?id=whoishiring
- herodoturtle 2y agoWhat a great write up - thank you. Someone in NYC give this person a job! ^_^
- klyrs 2y agoGPT-4o is not a person.
- pixelatedindex 2y agoDid GPT-4o do the write up?
- efs24 2y agoMaybe
- gajnadsgjoas 2y agoThis should have "Show HN" tag Also you don't have to use selenium or HN api - there are DBs with updated HN data
- comcuoglu 2y agoCould you maybe link me one of those? I've googled a bit but didn't find ready-to-use DBs with that data.
- pvg 2y agohttps://news.ycombinator.com/item?id=40644563 https://news.ycombinator.com/item?id=40644563
- comcuoglu 2y agoThank you, looks promising.
- SushiHippie 2y agohttps://news.ycombinator.com/item?id=40782787 https://news.ycombinator.com/item?id=40782787 Also the clickhouse dataset, which is free. Google BigQuery can become very expensive.
- pvg 2y agoIt's handy but I think for your use case, the regular API works fine. For instance, you could have just pulled all the whoishiring posts https://hacker-news.firebaseio.com/v0/user/whoishiring.json?print=pretty https://hacker-news.firebaseio.com/v0/user/whoishiring.json?... without the googling hoops. Not that this is very helpful after you're done!
- pvg 2y agoShow HN is for things someone has made that other people can try and this is a write up which is perfectly fine as it is - https://news.ycombinator.com/showhn.html https://news.ycombinator.com/showhn.html
- BadCookie 2y agoInteresting data, but I think the percentage of remote listings is misleading. Many “remote” jobs now require you to live within commuting distance of a particular city, usually SF or NY.
- comcuoglu 2y agoI agree, I've realized too late that I should have introduced a "Hybrid" category in this.
- equasar 2y agoAnother thing to improve this, is to ask posters to add GLOBAL_REMOTE, COUNTRY_REMOTE or something that indicates is not local remote only (within the same country).
- DoingIsLearning 2y agoI would add one more category. Beyond the in-office and the N-days-a-week-hybrid, you have within _actual_ remote roles: - Country remote (mostly for taxation/regulatory) - Time zone remote (remote first companies but constraint to within 2 or 3 hours of HQ time zone) - Anywhere remote (actual remote but often as a contractor or EoR)
- gwd 2y agoNit: There appears to be both a "React Native" and a "React-Native" bubble in the JS framework graph.
- omoikane 2y ago> https://tamerc.com/posts/ask-hn-who-is-hiring/#what-javascript-frameworks-are-in-demand https://tamerc.com/posts/ask-hn-who-is-hiring/#what-javascri... "Node.js" and "NodeJS" are drawn as separate spheres, is that intentional? Similarly for "Vue.js" and "VueJS". (Maybe the same for "Angular" vs "AngularJS" too, although the former might be referring to Angular TypeScript).
- chrisweekly 2y agoAngular and AngularJS are distinct from each other; the other pairs are not.
- serial_dev 2y agoAngularJS support has officially ended as of January 2022. Angular is the actively supported "version". My vague memory of this is that AngularJS from v1 to v2 was such a huge difference (and arguably some percentage of the community qualify this update as a colossal f up), that they decided to go with a different name, and they also came to their senses and their backwards incompatible changes are no longer so bad.
- DaiPlusPlus 2y agoI’m convinced Angular’s adoption of RxJS for HTTP requests was a cunning move to cement job security.
- comcuoglu 2y agoThanks, is fixed now.
- kaycey2022 2y agoI saw express and express.js in the bubble chart
- jamestimmins 2y agoAny chance you could run a comparison of the number of Rust vs Golang jobs over time? I seem to have noticed that Rust has gotten more common than golang in the job postings, but it's hard to verify without code because there are so many false positives for "go" on any post.
- andrepd 2y agoUsing a 100 billion parameter LLM to `grep --count` surely is something
- snek_case 2y agoCan't wait to be able to run this locally using electron.
- codetrotter 2y agoRead the second part of what they said > it's hard to verify without code because there are so many false positives for "go" on any post. Hence grep being insufficient in this case.
- gammarator 2y agoYou can’t really trust that the LLM gets it right either, though.
- fragmede 2y agoIt didn't. As noted elsewhere, there the bubble cloud has Vue.js and "Vue Js", among others.
- t-writescode 2y agoUsing a 100B parameter LLM to overcome the large amount of experience required to learn how to do natural language processing one's self rather than using a library to do it sure is something. I should write a bot to analyze users and hide those who are actively and regularly negative online or on a particular forum and hide their comments.
- softwaredoug 2y agoReally cool. I’d love to see a similar analysis to “Who Wants to be Hired”. What trends exist in folks struggling to find work? That can help point people to how to target their career growth.
- t-writescode 2y agoThis is very neat! Thanks for using your time and literal dollars to work through this! As an added detail regarding the "remote" v "in-person", another interesting statistic, to me, is to know how many of those in-person job-seeking companies are repeats! It could absolutely mean they're growing rapidly, OR it could mean they're having trouble finding candidates. Equally, missing remotes could mean either they're getting who they need OR they're going out of business. All interesting plots on the graph!
- comcuoglu 2y agoThis kind of input is exactly what I've hoped for submitting it here, thank you. I agree!
- magicalhippo 2y agoWe're a growing B2B company in Norway. We struggled for years to fill in-person positions. We've been at least 2-3 devs short for the past 6+ years. That is, until December last year. Then it was like a flood gate had opened up. Suddenly we had tons of candidates to try to select from. I knew things were bad over in bay area and such, but I didn't expect it to hit the market over the pond here so quickly and abruptly.
- richrichie 2y agoIt is getting more and more apparent that BLS has been cooking jobs numbers.
- richrichie 2y agoI don’t understand the downvotes. Chairman of the federal reserve stated that jobs are overstated. https://www.federalreserve.gov/mediacenter/files/FOMCpresconf20240612.pdf https://www.federalreserve.gov/mediacenter/files/FOMCprescon...
- CrazyStat 2y agoHere’s what the chairman of the federal reserve actually stated about payroll numbers: > there’s an argument that they may be a bit overstated Not one, not two, but three qualifiers[1] that you left out of your retelling. [1] “there’s an argument,” “may be,” and “a bit”
- deleted 2y ago[deleted]
- jddj 2y agoNice charts, which lib? I'm on mobile currently and can't easily dig any deeper to answer my own question
- bobbywilson0 2y agoCool analysis with GPT-4o! I was doing some messing around with the same dataset recently around the "Who is Hiring" and "Who wants to be hired". Although I was just using pandas and spacy. (I was job supply and demand with the US FED interest rates here: https://raw.githubusercontent.com/bobbywilson0/hn-whos-hiring/main/hn-whos-hiring.png https://raw.githubusercontent.com/bobbywilson0/hn-whos-hirin...) I can actually see how nice it would be for an llm to be able to disambiguate 'go' and 'rust'. However, it does seem a bit disappointing that it isn't consolidating node.js and nodejs or react-native and react native. I'm curious on the need to do use selenium script to google to iterate, here's my script: https://gist.github.com/bobbywilson0/49e4728e539c726e921c79f614254ec6 https://gist.github.com/bobbywilson0/49e4728e539c726e921c79f.... Just uses the api directly and a regex for matching the title. Thanks for sharing!
- thomasfromcdnjs 2y agoI've been working on similar functionality for jsonresume -> https://github.com/jsonresume/jsonresume.org/blob/master/apps/registry/scripts/jobs/gpted.js#L270 https://github.com/jsonresume/jsonresume.org/blob/master/app... What the author could have done, and what I should have (but didn't) also, is add a bunch of possible values (enums) for each possible field value. This should solve it from coming up with variations e.g. node, nodejs In zod/tooling it would look like this; remote: z.enum(['none', 'hybrid', 'full']), framework: z.enum(['nodejs', 'rails']), But this just shifts the problem further down, which is now you need a good standard set of possible values. Which I am yet to find, but I'm sure it is out there. On top of that, I am working on publishing a JobDescription.schema.json such that the next time the models train, they will internalize an already predefined schema which should make it a lot easier to get consistent values from job descriptions. - Also I tend to forget to do it a lot recently in LLM days but there are plenty of good NER (Named Entity Recognition) tools out there these days, that you should run first before making robust prompts
- zitterbewegung 2y agoThis seems to have a similar problem in the Apple notes calculator where items that you set to as a variable in the new calculator mode can’t have spaces or any other delimiters. The training data or some kind of enrichment of the data would have to make the systems understand node.js and nodejs are the same just like on the new notes calculator Apple-sauce = $2.50 * 8 makes the first statement a variable.
- alberth 2y agoIs 10,000 comments a large enough sample size to gain insights from?
- Mathnerd314 2y agoIf you read TFA then you will see the answer is yes. Not deep insights though, it is basically just keywords and a few numbers. I think bytes is generally a better metric than number of entries, naturally 10,000 books will have a lot more insight than 10,000 one-liners.
- foolswisdom 2y agoI think it's bad to stack bars in a graph, because it means you can't properly gauge the second layer (for example, the remote jobs quantity, at the beginning of the results section). Better to have two bars side by side (for each timestamp), one for remote, and another for not remote.
- CuriouslyC 2y agoStacked bars are the right choice when you care more about the magnitude of the sum and less about the precise relative breakdown. Separate bars are the right choice when you're comparing multiple things that are similar and their combined magnitude isn't meaningful.
- ec109685 2y agoCould you have a the separate bars and a total line to capture both?
- CuriouslyC 2y agoYes, but it's busier/less information dense, so it's not a straight upgrade.
- globular-toast 2y agoAt least he does have remote jobs percentage on the same plot. But this is always the problem with plots. They always show what the author wants to show, not necessarily what the reader wants to see. I've often dreamed of a document format that embeds the data and allows the user to easily select the plot themselves. In this case you'd at least be able to toggle between stacked and side by side, but you might even prefer different bins or a different plot entirely.
- bastien2 2y agoThe irony of using a chatbot to gain insight into the current problems with the job market
- pipe2devnull 2y agoAre you saying you think chat bots are the current problem with the job market?
- booleandilemma 2y agoMaybe you can ask ChatGPT to analyze his comment for you.
- thekevan 2y ago"...so the only way to make this diagram not look ridiculous would be to use a logarithmic scale...as I have just realized some minutes earlier. Instead I’ve spent two hours to build a bubble-chart in 300 lines of code with three.js" Been there. Hackers will do what hackers will do.
- kristianp 2y agoSo funny to see the results presented as animated circles! But really good too. I guess it presents the data as sqrroot(x).
- smj-edison 2y agoThis seems like a great blend of LLM and classic analysis. I've recently started thinking that LLMs (or other ML models) would be fantastic at being the interface between humans and computers. LLMs get human nuance/satire/idioms in a way that other NLP approaches have really struggled with. This piece highlights how ML is great at extracting information in context (being able to tell whether it's go the language or go the word). LLMs aren't reliable for actual number crunching though (at least from what I've seen). Which is why I really appreciate seeing this blend!
- TechDebtDevin 2y agoI would say they're very bad at inferring any sort of complicated nuance.
- javcasas 2y agoSo we win the war against the machines with sarcasm, irony and double meanings? That would be one hell of a shitty Terminator movie.
- ramblerman 2y ago> I've recently started thinking that LLMs would be fantastic at being the interface between humans and computers Join the club :) I'd say that's a pretty mainstream idea right now. Exciting nonetheless
- smj-edison 2y agoYeah, I guess it is pretty mainstream :) Though another view I keep hearing is that LLMs are going to replace all jobs in 5 years, which quite frankly is disconnected from reality. Even assuming that we could create a ML model that could replace a human (which I think the current paradigm is insufficient after this[0] discussion), there's still the matter of building data centers, manufacturing chips, and it would need to be cheaper than paying a human. I personally would like AI to help humans be better humans, not try to replace humans. Instead of using AI to create less understanding with black box processes, I'd rather it help us with introspection and search (I think embeddings[1] is still a pretty killer feature that I haven't heard much noise about yet). [0] https://news.ycombinator.com/item?id=21786547 https://news.ycombinator.com/item?id=21786547 [1] https://terminusdb.com/blog/vector-database-and-vector-embeddings/ https://terminusdb.com/blog/vector-database-and-vector-embed...
- hughes 2y agoGiven the high price due to high token count, I wonder how different the results would be running the same analysis with a local model.
- frays 2y agoGreat post, thanks for sharing. Nit: There appears to be both MongoDB and Mongo in the database graph. Also, could you do a write up on how you actually used GPT-4o to assist you in this exploration? Or share some of the main prompts you used? Thanks!
- Rebuff5007 2y ago> HAS TO BE A BOOLEAN VALUE! How we can have a world where this statement exists, and anyone is bullish about LLMs? The lack of precision is appalling. I can see how a gpt-4o can be fun for toy projects, but can you really build meaningful real-world applications with this nonsense?
- deleted 2y ago[deleted]
- ilaksh 2y agoYes, I have built many. Also, have you met any humans? What about their lack of precision?
- migf 2y agoOMG have you forgotten why we got up to our asses in computers in the first place??
- Rebuff5007 2y agoAh right, humans are notoriously wonderful communicators and seldom have issues sharing ideas or making contracts with each other. Once bank of america and every other banking app hooks up one of these to my accounts, i better not have to dispute a charge with "HAS TO BE FRAUD, REALLY!"
- krick 2y agoI'm more interested in technical side of this, but I'm not seeing any links to GitHub with the source code of this project. Anyway, I have a tangential question, and this is the first time I see langchain, so may be a stupid one. The point is the vendor-API seems to be far less uniform than what I'd expect from a framework like this. I'm wondering, why cannot[0] this be done with Ollama? Isn't it ultimately just system prompt, user input and a few additional params like temperature all these APIs require as an input? I'm a bit lost in this chain of wrappers around other wrappers, especially when we are talking about services that host many models themselves (like together.xyz), and I don't even fully get the role langchain plays here. I mean, in the end, all that any of these models does is just repeatedly guessing the next token, isn't it? So there may be a difference on the very low-level, there my be some difference on a high level (considering different ways these models have been trained? I have no idea), but on some "mid-level" isn't all of this utlimately just the same thing? Why are these wrappers so diverse and so complicated then? Is there some more novice-friendly tutorial explaining these concepts? [0] https://python.langchain.com/v0.2/docs/integrations/chat/ https://python.langchain.com/v0.2/docs/integrations/chat/
- ilaksh 2y agoYou really don't have to use langchain. I usually don't except on a few occasions I used some document parsing submodule. The APIs between different providers are actually pretty similar, largely close to the OpenAI API. The reason to use a paid service is because the models are superior to the open source ones and definitely a lot better than what you can run locally. It depends on the task though. For this task, I think a really good small model like phi-3 could handle 90-95% of the entries well through ollama. It's just that the 5-10% of extra screw ups are usually not worth the privilege of using your own hardware or infrastructure. For this particular task, I would definitely skip langchain (but I always skip it). You could use any of the top performing open or closed models, with ollama locally, together.ai, and multiple closed models. It should be much less than 50 lines of code. Definitely under 100. You can just use string interpolation for the prompts and request JSON output with the API calls. You don't need to get a PhD in langchain for that.
- 2y ago
- susanhea 2y ago[flagged]
- Chinwe888 2y ago[dead]
- simonw 2y agoIt would be interesting to run this same analysis using Claude 3 Haiku, which is 1/40th of the price of GPT-4o. My hunch is that the results would be very similar for a fraction of the price.
- yunusabd 2y agoI was thinking the same, would love to hear the author's reasoning for going with gpt-4o. In my experience, anything above gpt-3.5-turbo is overkill for data extraction.
- maliker 2y agoBeautiful analysis! Great to see the hard stats on the technology breakdowns on the hiring threads with a clever LLM approach. And the write up was super clear.
- stuckkeys 2y agoVery cool idea indeed. Love the creativity level.
- benreesman 2y agoIf Tamer is reading this, I know of opportunities in NYC for sharp ML people. Feel free to drop me a line at b7r6@b7r6.net and I’ll be more than happy to make an introduction or two. NYC clearly doesn’t have the level of activity in this area that the Bay does, but there’s a scene. LeCun and the NYU crowd and the big FAIR footprint create a certain gravity. There’s stuff going on :)
- sillyfluke 2y agoI'd hire him if the conversation for the last question I asked went something like this. Me: On your first day of work, what would you say to me if I asked you to do the samething in your writeup but in production and at scale using the same third party services (chatgpt etc) you used in your writeup. T: "You're an idiot. I quit." Me: You're hired! Clearly it's a fun exploratory excercise, kind of like using kafta instead of a db for the main store for a crud app just to see how it works. But if you asked a senior engineer who follows the sector he would probably guess all the answers correctly blind. Tamer himself says it was his most expensive sunday hobby night. Now scale that uselessness to enterprise level. And you're not even sure if some of the results are hallucinated.
- therealdrag0 2y agoI sympathize and you’re maybe being facetious. But a good engineer doesn’t just say “you’re an idiot”, they are able to clearly document and communicate the expenses to the business folks, and they are able to brainstorm ways to change the cost dynamics with trade off options for business.
- fsckboy 2y ago>But a good engineer doesn’t just say “you’re an idiot”, they are able to clearly document and communicate just how you're an idiot
- noduerme 2y agoI'm just waiting out React, using my own much cleaner SPA framework for the last 10 years that's only about 5k LOC and avoids a lot of debouncing and fragmentation issues. From that three.js diagram, it looks like React should turn into a red giant at any moment. Can't wait.
- phendrenad2 2y agoReact has already jumped the shark, people just haven't realized it yet. The backlash will be big. I think most people will jump to Preact or Vue.
- daliusd 2y agoMore details are welcome. React seems to be doing fine and why Preact and not Solid for example?
- phendrenad2 2y agoAngular appeared to be doing well until React appeared and suddenly nobody wanted to touch it. People even accepted Angular 2's docs prioritizing DART. People accepted that DART was the future, at least until the moment React appeared and people had an alternative. Don't underestimate the power of pent-up demand.
- globular-toast 2y agoThe standard tech cycle: 1. Awesome new tech, 2. Tech gets more and more popular, 3. Tech gets more and more features to better cope with new use cases, 4. People get sick of bloat and create awesome new tech to replace it, 5. Go to 1.
- another2another 2y agoThe fuse is now lit for lots of apps currently working fine in production to be suddenly labelled 'legacy', and nobody wants to work on the crusty old React or (heavens to Betsy!) Angular anymore. In 5 years time earnest conversations will be had about trying to find somebody who is willing to maintain the thing, or do we have resource for a complete rewrite?
- gloosx 2y agoIt is not comprehensive to compare actual JS frameworks and UI/state management libraries. Obviously React will eclipse the frameworks since it is a simple interface library used by the frameworks themselves (like Next.js or React Native) Also seems a bit silly to include the JS runtime itself in comparison with the JS frameworks. In fact it is almost 100% of the time used along with a front-end framework/library at least on a build-level. I would not put a ton of trust in that frameworks demand data ;)
- mikeqq2024 2y agoYes I also noticed nodejs is included in comparison with the JS frameworks.
- Billywq 2y ago[dead]
- okokwhatever 2y agoSo, 50+ bucks to learn React+Postgres are good enough to find a job, cool.
- wklm 2y agoGreat analysis! The only thing I'd suggest changing is how the salary distribution is represented—a simple histogram might present it more effectively. Also, would you consider publishing the dataset you scraped?
- joshstrange 2y agoVery interesting, I did something similar but in reverse, looking at who wants to be hired. I only used OpenAI to determine location and then some (failed) analysis of candidate’s HN comments. The rest of the tools I wrote didn’t need LLMs (just string matching).
- N8works 2y agoIf you believe any "official data" isn't being politically gamed, I have a bridge to sell you.
- spdustin 2y agoOne of the reasons function calling seems to need better parameter names and descriptions is sneaky: if your function parameters are nested, descriptions aren't actually seen by the LLM. It only sees the names.
- luna4151 2y ago[dead]
- cinemavzbj 2y agoHi