Projects, team, and roles
Organizations vs. projects, invitations, project-level access, and seat management.
CiteFoundry’s tenancy has two levels: an organization (the billing and team boundary) and one or more projects inside it (each tracks one brand). Pick the right shape early — it’s painful to move work between organizations later, easy to move between projects.
When to use one organization vs. many
- One brand, one team — one organization, one project. Most customers.
- Multiple in-house brands — one organization, one project per brand. Shared seats, shared billing, separate dashboards.
- An agency with clients — one organization, one project per client. Add team members to the organization and grant per-project access so each consultant only sees their accounts.
- Two independent business units that don’t share data or billing — two separate organizations.
Creating a project
Settings → Projects → New project asks for a display name and a primary domain. The domain seeds the brand-book and is how citations are attributed back to you across runs. You can edit both later.
A new project starts empty — no prompts, no monitors. Visit Quickstart for the recommended seeding flow.
Inviting teammates
Settings → Team → Invite sends an email with a signed token. The recipient signs in (WorkOS handles the SSO/email flow) and is added at their assigned organization role.
Roles at the organization level:
- Owner — full control including billing and member management.
- Admin — manage projects and members; no billing.
- Member — granted access to one or more projects.
- Viewer — read-only access to assigned projects.
By default new members are added as Member with no project access — grant them to projects explicitly.
Per-project access
Once a member is in the organization, grant them per-project access under Settings → Projects → [project] → Members. This is what makes the agency pattern work: consultant Alice can see clients X and Y but not Z, even though all three projects live in the same organization.
Removing access
Removing a member from the organization revokes all their project access in the same step. Their personal API tokens stop working immediately.
API
- GET
/v1/me— your user + organization + role. -
GET
/v1/projects -
POST
/v1/projects -
GET
/v1/projects/{projectId}/members