There is a lot of confident writing about artificial intelligence reading your CV. Almost none of it is based on anybody watching it happen. The usual article asserts that AI is scanning your application, repeats a statistic with no source attached, and moves on to the advice. We got curious about whether any of it was true, and we happened to be in an unusual position to check, because we run the server that the machines request the files from.
So we stopped guessing and read the access log. Every request to every public CV, for one hundred and thirty days.
That last number is the one that stopped us. In April, almost everybody who opened a published CV was a person. Four months later, almost nobody was. The readership of a public CV changed species inside a single summer, and the people who own those CVs had no way of knowing, because none of it shows up in any analytics dashboard they can open.
What we actually logged, and what a public CV is here
A quick explanation of the plumbing, because the result means nothing without it.
When somebody publishes a CV on FreeCV, it gets a public web page a person can read, and alongside it a machine readable version of the same information at a fixed address. That second file is the interesting one. It is not a picture of a document, it is the actual fields: job titles, dates, employers, skills, laid out in a structure that any program can read the same way every time without having to interpret a layout.
Every request to that file gets a log line. The log records which CV was asked for, the timestamp, and the user agent string, which is the short piece of text a program sends to identify itself. Well behaved crawlers say who they are in that string, which is how any of this is knowable. GPTBot announces itself as GPTBot and gives a link to a page explaining what it does. ClaudeBot does the same and includes a contact address.
The window is 11 April to 19 August 2026, which is one hundred and thirty days. In that time the file was requested 9,748 times across 1,838 different published CVs.
One more piece of context that explains why this data is rare rather than clever. Automated agents do not run JavaScript. Google Analytics, and almost every analytics product a normal website uses, works by running a script in the visitor browser. A crawler requests the file, receives it, and leaves, without ever executing that script. The visit is real, the file was served, and the analytics dashboard shows nothing at all.
That single technical detail is why so much of the writing on this subject is speculation. It is not that the authors are lazy. It is that the traffic is genuinely invisible from where most people are standing.
The flip
Here is the whole story in one table. This is the share of requests coming from humans against the share coming from machines, month by month.
| Month | Requests | Human | Machine |
|---|---|---|---|
| April 2026 | 72 | 97.2% | 2.8% |
| May 2026 | 34 | 85.3% | 14.7% |
| June 2026 | 280 | 86.8% | 13.2% |
| July 2026 | 2,058 | 21.5% | 78.5% |
| August 2026 (19 days) | 7,304 | 5.6% | 94.4% |
April, May and June look like a normal small website. A few dozen or a few hundred visits, overwhelmingly from people, with the occasional bot wandering through. Then July happens and the composition inverts completely.
The detail worth holding onto is that human traffic did not fall off a cliff. In absolute terms it went up and then levelled: 70 human requests in April, 243 in June, 442 in July, 412 in the first nineteen days of August. Roughly the same number of actual people, month after month.
What changed is that the machines showed up in volume. Bot requests went from 2 in April to 1,616 in July to 6,892 in the first nineteen days of August. Nobody lost a human audience. The machines simply arrived and became the majority by sheer weight.
Who actually showed up
The user agent string is the interesting part, because it turns a wall of traffic into a list of names. Here is every identifiable crawler in the window, ordered by how many requests it made.
| Agent | Requests | Distinct CVs | Per CV | First seen |
|---|---|---|---|---|
| ClaudeBot (Anthropic) | 1,755 | 1,745 | 1.01 | 4 Jun |
| AhrefsBot (SEO tool) | 1,723 | 1,718 | 1.00 | 7 Jun |
| Meta | 1,655 | 1,363 | 1.21 | 12 May |
| GPTBot (OpenAI) | 1,442 | 1,431 | 1.01 | 26 Apr |
| Bingbot | 1,249 | 965 | 1.29 | 10 May |
| YandexBot | 240 | 212 | 1.13 | 27 Jul |
| Googlebot | 110 | 30 | 3.67 | 22 May |
| OAI-SearchBot (ChatGPT search) | 92 | 60 | 1.53 | 10 Jun |
| PerplexityBot | 50 | 49 | 1.02 | 11 Jun |
| Bytespider (TikTok) | 14 | 1 | 14.00 | 24 Jun |
| Applebot | 10 | 7 | 1.43 | 20 Jun |
| ChatGPT-User (live fetch) | 3 | 3 | 1.00 | 11 Jun |
Counting only the agents that belong to large language model companies, meaning GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot, the total is 3,342 requests across 1,751 distinct CVs. Put plainly, almost every published CV in the window was read by at least one AI system.
Four things in that table are worth pulling out, and one of them contradicts the received wisdom about which crawler is busiest.
ClaudeBot came first, and that is not what happens elsewhere
On the open web, GPTBot is generally described as the heaviest AI crawler by a wide margin. Independent log studies published in 2026 put GPTBot at a median of several thousand requests per site per day, with ClaudeBot at roughly half that and PerplexityBot far behind both.
On CV data specifically, that ordering does not hold. ClaudeBot made 1,755 requests to GPTBot 1,442. Anthropic was also more complete in its coverage, touching 1,745 distinct CVs against 1,431. It arrived later, first appearing on 4 June against GPTBot on 26 April, and still finished ahead.
We are not going to pretend we know why. One site is one site, and the honest reading of a single dataset is that it describes this dataset. But it is a real difference against the published picture, and if you were assuming the AI reading your professional history is most likely to be OpenAI, the log does not support that assumption.
Googlebot reads like a librarian. The AI crawlers ran a census.
This is the finding we did not expect and the one we find most interesting.
Look at the requests per distinct CV column. ClaudeBot 1.01. GPTBot 1.01. PerplexityBot 1.02. Those numbers are almost exactly one, which means these crawlers arrived, took a single copy of each CV, and never came back. Across seventeen hundred CVs, hardly any repeat visits at all.
Googlebot averaged 3.67 requests, across only 30 CVs. It ignored the overwhelming majority of the collection entirely and returned to a small subset again and again.
Those are two completely different jobs. Googlebot maintains an index, which means its work is never finished, because a page it saw last month may have changed and a stale index is a broken product. So it revisits. The AI crawlers were doing something closer to a stocktake: sweep the collection, take one copy of everything, move on.
Bingbot sits between the two at 1.29, which fits, because it is an index that also feeds an assistant. Meta at 1.21 is doing something similar. The pattern is consistent: agents that maintain an index come back, agents that gather material do not.
Gathering outweighs answering by about fifteen to one
OpenAI runs several agents and they do different jobs, which the log separates cleanly.
GPTBot, the agent that collects material, made 1,442 requests. OAI-SearchBot, which fetches pages so ChatGPT can answer a question about something current, made 92. ChatGPT-User, which fires when a person explicitly asks ChatGPT to go and open a particular link, made 3.
So for every single live retrieval, the collecting crawler had already been through roughly fifteen times. The overwhelming majority of AI contact with a published CV is bulk gathering, not somebody asking a question about you right now.
PerplexityBot at 50 requests tells the same story from a different company. Perplexity is built around answering questions with live sources, and its crawler was one of the quietest in the entire log.
We think this is the single most useful correction in the data, because the popular version of this story is that AI recruiters are out there actively querying candidate databases and pulling up your profile. What the log shows is far less exciting and much larger in scale. Your CV is being collected in bulk, along with everybody else, and the live lookups are rare by comparison.
Not everything with a robot name is AI
The second heaviest agent in the entire log is AhrefsBot, at 1,723 requests, which is more than GPTBot managed. AhrefsBot has nothing to do with artificial intelligence. It is a crawler for an SEO toolset, it has been doing this for years, and it is indexing links.
We could have counted it and had a bigger headline. We did not, because the claim we wanted to test was about AI systems specifically, and quietly folding an SEO crawler into that number would have been the kind of thing this article exists to argue against.
Bingbot at 1,249 and YandexBot at 240 got the same treatment. They are search engine crawlers and their presence on a public web page is completely ordinary. Bingbot does feed an assistant as well as an index, which is why it is genuinely ambiguous, and we left it out of the AI subtotal rather than pick the interpretation that made the number look better.
Bytespider deserves a mention for the strangest line in the table. Fourteen requests, all of them to a single CV, which it visited over and over across two months while ignoring the other 1,837. We have no explanation for that and are not going to invent one.
The human page and the machine file are almost the same size
Every published CV here exists twice. There is the page a person looks at, and there is the machine readable file sitting at a fixed address next to it. We log both, so we can put them side by side.
| Version | Requests | Distinct CVs | Read mostly by |
|---|---|---|---|
| The page a person reads | 9,294 | 1,682 | people |
| The machine readable file | 9,748 | 1,838 | machines (87.7%) |
Two nearly identical volumes of traffic, going to two versions of the same information, with completely different audiences on each end. The machine file was requested slightly more often than the human page, and reached slightly more CVs.
We had assumed the structured file would be a rounding error next to the visible page. It is not. It quietly became the busier of the two, and nobody publishing a CV would have any reason to suspect that.
How to check this on your own site
If you run any website at all, you can reproduce this in about ten minutes, and we would rather you checked than took our word for it.
The whole method is: read your server access log, group the lines by user agent, and count. On most Linux servers with an nginx log that is a single line of shell involving cut, sort and uniq. If your site runs behind Cloudflare, the bot analytics panel gives you a version of the same picture without touching a log file. If you use a hosting platform with its own log viewer, filter by user agent and the named crawlers will be visible immediately.
The tokens worth searching for are GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, PerplexityBot, Perplexity-User, Google-Extended, Bytespider, Amazonbot and CCBot. Each of those is a published, documented agent name that the operator has committed to using.
Two warnings from doing it ourselves. First, user agent strings are self reported, so anything can claim to be GPTBot, and a rigorous check means verifying the requesting address against the ranges each operator publishes. We did not do that verification here, which is a real limitation of these numbers and we would rather say so than leave it out. Second, remember to separate the SEO tools and the ordinary search crawlers before you announce an AI number, or you will end up publishing AhrefsBot as artificial intelligence.
Why the same CV as a PDF would have been invisible here
It is worth being clear about what made this measurable at all, because it is also the practical point.
A PDF sitting in an inbox or attached to an application form generates no public request. There is nothing to crawl, no address to fetch, no log line to count. If every CV in this dataset had existed only as a PDF attachment, this entire article would be an empty table, not because the machines are uninterested but because there would have been nothing for them to ask for.
The 9,748 requests exist because the information was published at a fixed address in a form a program could read. That is the whole mechanism. It is not a trick and it does not require any special standing.
Now the important limit, and we want to state it plainly because a lot of people sell the opposite. No mainstream applicant tracking system currently accepts a candidate submitted structured file as a job application. When you apply for a role, you are still uploading a document into a form somebody else built. A machine readable CV does not get you around that and anybody claiming it beats the ATS is overselling.
What it does is make you legible to the other readers: assistants, answer engines, search indexes, and whatever recruiting tools get built on top of them over the next few years. Those readers are demonstrably present, in volume, and growing fast. That is a different claim and a smaller one, and it happens to be true.
So what should you actually do
Four things, in the order we would do them.
Decide about visibility first, honestly. Publishing a CV means publishing it. It becomes readable by recruiters, by crawlers, by your current employer, and by anyone who finds the link. For somebody openly looking for work that is the entire point. If you are job hunting quietly, weigh that properly rather than treating it as a growth tactic. Nothing in this data is worth a conversation you did not want to have.
If you do publish, publish something finished. The AI crawlers took one copy each and did not come back. A CV that was half written on the day it got swept is the version that travelled, and updating it later does not reach back and fix the copy already taken. This is the single most actionable thing in the dataset.
Write for the human reader anyway. The number of humans reading these CVs did not fall. It held steady the entire time and it is still the traffic that leads to an actual conversation about a job. The machines became the majority by arriving in bulk, not by replacing anybody. Optimising away from the person who can hire you, in favour of a crawler that took one copy for a training set, would be a bad trade.
Keep the claims small. Being read is not being hired. What the log supports is that machines are reading published CVs at scale, that this changed in about four weeks over one summer, and that most of it is bulk collection rather than live lookup. Everything past that is somebody guessing, including when it is us.
If you want to see what a machine actually extracts from your current CV, our ATS simulator shows you the fields that survive parsing, and our file format experiment covers what breaks when the same CV is sent as five different file types. For the practical side of publishing a CV that AI systems can read, how to get found by AI recruiters walks through the setup, and how to beat AI resume screeners deals with the screening software you meet when you actually apply.
A note on repeating this
Everything here came from one query against one access log, and we would rather people checked us than believed us. The method is not complicated and any site serving public pages can run it: read your server log, group by user agent, count. You do not need a tool and you certainly do not need us. The reason the result was interesting is not that the technique was clever, it is that the subject matter was CVs and nobody had pointed a log at that question before.
We will run this again in a few months. The most useful thing about a measurement is a second measurement, and if the ratio moves again we would like to be the ones who noticed rather than the ones still quoting a number from last summer.
Frequently asked questions
Do AI bots actually read your CV, or is that just marketing?
They read it, and we can put a number on it. Between 11 April and 19 August 2026 the public CVs published on FreeCV were requested 9,748 times across 1,838 different CVs. 8,552 of those requests came from automated agents, which is 87.7% of everything. Named AI crawlers alone accounted for 3,342 requests across 1,751 distinct CVs. That is not a projection or a survey, it is the access log.
Which AI crawler reads CVs the most?
ClaudeBot, by a small margin, with 1,755 requests across 1,745 distinct CVs. GPTBot was next among the AI crawlers at 1,442 requests across 1,431 CVs. That order is worth noticing because it does not match the general web. Published log studies of ordinary websites in 2026 put GPTBot far out in front as the most aggressive crawler, with ClaudeBot well behind it. On public CV data specifically, the two are close and Anthropic is ahead.
Does ChatGPT read my CV when someone asks it about me?
Sometimes, but far less often than people assume. OpenAI runs separate agents for separate jobs. GPTBot, which gathers material, made 1,442 requests. OAI-SearchBot, which fetches pages to answer live queries, made 92. ChatGPT-User, which fires when a person asks ChatGPT to go and open a specific link, made 3. So for every single time something was fetched to answer a live question, the gathering crawler had already been through roughly fifteen times.
How fast is AI crawling of CVs growing?
Very fast, from almost nothing. In April 2026, 97.2% of the readers of a public CV were human. In May it was 85.3%, in June 86.8%. In July it fell to 21.5%. In the first nineteen days of August it was 5.6%. The share of human readers did not decline gently, it collapsed inside about four weeks, because the crawlers arrived in bulk and human traffic stayed roughly flat in absolute terms.
Why can I not see this in Google Analytics?
Because Google Analytics runs in the browser and automated agents do not run JavaScript. A crawler requests the file, reads it, and leaves without ever executing the tracking code, so the visit never reaches your analytics dashboard. The only place this traffic is visible is the server log. That is the main reason so much writing about AI and CVs is guesswork. Most people writing it genuinely cannot see the thing they are describing.
Does a bot reading my CV mean a recruiter saw it?
No, and we want to be plain about that. A log line proves a request was made and a file was served. It does not prove the content was retained, understood, indexed, surfaced in an answer, or ever put in front of a human being. Anyone selling you the opposite is going beyond what this kind of data can support. What it does establish is that the machines are reading, at scale, which is the part that used to be speculation.
Do the AI crawlers come back and read a CV again?
Mostly not, and this was the most surprising thing in the log. ClaudeBot averaged 1.01 requests per distinct CV. GPTBot averaged 1.01. PerplexityBot averaged 1.02. They arrive, take one copy, and move on. Googlebot behaved completely differently, averaging 3.67 requests across only 30 CVs. The AI crawlers ran a census. Googlebot kept checking a short list.
Should I publish my CV as a public page to get read by AI?
It is the only way any of this happens, because a crawler cannot request a file that is not published. But treat it as a decision about visibility rather than a growth hack. A public CV is public, including to people you did not have in mind, and you should be comfortable with everything on it being readable by anyone. If you are job hunting quietly while employed, that calculation is different from someone openly looking.
Is a machine readable CV better than a PDF for AI?
For a machine, yes, because there is nothing to interpret. A structured file states that a field is your job title, and a PDF contains an arrangement of text that a parser has to guess at. But the honest limit is that no mainstream applicant tracking system currently accepts a candidate submitted JSON file as an application. The value is in being read cleanly by assistants, answer engines and search, not in bypassing the ATS. Anyone claiming JSON beats the ATS is selling something.
Which bots in the log are not AI at all?
A good number, and pretending otherwise would inflate the story. AhrefsBot, an SEO tool, made 1,723 requests, which would have placed it second overall if we had counted it as AI. Bingbot made 1,249 and YandexBot 240, and both are search engine crawlers with a long history that predates any of this. We separated them out because the interesting claim is about AI systems specifically, and mixing an SEO crawler into that number would have made the headline bigger and the finding worse.