Short answer: Say "hashtag" immediately before the word to get the # symbol, and "at sign" before a name to get @. Multi-word hashtags and exact handles are where dictation breaks down, so speak the caption, then type or use replacement rules for the tags themselves.
You can dictate an entire Instagram caption in fifteen seconds, and then spend a full minute fighting with the hashtags at the end of it. That ratio is backwards, and it is the reason a lot of people who happily dictate messages still stop and switch to thumb-typing the moment a # or @ enters the picture.
This guide covers what actually works: the spoken commands that produce the symbols, why multi-word hashtags come out mangled, why handles almost never survive dictation intact, and the one setup step that turns your ten most-used hashtags into a single spoken phrase.
The two commands: "hashtag" and "at sign"
Both macOS and iOS dictation treat certain spoken words as symbols rather than text. The two you need here:
- "hashtag" inserts
#. On most recent versions of iOS and macOS, saying "hashtag winning" produces#winning, with the symbol attached to the following word. If your system types the literal word "hashtag" instead, try "number sign" or "pound sign", which are the older names for the same symbol and are recognized more consistently across language settings. - "at sign" inserts
@. Saying "at sign Sarah" produces@Sarah. Plain "at" does not work, because "at" is one of the most common words in English and dictation will always treat it as a word.
Two habits make these commands land reliably. First, leave a tiny beat before the command word so the system can tell it apart from normal prose. If you barrel through "great session today hashtag fitness" as one undifferentiated stream, you will sometimes get the words instead of the symbol. Second, say the command and the word that follows it as one connected phrase: "hashtag fitness," not "hashtag" … long pause … "fitness," which can leave a stray space between the symbol and the word.
These are the same mechanics behind every spoken symbol, and if you want the full list of what dictation can insert, our reference on dictating quotation marks and special characters covers the complete symbol vocabulary.
Why multi-word hashtags fall apart
Here is the part nobody warns you about. Dictation is a sentence engine. Its whole job is to take the sounds you make and format them the way sentences are formatted: words separated by spaces, capitals only where grammar calls for them. A hashtag is the opposite of a sentence. It is a single unbroken token, often with internal capitals, and the sentence engine has no concept of it.
So when you say "hashtag small business Saturday," you get:
#small business Saturday
The # attached to the first word, and then the engine did exactly what it is built to do: it put spaces between the words. On the platform, that renders as a hashtag called "#small" followed by two ordinary words. Your tag is broken and you will not find out until the post is live.
The same mechanism causes the casing problem. Even if you could remove the spaces, you would have #smallbusinesssaturday, when what you wanted was #SmallBusinessSaturday. The internal capitals are not decoration. Screen readers use them to pronounce the tag as separate words, so the all-lowercase version is genuinely worse for accessibility. Dictation will never produce those capitals, because no English sentence capitalizes the middle of a word.
There is no spoken command that fixes this. Your realistic options for multi-word tags, in order of practicality:
- Dictate the caption, type the tags. Speak everything up to the tag block, then put the mic down and type the hashtags. This is the "speak the sentences, type the strings" rule, and it is the same boundary we draw for email addresses and URLs, which break in exactly the same way and for exactly the same reason.
- Dictate the words, then close the gaps. Say "hashtag small business Saturday," then tap into the text and delete the two spaces and fix the capitals. Fine for one tag, tedious for ten.
- Use a replacement rule so a short spoken phrase expands to the exact tag. More on this below, because it is the only option that actually scales.
Single-word hashtags, to be clear, dictate beautifully. "Hashtag sunset" gives you #sunset every time. If your tags are all single words, you can dictate the whole post end to end and skip the rest of this section.
Mentions are worse, and it is not the symbol's fault
The "at sign" command works fine. The problem is everything after it.
A handle is not a word. It is an exact string that some person chose in 2014 when their actual name was taken: @sarahjenkins_writes, @mike87k, @the.real.tonyb. Dictation hears "at sign Sarah Jenkins writes" and gives you @Sarah Jenkins writes, which mentions nobody. It cannot know about the underscore, the missing space, the lowercase, or the "87k," because none of that is derivable from sound. The information simply is not in your voice.
So treat mentions as a two-class problem:
- People you mention constantly (your co-host, your brand account, your top collaborators): set these up once as replacement rules or shortcuts so a spoken phrase produces the exact handle. Setup takes thirty seconds per person and pays off on every post afterward.
- Everyone else: dictate up to the mention, then type the first few characters and let the platform's autocomplete finish the handle. Every major app (Instagram, X, TikTok, LinkedIn, Threads) pops up a picker as soon as you type @ plus a few letters, and picking from the list also guarantees you tagged the right Sarah. Honestly, autocomplete-after-@ is the correct tool here even for people who never dictate.
One more platform quirk worth knowing: in some apps, typing or inserting an @ triggers the mention picker immediately, and text inserted after it may or may not register as a "real" tagged mention versus plain text that merely looks like one. After dictating around a mention, glance at it. A live mention renders differently (usually bold or colored) before you post. If it is plain text, tap the handle and reselect it from the picker.
The fix that scales: replacement rules
If you post regularly, you do not use random hashtags. You use the same fifteen to twenty tags in rotating combinations: your niche tags, your location tags, your campaign tag. That repetition is exactly what replacement rules are for.
The built-in route is Text Replacement (Settings → General → Keyboard → Text Replacement on iPhone, System Settings → Keyboard on Mac). Create a shortcut like ttags that expands to your full travel tag block. It works, with two caveats we have covered before: expansions only trigger in apps that use the standard text system, and stale entries have a way of ambushing you months later.
The stronger version is a personal dictionary that lives inside your dictation tool itself. Voice Keyboard Pro's Smart Vocabulary lets you define replacement rules that apply as you speak: you say "travel tags" and the inserted text is your exact block, #TravelPhotography #SoloTravel #HiddenGems, capitals, no spaces, all three tags, done. Say "mention the shop" and out comes @the.real.plantshop with every dot and underscore intact. The rule fires during transcription, so it works in any app on your Mac, and the whole tag block that used to cost you a minute of thumb-typing costs one spoken phrase.
A sensible starter set of rules, if you want a template:
- One rule per platform for your core tag block ("insta tags," "LinkedIn tags")
- One rule per campaign or launch tag, added the day the campaign starts and deleted when it ends
- One rule per frequently-mentioned handle, named after the person ("mention Priya" →
@priya_codes)
The workflow, end to end
Putting it together, here is what dictating a social post looks like when it goes right.
On Mac: click into the compose field on the web version of whichever platform you are posting to. Hold your hotkey, speak the caption naturally, sentence by sentence, and release. Text lands at your cursor. Then either speak your replacement-rule phrase for the tag block, or type the tags if they are one-offs. Total time for a three-sentence caption with five tags: well under a minute.
On iPhone: with Voice Keyboard Pro's keyboard active, tap the mic button in the app you are posting from, speak the caption, and tap done. For quick fixes, Voice Edit means you do not have to hunt for the cursor with your fingertip: speak the change you want ("change winning to grinding") and the text updates. If you post to an international audience, the keyboard's two-way translation while dictating covers 24 languages, which pairs nicely with the fact that hashtags themselves cross language borders untranslated.
The caption is the part where voice wins enormously. You speak at 130 to 150 words per minute; most people type on glass at a fraction of that. Spending those savings on the caption and handling the tags with rules or autocomplete gets you the whole post at speech speed. If you post on specific platforms heavily, we have per-app guides for Instagram, TikTok, X, and LinkedIn that go deeper on each one's quirks.
Troubleshooting: when the commands type the literal words
If you say "hashtag beach day" and get the words "hashtag beach day" in your text, run through these in order:
- Check your dictation language variant. A mismatch between how you speak and the variant you have selected (say, English (US) versus English (India)) degrades command recognition across the board. The symbol commands are usually the first casualty.
- Slow the seam. The most common cause is simply saying the command mid-stream with zero prosodic break. Give it a beat: "…such a great morning. (beat) Hashtag beach day."
- Try the alternate names. "Number sign" and "pound sign" for #, and make sure you are saying "at sign" and not just "at."
- Check for a Text Replacement collision. If you or a past version of you created a shortcut involving "hashtag" or an @ string, it can rewrite the output after dictation inserts it correctly. Watch the timing: if the right text appears and then changes, the saboteur is a replacement rule or autocorrect, not dictation.
- Reduce background noise. Command words are short, and short utterances are the first thing noise eats. If the caption transcribes fine but commands keep failing, other voices in the room are the usual culprit.
What not to dictate
A quick boundary list, in the spirit of honesty about what the mic is bad at:
- Exact handles you do not have a rule for. Autocomplete after a typed @ is faster and guarantees the right account.
- Tag chains in a language you are not dictating in. Symbol commands are per-language; mixing them mid-utterance is a coin flip.
- Anything where a broken tag has real cost, like a paid campaign tag with tracking attached. Speak the caption, then paste the campaign tag from the brief. Thirty seconds of care beats a live post with a dead tag.
FAQ
Does saying "hashtag" work in every app?
The command is handled by the dictation system, not the app, so it works anywhere dictation works. What varies by app is what happens after the symbol lands: some compose fields immediately pop a tag or mention picker, which can interact oddly with text arriving by voice. If a picker opens mid-dictation, finish speaking, then resolve the picker by tapping.
How do I dictate a hashtag with numbers in it, like #Top10?
Say "hashtag top ten" and expect to fix the number. Digits inside tags run into the same formatting guesswork we cover in dictating numbers and dates: the engine decides between "ten" and "10" from context, and inside a tag there is no context. For recurring numbered tags, a replacement rule is the reliable answer.
Can I dictate a whole block of 20 hashtags?
Not word by word, realistically. Twenty tags means twenty chances for a spacing or casing break, and proofreading a wall of tags is slower than typing them. Store the block as one replacement rule and insert it with one phrase. Curate the block in a notes app once a month instead of rebuilding it per post.
Why does my @ mention tag the wrong person?
Because the platform matched the text to a different account than you meant. This is a platform-matching problem, not a transcription problem, and the fix is the same as for typed mentions: tap the mention and reselect from the picker before posting.
The bottom line
Hashtags and mentions sit right on the border of what dictation is built for. The symbols themselves are easy: "hashtag" and "at sign" and you are done. The strings after them, multi-word tags and exact handles, are not speech, and no amount of careful enunciation makes them speech. Speak the caption, where your voice is faster than your thumbs will ever be. Then let replacement rules carry the tags you use every week, and let autocomplete carry the handles you use once. Voice Keyboard Pro's free tier is enough to test the whole workflow on today's post; Pro is $4.99 a month or $34.99 a year when the daily limit starts feeling small.