# Manveen Singh | automation engineer

The home page of https://manveen.me/ as markdown, in page order, generated from the site's data on every build. Resume: [resume.md](https://manveen.me/resume.md), [resume.json](https://manveen.me/resume.json), [resume.pdf](https://manveen.me/resume.pdf). Everything in one file: [llms-full.txt](https://manveen.me/llms-full.txt).

## Every week has a job that's the same clicks, in the same order.

![Manveen Singh](https://manveen.me/me.jpg)

I make it run by itself, the same way every time.

*Red pen:* nerd word for this: deterministic. Same input, same result, every time.

*Drawing:* A week of the same task: Monday to Friday, copy, paste, double-check, crossed out in red. Runs on its own now. Drawn as 5 rows (mon: copy, paste, double-check; tue: copy, paste, double-check; wed: copy, paste, double-check; thu: copy, paste, double-check; fri: copy, paste, double-check), each crossed out in red, bracketed, with "runs on its own now" written beside them in red.

I spent a year automating lead-finding for an outbound agency, got good at it, got bored of it, and noticed the same missing piece everywhere: nobody measures whether the automation is right. So now I build the thing, and the test for the thing.

Delhi, India. UK working hours are my afternoon and evening, US mornings my evening.

## Running right now · Tender Radar

Government contract notices for cleaning, security and facilities work are spread across several UK websites. I wanted one script to read all of them every morning and sort out which ones each trade should bid on.

*Drawing:* 3 public tender sites feed my script every morning. Each notice is checked for 7 trades: 64 worth a look, 8 worth bidding, out of 3,671 checks. The sites: Find a Tender, Contracts Finder, ProContract.
Drawn as 3 boxes (Find a Tender, Contracts Finder, ProContract) with arrows into a box that says "my script every morning, no one presses go", then a box that says "each notice, checked for 7 trades, 64 worth a look, 8 worth bidding", with "8 worth bidding" circled in red. Under it in red: "↑ 8 out of 3,671 checks were worth bidding on."

*Red pen:* every number here comes from the same run as the bars below

**113** mornings it has started on its own since 4 July 2026.

*Chart:* Last 40 days: 33 finished, 7 failed. Days that failed: 17 Oct, 18 Oct, 19 Oct, 20 Oct, 21 Oct, 22 Oct, 23 Oct.

One bar per day, last 40. Black finished, red failed. Last run: 24 Oct, 09:44 UTC. Read live from GitHub.

*Red pen:* every bar is a morning nobody pressed a button

It sorts for 7 trades, from cleaning and security to pest control, and has 478 notices on file.

Its worst stretch was about three weeks, from 21 July to 11 August, when a data-format change broke the morning run and nothing told me.

- [Watch it work (under 5 min) ↗](https://www.loom.com/share/ed073589208c4e24a7543ba30b9d24dc)
- [See the code ↗](https://github.com/Manveen07/tender-radar-showcase)

## Work, and who vouches for it

### Jobs

#### Outbound, built end to end

At Precise Leads · GTM automation engineer · Nov 2025 → now · remote

Finds the companies worth writing to and the right person at each, then writes emails that only say what the research found.

I built the agency's outbound pipeline. One run sorted 34,044 companies in four days, and every yes came with a quote from the company's own website. Each draft is checked claim by claim against that research, and when someone spots a new kind of mistake, it becomes a check that runs before anything goes out. I also built the Slack bot that buys and warms up the sending inboxes, the tool that turns a client's sequence into a ready campaign, and a daily scan of five sales-tool Slack communities that passes likely buyers to the sales team.

- **0** contradicted claims in 300 drafted emails
- **34,044** companies sorted in four days

built with python, typescript, clay, smartlead, n8n

#### Resume screening, automated

At Caprae Capital Partners · Machine Learning Intern · Aug 2025 → Jan 2026 · US, remote

Reads incoming resumes, ranks the candidates, and books the interviews.

A recruiting team was spending about ten hours a week reading resumes by hand. The system reads each one, scores it against the role, writes the shortlist and schedules the calls.

- **10h → 3h** screening per week
- **5 → 1.5** days to a shortlist

built with python, embeddings, slack

> “…produced clear and maintainable technical documentation, and effectively communicated complex engineering concepts to non-technical stakeholders.”
>
> Zackary Beckham, Chief Operations Officer, Caprae Capital Partners
> From a signed letter of recommendation, 11 Jan 2026. Full letter available on request.

*Red pen:* the bit that matters if you don't write code

### Built on my own

#### leadlens

My own project

Reads a job posting and tells you whether the AI role is real, dressed up, or a scam.

Out of 72 postings I checked by hand:

- **9** caught
- **2** missed
- **0** false alarms (circled in red)
- **61** left alone

built with python, gemini, pydantic

- [How I tested it →](https://manveen.me/writing/schema-as-eval-spec.md)

*Red pen:* it once scored 100%, because my own notes leaked the answers. This is the score after I took them out.

#### PresentAI

My own project

Type a topic, get a first-draft slide deck you can edit.

Gemini writes the outline first, then the slides, and Pexels adds a photo to each. You finish the deck in a drag-and-drop editor with 25 themes. Its AI step needs a model update before it runs again.

![PresentAI's home page](https://manveen.me/work/presentai.png)

built with next.js, postgres

- [See the code ↗](https://github.com/Manveen07/PresentAI)

B.Tech Computer Science, MSIT Delhi, 2026. [Full resume ↗](https://manveen.me/resume.pdf) (as text: [resume.md](https://manveen.me/resume.md))

## Writing

### [How I test an n8n workflow before it goes live](https://manveen.me/writing/149-tests-for-a-few-slack-buttons.md)

My task tracker is a few Slack buttons and two n8n workflows. It has 149 tests, because of one week of green ticks.

### [Marking the AI's homework](https://manveen.me/writing/marking-the-ais-homework.md)

Can an AI fill in a price quote from an engineering drawing? I answered 23 real drawings myself first, then marked its work.

### [Things AI got confidently wrong](https://manveen.me/writing/things-ai-got-confidently-wrong.md)

Each one came back sounding sure of itself, and each one changed what I check.

[All writing →](https://manveen.me/writing.md)

## How working with me goes

On the first call you tell me what wastes the most time. If it isn't a real problem, I'll say so and we won't build it.

1. If it is, I quote a fixed price for a pilot before any work starts.
2. The pilot runs on a month of your real requests. Every miss gets logged, and you see the list, not just a score.
3. If you keep it, a monthly fee covers me looking after it.

*Drawing:* A call about what wastes your time, then a fixed quote, then a month on your real requests with every miss logged, then you decide whether to keep it. Drawn as a timeline: 1 · a call: you tell me what wastes the most time (in grey: not a real problem? I'll say so); 2 · a fixed quote: before any work starts; 3 · a month, for real: on your actual requests every miss logged, you see the list; 4 · you decide: keep it: a monthly fee, I look after it. The red pen circles "every miss logged, you see the list".

*Red pen:* you see every miss, not just a score

Tell me one task you repeat every week. I'll reply within a day and say whether it can run by itself.

Email: [manveen9650@gmail.com](mailto:manveen9650@gmail.com)

[or pick a time on my calendar](https://calendly.com/manveen9650/30min)

---

**Off the clock:** Hunter x Hunter theory videos, Peacemaker, Elden Ring, Sekiro, Doom, The Weeknd.

Hiring? [Resume](https://manveen.me/resume.pdf) · [LinkedIn](https://www.linkedin.com/in/manveen-singh-b9b7672a0) · [GitHub](https://github.com/Manveen07) · [Writing](https://manveen.me/writing.md) · [manveen9650@gmail.com](mailto:manveen9650@gmail.com)

Delhi, India · © 2026 Manveen Singh
