I run a Brewers Guild and the companies are the members, not the employees. I need to have the Brewery as the member and then have different employees listed as different positions (marketing, primary, accounting, etc.) and associated with that brewery. So I can send an e-mail to everyone at a specific brewery or all "marketing" employees across all brewery members. Is this possible out of the box with CiviCRM?
Yes, this is very possible out of the box. Civi has 3 contact types, Individual, Household, and Organization. You can Use Organization Type for Breweries and Individual Type for Employees. Then with Contacts > Relationships you can list the the Employee Contact as an employee of the Brewery Contact. You can use Contact >Tags to give employees Job Titles such as "Marketing" so you can sort by all marketing employees for a Brewery or all Breweries.
Other options that can finesse the answer by Iowa Boy
create custom Relationship Types
add custom fields (eg for Department the employee works in) on to the Relatonship Type = Employee/Employer
You can also use Permissioned Relationships so eg a Primary Contact for Company A can used their Dashboard to see and edit Company details
If you use 'second degree relationships' you can then let the Primary Contact see details of other employees of the Company
If you are using Drupal then you can really knit a nice sweater and let the Primary Contact easily do all sorts of stuff (if you want them to) such as letting you know someone stopped working there (by ending the Relationship)
For some of the above the Permissioned Relationship extension by Fuzion is required so you can daisy chain permissions without having to battle with civicrm's own ACL approach.
But fundamentally, the answer to your question is "yes and lots more besides" ;-)