In this paper, we propose two new diving heuristics for finding a feasible solution for a mixed integer programming problem, called variable neighbourhood (VN) diving and single neighborhood (SN) diving, respectively. They perform systematic hard variable fixing (i.e. diving) by exploiting the information obtained from a series of LP relaxations in order to generate a sequence of sub-problems. Pseudo cuts are added during the search process to avoid revisiting the same search space areas. VN diving is based on the variable neighborhood decomposition search framework. Conversely, SN diving explores only a single neighborhood in each iteration: if a feasible solution is not found, then the next reference solution is chosen using the feasibility pump principle and the search history. Moreover, we prove that the two proposed algorithms converge in a finite number of iterations (i.e. either return a feasible solution of the input problem, or prove its infeasibility).We show that our proposed algorithms significantly outperform the CPLEX 12.4 MIP solver and the recent variants of feasibility pump regarding the solution quality.