“I am an expert on these companies”: I have studied them for years and know how they work.
“I am an expert for these companies”: I work for them, they employ me, or they have hired me to be their expert (e.g., in court, or as a consultant).
I also agree with joedoolz47 regarding the use of “at” in certain cases. For example: “I am an expert at tennis” (seems to suggest that I play it very well) vs. “I am an expert on tennis” (suggesting I have studied the history or mechanics of the game).
You could also use “in”, e.g., for a field of study. For example: “I am an expert in (the field of) Medieval literature” vs. “I am an expert on [X, Y, or Z particular manuscript].”