[00:01.660 --> 00:03.420] I would start with a simple question. [00:03.820 --> 00:05.500] Who knows what FOIA is? [00:07.680 --> 00:10.940] Okay, so FOIA, we have around 70% of people that know. [00:11.060 --> 00:12.180] We have some people that don't know. [00:12.280 --> 00:12.580] That's good. [00:13.420 --> 00:15.180] Who has sent a FOIA request until now? [00:16.820 --> 00:18.380] One, two, three, four, five. [00:18.520 --> 00:20.180] Okay, so less than 10%. [00:20.180 --> 00:21.780] That's perfect. [00:23.620 --> 00:25.560] A little about me... [00:28.780 --> 00:30.020] A little about me. [00:30.360 --> 00:31.620] I do a lot of different things. [00:32.260 --> 00:37.080] I'm an activist, data geek, passionate about data mining. [00:38.000 --> 00:39.440] These are some of the other things. [00:39.580 --> 00:40.720] Also passionate about art. [00:41.560 --> 00:45.900] Tonight, we will do the art thingy. [00:48.800 --> 00:51.100] And a lot of data mining. [00:51.840 --> 00:53.600] These are some of the trainings that I do. [00:53.600 --> 00:58.440] So if you are interested, your organization, other people are interested in some of them. [00:58.740 --> 00:59.580] Let's discuss. [01:00.500 --> 01:02.920] I'm also founder of Corruption Kills. [01:03.060 --> 01:08.100] This is an NGO I started in 2015 when, because of a fire, 65 people died because of corruption. [01:08.100 --> 01:14.580] And after that, we started making protests to try to eliminate corrupt government from power. [01:17.700 --> 01:24.480] This is a book that I've written about CHGPT and lead number of use cases. [01:24.820 --> 01:27.460] And you can scan the QR code and get the book for free. [01:31.030 --> 01:38.990] And this is a startup that I'm working with basically the idea of like, we met a lot of people, like even here at HOPE. [01:39.290 --> 01:41.930] We will met a lot of people, but with some people, we want to remember them. [01:42.030 --> 01:43.050] And how can we do it? [01:43.150 --> 01:46.990] Because some people are on Signal, some people exist on email, telephone. [01:47.450 --> 01:54.350] So MapBond, you put them on a map and you can add the different information that you have about them, their profiles, their skills. [01:54.550 --> 01:57.790] And then you quickly can find them like two years from now. [01:57.930 --> 02:00.510] Like, who did I know that was really good at that specific thing? [02:01.510 --> 02:04.170] And yeah, that's the data mining part that I do. [02:04.410 --> 02:09.370] And now for the relevant part for this talk is the FOIA. [02:09.810 --> 02:12.570] In the past, I sent over 15,000 FOIA requests. [02:13.210 --> 02:23.590] And in 2020, I was the first time speaker at HOPE, where I presented the anti-corruption toolkit for FOIA. [02:24.150 --> 02:29.990] And this can be used to gather and we will see a little, I will kind of do a small recap here. [02:31.210 --> 02:38.210] And for now, we will focus on how we can use FOIA in a more automated way, how we can rescale it. [02:40.110 --> 02:44.750] This kind of the brief overview of what we will continue doing it. [02:45.450 --> 02:47.670] And not all the time you need FOIA. [02:48.090 --> 02:51.710] Like there is this concept of open data and there are portals. [02:51.910 --> 02:58.910] Like in U.S., you have the open data portal where you have over 300,000, almost 300,000 data sets. [02:59.590 --> 03:04.710] So if you want some data, start here, look here and see like, okay, I have the data. [03:04.850 --> 03:05.210] Nevermind. [03:05.290 --> 03:06.290] I don't need to send a FOIA. [03:06.470 --> 03:07.130] My life is happy. [03:08.430 --> 03:23.390] But for the most part, depending how deep you want to go in a specific subject, there will be data that exists in some government or somewhere in the state that you don't have access directly. [03:23.610 --> 03:26.450] This is when we need to use the Freedom of Information Act. [03:27.850 --> 03:29.810] And this is a powerful law. [03:30.130 --> 03:43.090] For example, in UK, after a citizen made a FOIA request, based on the answer that they got, this was a huge scandal and six MPs have gone to jail. [03:43.090 --> 03:43.190] Okay. [03:43.370 --> 03:59.090] So this is a powerful tool that you can use because almost everything that like politicians or public employees do should be public information except, okay, state secrets or stuff like that. [03:59.210 --> 04:01.630] But except that almost everything should be free. [04:02.690 --> 04:07.130] And I will focus on one example to also explain the act FOIA methodology. [04:07.130 --> 04:14.310] And for example, I wanted to know how much does this cost to remove the snow in some cities in Romania. [04:14.530 --> 04:18.850] And you send one FOIA request, get one reply, and that's it. [04:19.050 --> 04:20.070] Okay, you did your job. [04:22.810 --> 04:26.270] And also, we don't need to take it for granted. [04:26.490 --> 04:30.930] Like we have this FOIA law, there are almost 120 countries that have this law. [04:30.930 --> 04:43.550] But if we look in 2018 and we look in 2024, we see that this law, democracy is not a given. [04:43.570 --> 04:47.330] And we see that democracy is kind of weakening in different countries. [04:47.530 --> 04:57.130] Like we look at this part of Europe, we look in Asia, we look in almost all around the world, kind of democracy is kind of evolving. [04:57.130 --> 05:03.590] And then also some of the tools that we have, for example, FOIA will become harder to access, more complicated, more cumbersome. [05:04.470 --> 05:08.930] So, yeah, we need to utilize it as they still exist and make use of it. [05:10.650 --> 05:11.990] So the act FOIA. [05:12.310 --> 05:18.130] There will be eight principles that we want to use if we want to be able to do... [05:18.610 --> 05:21.950] For example, for us, we are interested in this. [05:22.170 --> 05:23.930] How much does it cost to remove the snow? [05:24.930 --> 05:33.710] And the first principle is that we will send the same FOIA request to all of the cities, depending on what we want. [05:33.910 --> 05:37.970] But we send the same request to as many institutions as possible. [05:39.490 --> 05:46.890] And the advantage is that after that, we don't have only one data point as we had. [05:46.890 --> 05:50.550] We have two, three, four, five, we have as many as possible. [05:51.210 --> 05:55.850] And by doing that, then we can get like, what's the average cost? [05:56.130 --> 05:59.590] Because you will have, okay, this city pays 10,000, this city pays 1 million. [06:00.150 --> 06:04.030] And then you can compare it and you have an average cost that exists. [06:05.990 --> 06:16.830] And by having this average cost, then you can identify which is the ones that are paying much more or also the ones that are paying really less. [06:16.890 --> 06:20.910] Like, let's learn how they can do the same job, but they're doing it 10 times cheaper. [06:21.310 --> 06:25.270] And also they're the ones that are paying so much, that's probably corruption. [06:25.430 --> 06:27.870] Like, you wouldn't pay that much. [06:28.310 --> 06:32.790] And this is using their own data that we generate and compare it. [06:32.910 --> 06:34.490] So that's kind of the advantage. [06:34.670 --> 06:39.390] And we can use it because the same question with the cost per kilometer, we can then do it. [06:39.450 --> 06:41.430] We can ask in other countries. [06:41.670 --> 06:46.570] We can ask in Japan and we can ask in New York and we can ask in a lot of different countries. [06:46.570 --> 06:50.770] And we can compare, like, is New York more expensive than other parts or not. [06:50.910 --> 06:58.910] And you will find some city because of corruption, they will pay even more than New York, but is in Slovenia or somewhere, which shouldn't cause that much. [07:01.250 --> 07:03.070] And we need to normalize the data. [07:03.510 --> 07:19.990] What does it mean is that if we want to be able to compare them between the different parts, then we are interested in having like, okay, we ask a local authority, like we ask New York, but we also get, and you find anywhere, you get kind of how much [07:19.990 --> 07:20.870] citizens do they have. [07:21.010 --> 07:26.330] So we can know each citizen, like you as a citizen in New York, you paid $12 for doing that. [07:26.530 --> 07:31.990] So you can compare like, okay, I paid $12 in other parts, they paid 20. [07:32.510 --> 07:36.750] So normalize the data and have something so you can compare. [07:37.790 --> 07:47.810] I usually recommend like also find the sweet spot for investigative journalists, like ask the company data or ask things that you can use after that. [07:48.030 --> 07:52.610] So you can have like, okay, this is paying that much more and this is probably corruption. [07:52.930 --> 07:54.290] But then what's the story? [07:54.410 --> 07:55.290] Like what's going on? [07:55.390 --> 07:59.150] And then you identify like, ah, okay, the mother of this politician owned that company. [07:59.150 --> 08:00.670] So follow the money. [08:00.930 --> 08:02.350] So follow the money. [08:02.550 --> 08:04.930] And this is one of the most important. [08:05.390 --> 08:14.110] And this is, if we want to be able to process and to use the tool that I developed, this is really important to have, give them spreadsheet. [08:14.110 --> 08:21.490] If not, imagine when you talk, I don't know if, I know some people probably here hate LLMs and ChatGPT and others. [08:21.930 --> 08:30.830] But if you have used it, you will see that if you ask it the same question 10 times, it's going to reply in different, different forms. [08:31.030 --> 08:33.450] Like it's going to hallucinate a little differently each time. [08:34.090 --> 08:49.930] And to make it and to make kind of the public employees that will reply to be able to kind of each of them to follow the same structure, give them the spreadsheet, give them the Excel that will help them to use it. [08:50.050 --> 08:59.130] And usually what I try to do, the most efficient way that they can come back to the answers to my questions will be to use my Excel. [08:59.130 --> 09:03.590] So I try to make it like, this is the most efficient way, if you want to go combersome. [09:03.730 --> 09:11.930] And I have, I have examples where I give them the Excel and they handwritten the responses, pages, handwritten pages. [09:12.690 --> 09:15.190] So things like this happen, but they're exception. [09:15.830 --> 09:19.530] Most of them, they will give you the Excel, but they will give you in a PDF. [09:20.210 --> 09:26.090] Usually the PDF will be also upside down because life is too simple to get normal data. [09:27.270 --> 09:38.610] And the idea is, yeah, have this spreadsheet so they can use it and you can get the data that will be the same template everywhere, ideally. [09:39.370 --> 09:46.190] And you need to think how they will do it procedurally because most of the time you will get PDFs. [09:46.190 --> 09:51.650] So if you do something like this, this will not work because you, like, and test it. [09:51.910 --> 09:52.750] Like, try to print it. [09:52.850 --> 09:55.470] Try to print it A4 or in U.S., try to print it. [09:55.570 --> 09:58.210] I don't know what format that you use that doesn't make sense for me. [09:58.570 --> 10:03.330] And try to print it because if you will do it with this, they will print it like this. [10:03.490 --> 10:09.230] So it's going to be harder for you to process the data because the PDFs will come back in that format. [10:09.230 --> 10:14.390] So try to see how it's going to print before sending that spreadsheet. [10:15.450 --> 10:16.670] And be really specific. [10:16.950 --> 10:22.190] Like, if you are asking for a cost, are you including the VAT or you don't include it? [10:22.630 --> 10:35.910] Be really, really, really specific because it's really good to plan before because then you send the email to, let's say, 2,000 to all of the villages in some part of the world. [10:35.910 --> 10:43.370] And then our answer starts coming and then you realize, like, oh, something, I missed something. [10:43.530 --> 10:47.310] And then they will give you different replies because you were not so specific. [10:47.530 --> 10:49.010] So try to be as specific as possible. [10:50.730 --> 10:53.650] And the last part, try to streamline your process. [10:53.930 --> 11:00.350] For me, when I started in 2016 and I sent around 4,000 FOIA requests, it took me six months to process them. [11:00.350 --> 11:03.650] This was a manual process and that's not scalable. [11:03.970 --> 11:09.170] And yeah, life is more precious than processing manually Excel things in Excel. [11:10.310 --> 11:22.930] And this is why I'm presenting now LibF4R, which you can go now on GitHub and hopefully you'll be able to use it because I just uploaded it today and didn't manage to taste it that good. [11:22.930 --> 11:25.030] But it's going to work. [11:26.190 --> 11:34.530] And this tool is designed to help with the process of sending the emails, getting the emails back, extracting the data. [11:35.930 --> 11:41.350] And it is currently tailored to use the Google service account. [11:41.590 --> 11:50.070] This is a concept in Google where you can create a service account that can send emails in your behalf and other stuff without doing the authentication part. [11:50.810 --> 11:52.470] It can be done in other ways. [11:52.750 --> 11:57.450] This is how I have it, fork it and improve it. [12:00.410 --> 12:02.370] And I will skim to this. [12:02.610 --> 12:06.690] And also, just as a reminder, I'm going back, back, back to the beginning. [12:07.210 --> 12:10.550] This QR code gives you access to the whole presentation. [12:13.050 --> 12:14.330] So, this is important. [12:14.450 --> 12:18.730] And if you have this, then you just need to, yeah, you have access to everything. [12:20.910 --> 12:21.270] Okay. [12:23.830 --> 12:25.930] Yeah, so first we need to create a Google account. [12:25.930 --> 12:28.870] I will skim kind of quickly, blah, blah, blah, blah, blah, blah, blah. [12:30.310 --> 12:35.230] And then we need to create a project and create a service account. [12:35.870 --> 12:42.530] And this will probably change in three months because, yeah, I don't know if you can do it directly by a year or something. [12:42.770 --> 12:44.390] It would be much more ideal and much more programmatically. [12:45.630 --> 12:47.450] But currently, yeah, it's a lot of clicks. [12:47.630 --> 12:50.810] But you need to create an account, set up a role. [12:50.950 --> 12:53.890] You need to make it a project EIM admin. [12:55.330 --> 12:58.770] And then you add the email that you created earlier. [12:58.770 --> 13:04.270] You will add it to has to have this role for service account and admin roles. [13:06.530 --> 13:10.610] Then you need to download to manage the keys and create a key. [13:11.270 --> 13:17.930] And that key will be a JSON file with basically the key and some other stuff. [13:18.110 --> 13:22.990] And you can use it and send emails, impersonate the email account that you want. [13:22.990 --> 13:25.850] In our case, we will do the email account that we created. [13:27.690 --> 13:29.590] Some of the functionalities of the tool. [13:29.870 --> 13:31.670] Of course, you can send some emails. [13:33.010 --> 13:36.730] And you can send one individual email, so you can send in bulk. [13:36.970 --> 13:40.110] I recommend testing with one email in the beginning. [13:40.450 --> 13:41.290] Send it to yourself. [13:41.610 --> 13:42.310] See if it works. [13:42.370 --> 13:43.410] See if the body works. [13:44.230 --> 13:49.750] And the body of the email can be also a markdown file if you want to have some formatting. [13:51.750 --> 13:53.690] And you can send it in bulk. [13:53.910 --> 13:58.830] Where you will need to have a JSON file and you will find in the GitHub a sample of two emails. [14:00.310 --> 14:04.470] Where you can see kind of the format that you need to use. [14:05.910 --> 14:06.610] And yeah. [14:07.650 --> 14:08.650] You do the same thing. [14:08.650 --> 14:10.150] So now we send an email. [14:10.410 --> 14:11.710] How do we read the emails? [14:13.990 --> 14:15.110] We also... [14:15.110 --> 14:15.190] Yeah. [14:15.750 --> 14:17.450] Basically, what the tools... [14:17.450 --> 14:19.790] This tool does this specific part. [14:20.130 --> 14:22.850] This reads the email from the email address. [14:23.310 --> 14:28.730] Downloads as many emails as you set in the max flag. [14:29.270 --> 14:32.030] And then you want to download it and you will save it to a file. [14:32.170 --> 14:33.190] In this case, read emails. [14:35.350 --> 14:36.590] This will do... [14:36.590 --> 14:37.370] We'll go... [14:37.370 --> 14:38.770] We'll download all of the data. [14:40.550 --> 14:41.110] And... [14:41.110 --> 14:43.310] It's going to be saved in this response file. [14:43.530 --> 14:45.230] And that's kind of... [14:45.230 --> 14:46.690] The gist of it. [14:49.110 --> 14:50.650] And we see like... [14:50.930 --> 14:51.990] How the email look. [14:52.190 --> 14:53.030] And this is how... [14:53.030 --> 14:54.570] This is how the email look... [14:55.190 --> 14:56.830] The JSON file that we saved. [14:56.830 --> 14:58.070] We get the ID. [14:58.210 --> 14:58.750] The thread ID. [14:59.150 --> 15:00.730] And the thread ID is basically... [15:01.350 --> 15:01.790] Who... [15:01.790 --> 15:03.050] The conversation thread. [15:03.310 --> 15:04.190] Which is good to know. [15:04.530 --> 15:06.390] If you want to know who replied to whom. [15:06.670 --> 15:07.690] And kind of... [15:07.690 --> 15:09.230] Where in the stack the email is. [15:10.790 --> 15:12.410] And we also get this attachment. [15:12.870 --> 15:13.770] We have this attachment. [15:14.090 --> 15:15.290] File name and some other stuff. [15:17.330 --> 15:18.210] And then... [15:18.210 --> 15:20.130] How do we add our emails to the database? [15:20.370 --> 15:22.130] Because currently this is a JSON that we have. [15:23.150 --> 15:25.570] And we have a backend server that... [15:25.570 --> 15:26.810] This will be... [15:26.810 --> 15:28.130] Is a local SQLite... [15:29.490 --> 15:30.830] Instance that is going to save. [15:31.010 --> 15:32.550] And we need to start this server. [15:33.530 --> 15:35.350] And then we have a... [15:35.350 --> 15:36.710] A tool to add. [15:36.870 --> 15:38.790] Like we need to specify the JSON that we saved. [15:39.430 --> 15:41.190] To add it to the database. [15:42.650 --> 15:43.750] And if you... [15:43.750 --> 15:44.470] Add it the first time. [15:44.570 --> 15:45.290] You will see like okay. [15:46.390 --> 15:46.870] Processed. [15:46.890 --> 15:48.190] Add the emails to the database. [15:48.390 --> 15:49.570] Create the database table. [15:49.710 --> 15:49.890] Whatever. [15:50.110 --> 15:51.030] Everything that it needs. [15:52.130 --> 15:52.470] The second time. [15:52.610 --> 15:54.210] If you try to do on the same... [15:54.210 --> 15:54.430] Emails. [15:54.630 --> 15:55.950] It's going to identify that... [15:55.950 --> 15:57.070] You already have them in the database. [15:57.350 --> 15:58.790] And it will not append them again. [16:01.450 --> 16:03.050] One of the more interesting stuff. [16:03.290 --> 16:05.510] Is how we can extract and process the attachment. [16:06.910 --> 16:07.830] And this is... [16:08.450 --> 16:10.870] Where a lot of the time usually you spend. [16:11.010 --> 16:12.150] Like also sending and reading. [16:12.350 --> 16:13.250] But also... [16:13.250 --> 16:14.210] You get a PDF. [16:14.430 --> 16:15.010] You need to... [16:15.010 --> 16:16.470] Extract data from the PDF. [16:16.830 --> 16:18.050] And sometimes it's going to be in Word. [16:18.310 --> 16:19.390] Sometimes they will give you Excel. [16:19.390 --> 16:19.850] Sometimes. [16:20.150 --> 16:22.610] They will give you a lot of different formats. [16:23.290 --> 16:27.510] And this is where I spend most of the time. [16:27.650 --> 16:30.050] And this is where we also kind of get most of the gains. [16:31.130 --> 16:32.190] Is that... [16:32.190 --> 16:33.490] For example... [16:33.490 --> 16:35.070] We have this sample PDF. [16:36.410 --> 16:38.650] To the U.S. Securities and Exchange Commission. [16:40.310 --> 16:40.830] And... [16:41.650 --> 16:43.350] This will be a response. [16:44.290 --> 16:45.330] And then... [16:45.330 --> 16:46.250] Using... [16:46.250 --> 16:47.890] The data extractor. [16:48.030 --> 16:48.430] That is... [16:48.430 --> 16:49.510] You will find it in a folder. [16:51.390 --> 16:52.650] And running the main. [16:53.010 --> 16:53.890] You will find like... [16:53.890 --> 16:54.570] It's going to search. [16:54.670 --> 16:55.430] It's going to see like... [16:55.430 --> 16:55.890] Okay... [16:55.890 --> 16:56.810] In the database. [16:56.850 --> 16:59.010] You have in the attachment table. [16:59.290 --> 17:01.470] You have some attachment that I didn't process yet. [17:01.870 --> 17:02.870] And it's going to... [17:03.430 --> 17:04.610] Try to open it. [17:04.610 --> 17:06.330] And it's going to use this OCR. [17:06.470 --> 17:07.190] My PDF. [17:07.570 --> 17:08.190] Which uses... [17:08.190 --> 17:09.690] Tessaract I think it's called. [17:09.950 --> 17:10.410] It's an... [17:10.410 --> 17:12.250] You need to install this open-source library. [17:13.450 --> 17:15.050] And then it's going to... [17:15.050 --> 17:15.470] Do... [17:15.470 --> 17:16.730] OCR on all of them. [17:16.850 --> 17:18.130] So even if they have the text. [17:18.270 --> 17:19.690] It's going to treat all of them currently. [17:20.350 --> 17:20.790] As... [17:20.790 --> 17:22.570] You cannot do OCR. [17:22.710 --> 17:23.830] And do OCR on all of them. [17:25.150 --> 17:25.590] And... [17:25.590 --> 17:25.850] Yeah. [17:25.930 --> 17:26.830] Then update... [17:26.830 --> 17:28.110] The data in the database. [17:28.850 --> 17:30.130] And if you try to... [17:30.130 --> 17:31.010] Do it again. [17:31.430 --> 17:32.350] It's going to... [17:32.350 --> 17:33.030] Skip. [17:33.310 --> 17:34.110] Because it's going to identify... [17:34.630 --> 17:35.510] Already we... [17:35.510 --> 17:36.410] Processed this... [17:36.410 --> 17:36.870] PDF. [17:37.830 --> 17:38.990] And we can see... [17:38.990 --> 17:39.430] Kind of... [17:39.430 --> 17:40.170] Here the comparison. [17:40.390 --> 17:40.650] Like... [17:40.650 --> 17:41.550] How it work. [17:41.690 --> 17:42.190] And... [17:42.190 --> 17:42.950] The data that extracted. [17:43.470 --> 17:44.990] There will be some... [17:44.990 --> 17:46.650] Small collisions. [17:46.810 --> 17:47.630] Especially like... [17:47.630 --> 17:48.750] If we see like... [17:48.750 --> 17:48.970] Here. [17:49.830 --> 17:51.270] Where it was like this. [17:51.750 --> 17:53.030] And instead of... [17:53.030 --> 17:53.570] Copies. [17:53.570 --> 17:54.570] It got Opera. [17:54.790 --> 17:56.650] Also because I set it to be on Romanian. [17:56.650 --> 17:58.090] So it choose kind of... [17:58.090 --> 17:58.730] This... [17:58.730 --> 17:59.190] Romanian stuff. [17:59.330 --> 17:59.510] But... [17:59.510 --> 18:01.490] It's acceptable for... [18:01.490 --> 18:03.430] 90% of the... [18:03.430 --> 18:04.710] PDFs that I tried. [18:05.130 --> 18:06.270] It can get kind of the data. [18:06.490 --> 18:08.430] And also we need to remember that usually... [18:08.430 --> 18:10.110] What we want is not... [18:10.110 --> 18:11.050] This kind of... [18:11.050 --> 18:12.170] Free form text. [18:12.350 --> 18:13.630] But you can also use it for this. [18:13.730 --> 18:14.770] And this is why I'm showing it. [18:14.950 --> 18:17.700] But usually we want them to reply in our... [18:18.470 --> 18:20.650] Give me the template that I use. [18:20.870 --> 18:22.590] Because then I understand my template. [18:22.730 --> 18:24.130] I know how I program it. [18:24.590 --> 18:25.570] So I know like... [18:25.570 --> 18:26.610] This will be the first column. [18:26.690 --> 18:27.050] The second. [18:27.190 --> 18:28.010] This will be the data. [18:28.290 --> 18:29.470] And then you... [18:29.470 --> 18:30.710] It's much more simple to process. [18:31.030 --> 18:31.270] And... [18:31.270 --> 18:32.690] Even if you have some errors. [18:32.690 --> 18:33.650] You can kind of... [18:33.650 --> 18:34.750] Correct them because... [18:34.750 --> 18:36.010] You can know like... [18:36.010 --> 18:37.070] Which is the different parts. [18:39.230 --> 18:40.790] You can also identify like... [18:40.790 --> 18:41.370] We sent... [18:41.370 --> 18:42.470] 1000 emails. [18:42.910 --> 18:43.230] And... [18:43.230 --> 18:45.030] We got only 500 replies back. [18:45.170 --> 18:46.110] So who are the... [18:46.110 --> 18:48.090] Local authorities that did not reply yet. [18:48.270 --> 18:49.210] So we can track them. [18:50.910 --> 18:52.470] Some limitation of the tools. [18:52.850 --> 18:53.970] We don't have a GUI. [18:54.090 --> 18:55.270] But maybe that's not a limitation. [18:55.910 --> 18:58.190] And also there is kind of a V2 that I started working. [18:58.390 --> 19:00.670] But it wasn't ready for here. [19:00.850 --> 19:01.530] So I was like... [19:02.210 --> 19:03.330] Life is too... [19:03.330 --> 19:04.350] Precious to... [19:05.050 --> 19:06.330] Not sleep even more. [19:06.890 --> 19:07.450] And yeah. [19:07.610 --> 19:09.090] Currently works only on Google Workspace. [19:09.310 --> 19:09.630] But... [19:09.630 --> 19:11.110] This is why we have... [19:11.110 --> 19:13.590] More brilliant people than me that can modify it. [19:15.370 --> 19:15.810] And... [19:15.810 --> 19:17.550] To show a use case. [19:17.870 --> 19:19.310] When we use this tool. [19:21.290 --> 19:23.670] We had this thing where we have a lot of... [19:23.670 --> 19:24.290] Local authorities. [19:24.590 --> 19:25.410] Where they say the youth... [19:25.850 --> 19:26.430] Are the more important... [19:27.170 --> 19:28.390] Is the future of the youth. [19:28.510 --> 19:29.010] And stuff like that. [19:29.930 --> 19:30.370] But... [19:30.370 --> 19:31.290] In reality like... [19:31.290 --> 19:32.650] Do they actually give money? [19:32.810 --> 19:34.150] Do they actually care about the youth? [19:34.830 --> 19:35.690] How do we know? [19:35.690 --> 19:36.430] Or we don't know? [19:36.690 --> 19:37.130] Because... [19:37.130 --> 19:38.390] We didn't find the data set. [19:39.470 --> 19:39.910] That... [19:39.910 --> 19:40.610] Explosive. [19:41.210 --> 19:41.430] Yeah. [19:41.610 --> 19:42.890] That like was saying like... [19:42.890 --> 19:42.990] Okay. [19:43.050 --> 19:44.130] This is what we give to the youth. [19:44.550 --> 19:45.070] In different parts. [19:45.290 --> 19:45.650] So... [19:45.650 --> 19:46.650] Let's build it ourselves. [19:47.110 --> 19:49.690] We send this FOIA request to 3200... [19:50.570 --> 19:51.130] Local authorities. [19:51.470 --> 19:52.210] All of the villages. [19:52.450 --> 19:52.690] Cities. [19:53.010 --> 19:53.350] Capital. [19:53.650 --> 19:54.490] Everything in Romania. [19:55.670 --> 19:56.110] And... [19:56.110 --> 19:57.110] We ask them like... [19:57.110 --> 19:57.890] How much money... [19:57.890 --> 19:58.690] Do they do? [19:58.910 --> 20:00.290] We had a list of like... [20:00.290 --> 20:01.210] 14 different questions. [20:01.390 --> 20:01.970] So it was like... [20:01.970 --> 20:02.990] A long long list. [20:03.530 --> 20:04.290] And then... [20:04.290 --> 20:05.470] The most simple thing... [20:05.470 --> 20:06.370] That they could do to answer... [20:06.810 --> 20:08.550] Would be to use our spreadsheet. [20:09.270 --> 20:10.010] Because if not... [20:10.010 --> 20:10.630] They will start writing. [20:10.750 --> 20:11.010] But no. [20:11.410 --> 20:12.170] Use our spreadsheet. [20:13.150 --> 20:13.590] You... [20:13.590 --> 20:14.710] You do it more simply. [20:15.050 --> 20:16.250] We get our data much better. [20:17.790 --> 20:18.270] And... [20:19.050 --> 20:19.950] First of all... [20:19.950 --> 20:20.130] Like... [20:20.130 --> 20:21.270] The reality will be that... [20:21.270 --> 20:22.130] At least in Romania... [20:22.130 --> 20:22.930] Like... [20:22.930 --> 20:25.370] 67% did not even answer... [20:25.370 --> 20:26.170] To our FOIA request. [20:26.450 --> 20:27.910] Even if they are obliged by law. [20:28.130 --> 20:29.350] I don't know how it's in the U.S. [20:29.590 --> 20:30.890] If you have better numbers or not. [20:32.110 --> 20:32.590] But... [20:32.590 --> 20:33.010] Yeah. [20:33.310 --> 20:34.530] And we got around... [20:34.530 --> 20:35.930] 1000 responses. [20:36.890 --> 20:37.370] And... [20:37.370 --> 20:39.670] 420 of them... [20:39.670 --> 20:41.670] We were able to process them automatically... [20:42.430 --> 20:43.050] Using this tool. [20:43.810 --> 20:45.970] 600 needed some manual interventions. [20:46.970 --> 20:47.610] Because... [20:47.610 --> 20:48.450] We had like... [20:49.090 --> 20:49.730] Handwritten... [20:49.730 --> 20:51.110] Text or... [20:51.110 --> 20:52.630] They didn't use our template. [20:52.950 --> 20:53.910] They used like... [20:53.910 --> 20:54.130] Okay. [20:54.350 --> 20:55.470] We got your template. [20:55.650 --> 20:57.110] But we will answer in free from text. [20:58.070 --> 20:58.510] Because... [20:58.510 --> 20:58.730] Whatever. [20:59.730 --> 21:00.390] And then... [21:00.390 --> 21:01.550] For this... [21:01.550 --> 21:01.990] This... [21:01.990 --> 21:02.210] Like... [21:02.210 --> 21:03.830] Also this part can be automatized. [21:03.910 --> 21:04.910] Like more than half of it. [21:05.310 --> 21:06.570] By integrated... [21:06.570 --> 21:07.550] With some LLMs. [21:07.630 --> 21:08.070] That like... [21:08.070 --> 21:08.210] Okay. [21:08.410 --> 21:09.510] Take this free from text. [21:09.850 --> 21:11.270] Take this template that I have. [21:11.710 --> 21:12.430] Process it. [21:12.590 --> 21:14.590] And add the data... [21:14.590 --> 21:15.850] To the different things. [21:16.030 --> 21:16.370] So... [21:16.370 --> 21:17.690] You can further... [21:17.690 --> 21:18.910] Improve also on some of them. [21:19.850 --> 21:20.830] And then you are good. [21:20.990 --> 21:21.390] Because... [21:21.390 --> 21:22.990] By completing the spreadsheet... [21:22.990 --> 21:23.670] For the... [21:23.670 --> 21:23.810] For... [21:23.810 --> 21:26.650] This is from the 420 that actually replied. [21:27.070 --> 21:28.230] So this is from the green one. [21:28.710 --> 21:31.250] And then we were able to extract the data. [21:31.450 --> 21:31.830] And see... [21:31.830 --> 21:31.950] Okay. [21:32.090 --> 21:33.550] For this specific... [21:33.550 --> 21:34.510] Local authorities. [21:34.690 --> 21:35.690] And we see that... [21:35.690 --> 21:38.470] Only 32% of the local authorities... [21:38.470 --> 21:40.470] The one that replied... [21:40.470 --> 21:41.650] Are giving money to the youth. [21:41.830 --> 21:43.330] And 67%... [21:43.330 --> 21:44.150] Yet... [21:44.150 --> 21:44.830] We are not interested. [21:45.830 --> 21:47.250] And we also ask... [21:47.250 --> 21:47.510] Like... [21:47.510 --> 21:48.790] If they do consultation... [21:48.790 --> 21:49.050] Like... [21:49.050 --> 21:51.250] There is a law that obliged them to... [21:51.250 --> 21:52.470] Consult with the youth. [21:53.110 --> 21:53.550] And... [21:54.510 --> 21:54.950] Only... [21:54.950 --> 21:55.630] 6%... [21:56.290 --> 21:57.570] They did consult... [21:57.570 --> 21:58.870] 93% were like... [21:58.870 --> 21:59.230] Now... [21:59.230 --> 22:00.250] We don't need to speak with the youth. [22:00.350 --> 22:00.810] We know better. [22:01.210 --> 22:01.570] We are... [22:02.210 --> 22:03.670] 70 year old... [22:03.670 --> 22:05.090] White youths that know better. [22:06.450 --> 22:07.910] And we also ask... [22:07.910 --> 22:08.770] About money. [22:08.930 --> 22:09.130] Like... [22:09.130 --> 22:09.290] Okay... [22:09.290 --> 22:10.310] How much money do you put? [22:10.490 --> 22:11.410] And it was interesting... [22:11.410 --> 22:13.150] Because we were able to see... [22:13.670 --> 22:14.110] Cities... [22:14.110 --> 22:15.610] Where they invest less than... [22:15.610 --> 22:16.690] Two dollars per year. [22:16.690 --> 22:17.750] So that's like... [22:17.750 --> 22:19.970] Not even 10 cents per month... [22:20.490 --> 22:21.930] That they invest in the youth. [22:23.530 --> 22:23.970] And... [22:23.970 --> 22:25.770] If they plan to build a youth center... [22:25.770 --> 22:27.190] And some other things that we ask. [22:27.970 --> 22:28.330] And the... [22:28.330 --> 22:28.770] Yeah... [22:28.770 --> 22:31.110] The gist of it is that... [22:31.810 --> 22:33.030] The gist of it is that... [22:33.030 --> 22:33.910] We can use this tool... [22:34.210 --> 22:34.790] At scale. [22:34.790 --> 22:37.050] I presented some use cases... [22:37.050 --> 22:37.450] But... [22:37.450 --> 22:38.930] It can be adapted to different... [22:39.430 --> 22:39.790] Things... [22:39.790 --> 22:40.390] Like... [22:40.390 --> 22:42.070] Depending on what you are interested in... [22:42.310 --> 22:42.790] In getting... [22:43.510 --> 22:43.950] And you... [22:43.950 --> 22:45.250] You want to send... [22:45.250 --> 22:45.770] To... [22:45.770 --> 22:46.270] One... [22:46.270 --> 22:46.510] Two... [22:46.510 --> 22:47.950] Or even more... [22:47.950 --> 22:48.410] Like... [22:48.410 --> 22:49.690] Maybe somebody wants to... [22:49.690 --> 22:51.030] Bless it to the whole... [22:51.030 --> 22:52.070] Cities in... [22:52.790 --> 22:53.110] America... [22:53.690 --> 22:53.990] Or... [22:53.990 --> 22:54.690] Who knows... [22:54.690 --> 22:56.170] Be creative with it. [22:56.590 --> 22:57.970] But this will allow us... [22:57.970 --> 22:59.930] To kind of transform the... [22:59.930 --> 23:01.150] FOIA request... [23:01.150 --> 23:02.650] From a manual process... [23:02.650 --> 23:03.170] To... [23:03.170 --> 23:05.050] I would see it as an API... [23:05.050 --> 23:06.990] Where we are able to like... [23:06.990 --> 23:07.270] Okay... [23:07.270 --> 23:09.150] What's the data that we want to gather... [23:09.150 --> 23:09.890] And... [23:09.890 --> 23:11.310] Who are the sources... [23:11.310 --> 23:12.850] Where we need to email them... [23:12.850 --> 23:13.310] And then... [23:13.310 --> 23:15.130] Let's get all of their emails... [23:15.130 --> 23:16.310] And then... [23:16.310 --> 23:17.390] Message to... [23:17.390 --> 23:18.230] 500... [23:18.230 --> 23:19.630] Different agency... [23:19.630 --> 23:19.970] Or... [23:19.970 --> 23:20.990] 500 different... [23:20.990 --> 23:21.870] Local chapters... [23:21.870 --> 23:22.230] So... [23:22.230 --> 23:23.010] Some agency... [23:23.010 --> 23:24.050] Where we want to get some data... [23:24.050 --> 23:25.390] That does not exist already... [23:25.390 --> 23:26.690] Is not yet collected... [23:27.550 --> 23:28.030] Or... [23:28.030 --> 23:28.590] Like... [23:28.590 --> 23:30.370] First search in an open portal... [23:30.370 --> 23:31.010] Instead of... [23:31.010 --> 23:32.790] Sending something where the data is already... [23:32.790 --> 23:34.170] Because then you will waste the time... [23:34.170 --> 23:35.070] Of 500 people... [23:35.070 --> 23:35.370] Or... [23:35.370 --> 23:35.990] 5,000 people... [23:35.990 --> 23:37.110] That need to say... [23:37.110 --> 23:39.210] Actually look on the open data portal... [23:39.210 --> 23:39.470] So... [23:39.470 --> 23:40.610] Be mindful also... [23:40.610 --> 23:41.010] On... [23:41.010 --> 23:41.910] Their time... [23:41.910 --> 23:42.070] And... [23:42.070 --> 23:43.210] Try not to abuse it... [23:43.210 --> 23:43.870] Because then... [23:43.870 --> 23:45.650] They will say... [23:45.650 --> 23:46.950] I know that... [23:47.650 --> 23:47.910] Yeah... [23:49.210 --> 23:50.090] I would... [23:50.090 --> 23:50.550] Yeah... [23:50.550 --> 23:51.710] If you would have questions... [23:51.710 --> 23:52.050] Like... [23:52.050 --> 23:52.910] From my... [23:53.550 --> 23:54.030] Oh... [23:54.030 --> 23:54.190] Yeah... [23:54.190 --> 23:55.910] Please come to one of the... [23:58.540 --> 23:59.020] So... [23:59.020 --> 23:59.600] The question was... [24:00.000 --> 24:00.240] That... [24:00.240 --> 24:02.160] Usually when you send a FOIA request... [24:02.160 --> 24:03.360] The reply that you get back... [24:03.360 --> 24:04.820] Is private to you... [24:04.820 --> 24:05.260] And... [24:05.260 --> 24:06.020] If there is like... [24:06.020 --> 24:07.140] A central place... [24:07.140 --> 24:08.380] Where you can... [24:08.380 --> 24:09.540] Publish it... [24:09.540 --> 24:11.380] Like a repository of FOIA request... [24:12.100 --> 24:12.660] I... [24:12.660 --> 24:13.580] I'm not sure if... [24:13.580 --> 24:14.040] MacRock... [24:14.040 --> 24:16.740] Has something like this... [24:16.740 --> 24:17.460] I... [24:17.460 --> 24:18.300] I know there were... [24:18.300 --> 24:19.720] There were some of them... [24:19.720 --> 24:20.900] And usually they pop up... [24:20.900 --> 24:21.580] And then they disappear... [24:22.040 --> 24:22.380] And... [24:22.380 --> 24:23.780] This is why we need things like... [24:23.780 --> 24:24.860] Archive.overgood... [24:24.860 --> 24:25.280] Maybe... [24:25.280 --> 24:26.220] Archive.overgood... [24:26.220 --> 24:27.300] Could have like a... [24:27.300 --> 24:28.860] A place where... [24:28.860 --> 24:30.640] Like I have 15,000 FOIA requests... [24:30.640 --> 24:31.260] I would give... [24:31.260 --> 24:32.540] All of them to them... [24:32.540 --> 24:33.220] Just so... [24:33.220 --> 24:34.320] They live somewhere... [24:34.320 --> 24:35.680] Not in my computer... [24:35.680 --> 24:36.780] And then... [24:36.780 --> 24:38.140] It could be used... [24:38.140 --> 24:38.720] But... [24:38.720 --> 24:39.520] I think... [24:39.520 --> 24:40.220] MacRock... [24:40.220 --> 24:42.100] From what I remember... [24:42.100 --> 24:43.940] Was something like this... [24:43.940 --> 24:44.180] Yeah... [24:44.180 --> 24:46.220] File track and share public records request... [24:47.140 --> 24:48.340] They have... [24:48.340 --> 24:49.520] 140... [24:49.520 --> 24:51.660] 1,000 requests... [24:51.660 --> 24:52.600] Requested... [24:52.600 --> 24:54.220] 24,000 agency... [24:55.160 --> 24:55.740] And... [24:55.740 --> 24:58.020] You can find around 10 million pages... [24:58.020 --> 24:59.240] That there was... [24:59.240 --> 25:00.180] So I would recommend... [25:00.180 --> 25:00.520] Yeah... [25:00.520 --> 25:01.320] This MacRock... [25:01.320 --> 25:01.660] And... [25:01.660 --> 25:03.200] There are other initiatives like this... [25:03.200 --> 25:04.840] That probably exist... [25:04.840 --> 25:05.080] But... [25:05.080 --> 25:06.800] This is the one that... [25:06.800 --> 25:08.520] Comes to mind now... [25:08.520 --> 25:08.880] Thanks... [25:08.880 --> 25:09.520] Good question... [25:10.220 --> 25:10.920] Then... [25:10.920 --> 25:11.440] Thank you...