Format the reputation
JavaScript (ES6), 76 68 bytes
x=&gt;x&lt;1e4?x.toLocaleString():(x&lt;1e5?(x/1e2+.5|0)/10:(x/1e3+.5|0))+&quot;k&quot;

Another first attempt. Thank goodness for that handy .toLocaleString(), the shortest alternative I could find is 21 bytes longer...
This separates thousands by either , or ., depending on what country you live in. For five two bytes more, you can make it always use a comma:
x=&gt;x&lt;1e4?x.toLocaleString`en`:(x&lt;1e5?(x/1e2+.5|0)/10:(x/1e3+.5|0))+&quot;k&quot;