Hmm, manual is usually the recommended way.
Part of the problem is that flat profiles are much lower in saturation by design. The color grading filter alone can’t change saturation to match the GoPro Color profile. Grading flat footage requires two separate filters at a minimum… a saturation boost, and a contrast adjustment (curved or linear). If your app isn’t accounting for saturation differences, I’m not sure how it’s going to generate equal image output.
Fortunately, both of those properties have scopes (graphs) to help match clips. In Shotcut, there is a video waveform scope (under the View menu) that takes the guesswork out of getting contrast and brightness matched between two videos. Just get the graphs to look similar across two clips using the brightness sliders in the Color Grading filter. There’s also a vectorscope that takes the guesswork out of saturation. Match the distance-from-center amount across clips. If needed, the RGB Parade can be used to determine the amount of white balance difference between clips (it will be visible as a different amount of separation between the R, G, B plateaus in a gray area).
If using the scopes to their full potential (and copy-pasting the Saturation + Color Grading pair across clips or trackheads), then matching footage manually is actually pretty fast. (This assumes a color-targeting LUT hasn’t skewed color uniformity, and a match is possible with only global modifications.) Using an external program to match footage would work too, but correction values would have to be recomputed and manually entered at all major exposure changes unless the GoPros are set to fixed ISO. Auto ISO would obviously skew all the values every time the camera ramps ISO.
EDIT: Regarding saturation filters, there are two. “Saturation” calculates in RGB whereas “Hue/Lightness/Saturation” calculates in YUV. I find it easier to get the look I want with H/L/S.