What do you call someone who talks themselves up but actually does nothing?
The word for this would probably be "Blowhard."
An idiom commonly used for a smooth talker is great boaster, little doer.
If you are looking for some uncommon expression, you may refer to a loquacious lazybones.
An adjective that can be used to define a person who only talks but does not work is "garrulous".
The meaning as given by Google is: excessively talkative, especially on trivial matters. The usage of the word would be "a garrulous cab driver".
Pretentious also works as a single word.
" pre·ten·tious prəˈten(t)SHəs/ adjective attempting to impress by affecting greater importance, talent, culture, etc., than is actually possessed. "
"Hearts of Ladd" by Ian Alford