I've worked on a few different matching / recommendation algorithms, and to some extent, we did exactly this at Skillshare.
For both "best match" during a search, as well as the default or auto-match, it's all about relevance.. there shouldn't really be a different goal for each.
If I'm searching for a specific course or subject, you should filter by that category.. then use things in the student's profile (e.g. major, year / age-range, etc) to determine best relevancy on the tutor side.
Without specifics, then you could at least use more general inputs, like location (in-person tutoring?) and time zone, to determine relevancy.
Beyond these, I would offer a filter / sort based on "new" or "featured" (curated) vs. "popular" or "highest rated" .. but use your internal algorithm (and UX design) to tweak whatever you want.
Happy to help and discuss in more detail based on the specifics of your business.