Website to track people, organizations, and products (tools, websites, etc.) in AI safety
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

AI Watch and Org Watch

This is the repository for two related websites:

  • AI Watch is a website designed to track people and organizations working in AI safety.
  • Org Watch is a generalization of AI Watch that covers positions outside of AI safety.

Both sites use the same code and database, stored in this repository.

Project layout

  • access-portal/ contains the PHP code for the website.
  • sql/ contains the data stored in MySQL format.

Setting up

This section is only relevant to people who want to run a local instance of AI Watch (e.g. for development purposes).

First, clone the repo and set up the database:

git clone
cd aiwatch
mysql -e "create database aiwatch"
make read  # read in data from sql/

Now set up the password file to allow PHP to log in to the database:

cp access-portal/backend/globalVariables/{,}
vi access-portal/backend/globalVariables/  # change to add database login info

If you're hosting this on a server, make sure to disable public access to the password file.

Finally start the service:

cd access-portal
php -S localhost:8000

To get AnchorJS and tablesorter, run:

make fetch_anchorjs
make fetch_tablesorter

You can now visit http://localhost:8000/ in your browser.


All contributions are welcome. Contributions might take the form of:

  • Data collection
  • Code contributions to the website
  • Feature requests/finding bugs
  • Feedback


All code and data released to the public domain according to CC0 1.0 Public Domain Dedication.

Notes to self

To export some organization data from the donations database:

mysql donations -e "select donee,former_name,website,contact_email,country, \
    key_people,launch_date,launch_date_precision,launch_date_url, \
    facebook_username,instagram_username,medium_username,pinterest_username, \
    timelines_wiki_page,tumblr_subdomain,twitter_username,wikipedia_page, \
    youtube_username from donees where cause_area REGEXP 'ai risk';" \
    > temp.tsv

Find uncategorized interns:

select person,title,employment_type from positions
where title regexp 'intern' and (employment_type != 'intern' or employment_type is null);