Pros
The people you meet and befriend (mostly at the junior level) are the more redeemable parts of the job. People are friendly, want their coworkers to succeed, and are always willing to collaborate. All the junior staff are smart and professional. Flexible working hours, days in office/remote.
Cons
Junior staff are grossly underpaid. Many (if not all) junior staff have a master's degree and have been stuck at a program assistant level for 1-3+ years, with no career progression plan, and making less than 60K a year. Across all departments, there is 0 room or pathway for progression. You will only get promoted if someone leaves/retires, so don't bother investing time here in the hopes that you might be able to get promoted. Regardless of what level you are hired at, be prepared to be overworked and undervalued (typical nonprofit structure)- unless you are hired directly to the senior executive team. HR conducts themselves inappropriately when junior employees approach them regarding conflict with senior employees. Obviously, HR is there to take the organization's side but asking your employees if it's their "first adult job" because they voice potential issues with their supervisor, is inappropriate and unacceptable by any professional standards. Lastly, there is no formal compensation review process. You have no guarantee of when you will get a performance-based promotion or raise, regardless of how hard you work. You will get an annual inflation adjustment but that's it.