This is a tricky issue. If you allow too much time, you could set your company up to compete with several other offers and possibly lose the candidate altogether.
You should include a contingency. As part of the offer, state that it remains valid through a specific date and time. A reasonable time frame is usually about two to three days, depending upon the circumstances. If the candidate cannot commit, they may not be enthusiastic about joining your company, indecisive, or both.
Evaluate available information. Ask candidates during the interview process if they have any interviews or offers with other companies. This will adjust your timeline accordingly.
The best thing is to establish trust with the candidate. Ask for feedback about how they feel your position ranks in comparison to the others they are considering. The candidate may not always feel comfortable giving you an answer, but it can’t hurt to ask.
Even after an offer has been accepted, the time period between acceptance and the start date is critical. A reasonable start date should allow the candidate, if currently working, to give two weeks notice to their employer. Be cautious in negotiating a start date more than two weeks into the future as this could mean the candidate is stalling in order to hear back on other job offers. The more time that elapses before the start date, the more likely the candidate is to continue job shopping, have other opportunities present themselves, and possibly reconsider their acceptance of your offer.