WP_Query to select custom post type with Advanced Custom Fields (ACF) date

In what form is vacancy_end_date stored in your database by ACF? Make sure you’re asking for the same form. I.e. date('Ymd') produces 20200421 but your vacancy_end_date might be stored as unix stamp stamp, which would be a string like 1619028671 so you would never match it.

I do not think you need the 'meta_key' => 'vacancy_end_date', line in $args in addition to the meta_query.

https://generatewp.com/wp_meta_query/ suggests you do:

$meta_query = array(
    'relation' => 'OR',
    array(
        'key'     => 'vacancy_end_date',
        'value'   => $date,
        'compare' => '>=',
    ),
    array(
        'key'     => 'vacancy_end_date',
        'value'   => '',
        'compare' => '=',
    ),
);

$args = array(
    'post_type'              => 'vacancy',
    'meta_query'             => $meta_query,
);

$query = new WP_Query( $args );

You just need to define $date accurately, as mentioned about.