Capture positions and rotations of all bones at a specific frame of an animation clip

In Start(), I'd like to somehow play the first frame of a particular animation for my character model and then capture all the positions and rotations of the bone's transforms in arrays, without the animation actually visibly playing (I just need that information for later, but I don't really want to visibly play this particular animation at Start()).

Any ideas on how I might accomplish this?

You should do this: sample the frame on the animation you want, then restore character pose to the previous one.

You can sample you desired animation by doing something like this:

AnimationState state = animation["name"];
state.weight = 1;
state.enabled = true;
state.normalizedTime = 0;
animation.Sample();

// extract the desired transforms

// get all child transforms
Transform[] transforms = animation.gameObject.GetComponentsInChildren<Transform>();

// Collect position of all transforms (declare this dict somewere where you can access it later)
Dictionary<Transform, Vector3> positions = new Dictionary<Transfrom, Vector3>();
foreach (Transform t in transforms)
    positions.Add(t, t.localPosition);

// restore previous pose (by either sampling another animation, 
// or saving and restoring transform values)
animation.Stop();
animation.Play("Run");

Restoring positions later:

foreach(KeyValuePair<Transfrom, Vector3> entry in positions)
{
    entry.key.localPosition = entry.value;
}

Obviously you want to store positions and/or rotations and maybe scale. Depends on what you do.