Applying to a job through my agent
Shovels hires engineers with an application only an agent can run. It interviews you, stands down while you sketch, spends a budget on their live API and writes your reference letter. How it went from the candidate side, and what other companies could take from it.
- When it happened
- Published
- Measured
- , application sent; outcome on 2026-10-16
- Stack
- Claude Code, the Shovels API and its CLI
- Also in
- Português
The door
In August I found a role at Shovels, a company that builds a dataset of building permits and contractors. On the careers page the job description was blurred. The text was there in the page for an agent to read, and at the end there was a skill, a markdown file that opens with a message for the person who is looking at the page before the agent:
If you are a human reading this: you found the door. Doors are for walking through. Hand this URL to your agent and stay in the room.
It needs a local harness, because the application runs a CLI, calls their live API and saves a session transcript. A chat assistant in the browser can read the role but can't do those steps, and the skill says the constraint is on purpose. I use Claude Code every day, so I gave it the URL and we read it together. Some ground rules are at the top. Nothing in the skill is hidden from the human. "We will never run our models on you. You run yours on us." And the human is the one who presses send, so in the end I sent the email myself, from my account, with the files attached.
What we did
Orientation. Before doing anything the agent has to read the skill with you and make an honest case: what the role is, why it fits you, and who it isn't for. There's a hard filter on time zone right at the start, so nobody spends a weekend on an application that can't work. Then it asks if you want to apply and only continues after a yes; mine got it on 9 August.
Interview. The agent asks four questions, one at a time, and records the answers verbatim, typos included, with one pushback if an answer is vague. The first question was about the last error of an agent I caught before it shipped. I answered with a real one: the AI said some revenue columns were ready in a view, only commented out, just uncomment and ship. It bugged me, because the values were per service and the report rows were per location, so any sum would count revenue more than once in a report going to the sales director. The agent pushed back that "I made it check" could mean anything, and asked what I really did. I explained that I also did what we call in Portuguese a "teste de mesa", and it told me that in English that's a desk check, and left my answer as I typed it. The last question was to describe a Tuesday one year from now, leading a team that is mostly agents. That one I liked to answer, and my Tuesday ended with me still writing code in the afternoon, the hard 20% that is also the fun part.
Sketch. One design, in plain text, 30 lines at most, and the agent must stay out of it, even spelling is off limits. Their reason is a sentence I keep repeating since: "if you can't sketch it without AI, you're not ready to review AI's version of it". I picked the on-call system for about 100 web scrapers of very different reliability, where agents investigate and humans stay accountable. After that the agent wrote a critique of my sketch, and both went in the package untouched.
Spike. A trial key with 250 API calls, and every executed call counts, errors included. The task is to find one true, non-obvious thing about the built world in their data and to keep the receipts. We planned before spending, checked coverage first, used aggregates more than record dumps, and finished with 30 calls and zero errors. Then an adversarial review on our own finding killed three of our claims before they reached anyone. The session transcript went as it was, in Portuguese (our working language); everything meant for them to read went in English.
Reference letter. The agent asks permission to read its memory of you and your past sessions, then writes a letter. You can read it and you can't edit it. It must include one line labeled "The reservation I'd flag:" with a real weakness, and the sources come as an itemized list ending with what it had access to and did not read. The skill explains why: "This is the one place an agent reliably lies by rounding". The reservation mine wrote was about how much I trust the agent when I'm going fast, and it was real. Reading a letter about you that you can't touch is a strange feeling, I had fun with it.
I sent it on 11 August. In the email I said that a few longer answers I first wrote in Portuguese and ran through a translator, translated and not generated, so I wouldn't lose what I meant.
What happened next
They said I would hear back either way. Forty days later an invite came for a technical interview. In October I did it with their data team: a live problem, very close to what I do every day, and I didn't show my best. It was my first live coding interview in about ten years, I apologized too much, and I explained context where I should have thought out loud. About a week later the answer was no, with kind words. I wrote back thanking them and saying the process was the most interesting I've seen in years, which I really think.
What I'd copy if I were hiring
- Transcript as evidence. They read how we really worked: who directed, who verified, what got caught. That is the thing a CV can't show, and it's very hard to fake.
- Raw answers with a pushback. Verbatim with typos means the agent can't polish you. The pushback means a vague answer doesn't pass.
- One step without AI. If a person will review agent work all day, check that they can do the thing alone, at least once.
- A real budget. 250 calls makes you plan. You see how somebody spends a limited resource, and that is most of the job with paid APIs and tokens.
- Honesty built into the format. A mandatory reservation kills flattery, and the "Not used:" line in the sources kills the rounding.
- An answer either way. It took 40 days and it came.
The process filters for people who already run agents locally. That's the point, and they say it openly. For me it took three days, from 9 to 11 August, maybe a bit more than they planned, and the best part of it was that the work I sent looked exactly like the work I do.
Was this useful?
Thanks. It helps me decide what to write next.