How do I add auto bed levelling to my Marlin-based CNC?
Auto bed leveling requires some settings (constants) in the configuration of your Marlin firmware.

It is recommended to read about the implementation of automatic bed leveling first. There are a few options to choose the kind of leveling, for 3D printers a commonly chosen option is AUTO_BED_LEVELING_BILINEAR which is the best option if you do not know if your bed is flat or not. If you are certain it is flat but tilted (e.g. when you have a milled bed or a glass plate in 3D printing) you could go for AUTO_BED_LEVELING_3POINT or AUTO_BED_LEVELING_LINEAR.

What further is important is the sensor type you choose. Do you want a touch or a proximity sensor. The latter is your preference (as specified in your question), which is a little simpler as you do not need to configure for servos for deploying and stowing.

You need to set: 

#define FIX_MOUNTED_PROBE


for using a fixed proximity sensor.

In the configuration file you also need to specify the position of the probe in relation to the nozzle (in your case tool center):

#define X_PROBE_OFFSET_FROM_EXTRUDER 10  // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10  // Y offset: -front +behind [the nozzle]


and optionally:

#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]


This latter is not necessary as you can always set the distance of the sensor trigger point to the nozzle/tool plane by G-code command M851 Z-x.xx 

You would also need to set the boundaries of the probe area to prevent the tool to hit unwanted positions (fill out values or leave the constants):

// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)


Once properly setup, command G29 runs the leveling of the bed, options are available for that command to store the bed mesh to EEPROM.

Enabling LCD_BED_LEVELING constant in the configuration file will add a Bed Leveling sub-menu to the LCD. But you could also work with SD-card stored files that load these codes.

This reference explains the automatic leveling in more detail, but there are many more detailed guides to follow from the internet. Be sure that you get a recent guide to that is easier to set in the latest firmware.