<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<MULTIPLIER> 1,000
<S> <C> <C>
<PERIOD-TYPE> 6-MOS 6-MOS
<FISCAL-YEAR-END> DEC-31-2000 DEC-31-1999
<PERIOD-START> JAN-01-2000 JAN-01-1999
<PERIOD-END> JUN-30-2000 JUN-30-1999
<CASH> 1,788 1,512
<SECURITIES> 0 0
<RECEIVABLES> 10,170 7,849
<ALLOWANCES> (883) (744)
<INVENTORY> 0 0
<CURRENT-ASSETS> 11,716 9,255
<PP&E> 4,443 4,255
<DEPRECIATION> (2,039) (1,872)
<TOTAL-ASSETS> 19,543 17,160
<CURRENT-LIABILITIES> 10,800 6,565
<BONDS> 0 0
8,478 8,470
0 0
<COMMON> 1 1
<OTHER-SE> (2,374) (2,431)
<TOTAL-LIABILITY-AND-EQUITY> 19,543 17,160
<SALES> 19,680 14,832
<TOTAL-REVENUES> 19,680 14,832
<CGS> 0 0
<TOTAL-COSTS> 19,080 14,556
<OTHER-EXPENSES> 0 0
<LOSS-PROVISION> 0 0
<INTEREST-EXPENSE> 214 106
<INCOME-PRETAX> 405 (79)
<INCOME-TAX> 0 0
<INCOME-CONTINUING> 0 0
<DISCONTINUED> 0 0
<EXTRAORDINARY> 0 0
<CHANGES> 0 0
<NET-INCOME> 405 (79)
<EPS-BASIC> 0.04 (0.06)
<EPS-DILUTED> 0.02 (0.06)
</TABLE>