Hashtags occupy a strange place. Everyone uses them, nobody is confident they do anything, and the advice ranges from thirty per post to zero.
What they actually do now
Both major platforms moved to content based recommendation years ago. The feed does not need a hashtag to know what your post is about, because the model reads the post.
So the discovery value is much lower than it was. What remains:
Topic association. A small signal about what the post belongs to.
Search. Some people still browse hashtags. Not many, but not zero.
Recognition. A community tag signals membership to humans, which is a different value from algorithmic reach.
That last one is the most real. #buildinpublic does not get you distribution. It tells someone reading that you consider yourself part of that group.
The numbers
LinkedIn: three to five, maximum. Relevant ones only. Fifteen looks like spam and always has.
X: zero to two. Frequently zero is correct. Hashtag blocks on X read as a relic and actively make a post look automated.
Never as keyword stuffing. Five tags that each match the post are fine. Fifteen tags hoping one lands is a signal of low quality to both the platform and the reader.
Which ones
Match the post, not the aspiration.
Tagging #AI on a post about a CSS bug because AI posts get reach is transparent and does not work. The platform is reading the content.
Useful tags are the ones that genuinely describe the post: the technology, the domain, the community. #TypeScript on a TypeScript post. #BuildInPublic on a build update.
Placement
At the end, after the content. Hashtags inside a sentence break reading flow for a benefit that no longer exists.
On LinkedIn, the last line. On X, the same, and often skipped entirely.
What we enforce
Noomachy DevTracker caps hashtags per platform: five for LinkedIn, two for X, three for the community feed. Anything above is flagged.
More usefully, hashtags are generated from what the work actually was. Language tags come from the file extensions that changed. A post touching TypeScript files can get #TypeScript. A post touching nothing but Python cannot.
That constraint is small but it removes the main failure mode, which is tags chosen for reach rather than accuracy. Accurate tags are the only ones with any value left.
Whether to bother
For most technical content, hashtags are close to noise. The post succeeds or fails on the first line.
Two or three accurate tags cost nothing and might help a little. Fifteen aspirational ones cost credibility.
If you are trying to decide where to spend attention, spend it on the opening line. That is where the actual leverage is.