Unadhi Guides

CSR funding outreach sheet for NGOs: each company's csr@ inbox and CSR policy page, with your CSR-1 details, ask, date sent and follow-up

Updated 23 Oct 2026 · Disclosure: the contact scraper linked below is an Unadhi product on the Apify Store. This guide is free, and the sheet works with a CSV from any tool or with inboxes copied by hand. Current Apify pricing is only on the Store page. This page has no affiliate links and nobody paid to be mentioned. This is general information, not legal advice.

What you get: one Google Sheet for an NGO, trust or section 8 company asking companies for CSR funding, with one row per company: the csr@ (or general) inbox the company publishes on its own website, the page it was found on, the company's CSR policy page, the focus areas its policy names, your project and amount asked, the date you sent, an automatic follow-up date, the reply, and a Next step column (find inbox / send now / follow up today / wait / answer them / meeting / closed). A summary tab counts sent, replies and meetings, and holds your own CSR-1, 12A and 80G details so every letter quotes them. Formulas are below. The example rows are made up.

The finished sheet

companies tab (example rows are made up)

CompanyDomainCSR inboxFound onTheir focus (from policy)Our projectAsk (₹)Sent onFollow up onReplyNext step
Example Steel Ltdexample-steel.incsr@example-steel.inexample-steel.in/csreducation, healthEvening reading classes, 3 villages4,50,0002026-10-092026-10-23follow up today
Sample Chemicals Ltdsample-chem.cominfo@sample-chem.comsample-chem.com/contact-uswater, sanitationSchool toilet repairs2,80,0002026-10-202026-11-03wait
Demo Software Pvt Ltddemo-software.co.incsr.india@demo-software.co.indemo-software.co.in/sustainabilityskills, womenBasic computer course for women3,00,0002026-10-052026-10-19meetingmeeting
Test Foods Ltdtest-foods.innutritionMid-morning meals, 2 schools5,00,000find inbox

Who this is for

The slow part is not the proposal. It is finding, for each company, the inbox it actually reads for CSR requests and what its CSR policy says it funds, then remembering who you wrote to and when to follow up. This sheet does that in one place.

Before you write: is the company covered, and are you eligible?

Put your CSR-1 registration number, 12A and 80G details and the year you started this kind of work on the summary tab (Step 5). A company's CSR team will usually ask for them first.

Step 1: list the companies (tab list)

Columns: A company, B website, D project, E ask. In B put the company's CSR, sustainability or foundation page on its own site if it has one, otherwise its homepage. In C2, turn the websites into domains:

=ARRAYFORMULA(IF(B2:B="",,LOWER(REGEXREPLACE(REGEXREPLACE(TRIM(B2:B),"^(https?://)?(www\.)?",""),"[/?#].*$",""))))

That turns https://www.Example-Steel.in/csr into example-steel.in, the same form the scraper writes in its domain field, so it is the key the formulas join on. While you are on the CSR page, note the focus areas the policy names (education, health, water...) in column F; that is what you match your project to.

Step 2: get each company's published inbox (tab scrape)

With the contact scraper

Open the Website Contact Scraper: Emails, Phones & WhatsApp on the Apify Store, paste column B into Websites or domains (plain list) and use this input (JSON tab):

{
  "urls": ["example-steel.in/csr", "sample-chem.com", "demo-software.co.in/sustainability"],
  "maxPagesPerSite": 4,
  "defaultCountry": "IN",
  "checkEmailMx": true,
  "includePersonalEmails": false,
  "includePersonProfiles": false
}

When the run finishes, export the dataset as CSV, then in your sheet use File → Import → Upload, "Insert new sheet", and name the tab scrape. Keep the headers. Apify flattens lists into numbered columns such as emails/0/email, emails/0/foundOn, emails/1/email, phones/0/phone and socials/linkedin/0/url; the formulas find them by header name, so column order does not matter.

Free, without the scraper

Make a scrape tab with the headers domain, status, emails/0/email, emails/0/foundOn, emails/1/email, emails/1/foundOn, emails/2/email and phones/0/phone. Open each company's CSR and contact pages, type what you see, and put ok in status. Slower, but the same formulas work.

Step 3: the companies tab

Company =list!A2, Domain =list!C2, Their focus =list!F2, Our project =list!D2, Ask =list!E2. Every contact column uses one lookup pattern; change only the header in quotes. Put the first three emails found in hidden helper columns N, O and P:

=IFERROR(INDEX(scrape!$A:$ZZ,
  MATCH($B2, INDEX(scrape!$A:$ZZ, 0, MATCH("domain", scrape!$1:$1, 0)), 0),
  MATCH("emails/0/email", scrape!$1:$1, 0)), "")

with emails/1/email in O and emails/2/email in P. Then the CSR inbox in C2 prefers a csr inbox, then corporate, then the first address found:

=IFERROR(INDEX(FILTER({N2,O2,P2}, REGEXMATCH({N2,O2,P2}, "(?i)^csr[.@-]")), 1),
 IFERROR(INDEX(FILTER({N2,O2,P2}, REGEXMATCH({N2,O2,P2}, "(?i)^corporate[.@-]")), 1), N2))

Found on in D2 uses the same lookup with emails/0/foundOn, so you can open the page and check the inbox is meant for requests like yours. If the inbox is only info@, put "CSR proposal" at the start of the subject line so it is passed on. If the CSR page asks for proposals through a form or portal, use that and note it in Reply.

Step 4: dates, reply and Next step

Type Sent on (H) when you send. Follow up on in I2 is fourteen days later; change the number to suit:

=IF(H2="", "", H2+14)

Column J Reply: blank, replied, meeting, no or next year. Column M Followed up: the date you sent the follow-up. Next step in K2:

=IF(A2="", "",
 IF(J2="meeting", "meeting",
 IF(J2="no", "closed",
 IF(J2="next year", "closed: ask again next year",
 IF(J2="replied", "answer them",
 IF(C2="", "find inbox",
 IF(H2="", "send now",
 IF(M2<>"", IF(TODAY()-M2>=21, "closed: no reply", "wait"),
 IF(TODAY()>=I2, "follow up today", "wait")))))))))

One follow-up is enough. After that the row closes by itself, so the list shows only the companies worth your time this week. Sort or filter by Next step each morning.

Step 5: the summary tab

Sent:            =COUNTIF(companies!H:H, "<>")-1
Sent this week:  =COUNTIFS(companies!H:H, ">="&TODAY()-WEEKDAY(TODAY(),2)+1)
Replied:         =COUNTIF(companies!J:J, "replied")+COUNTIF(companies!J:J, "meeting")
Meetings:        =COUNTIF(companies!J:J, "meeting")
Follow up today: =COUNTIF(companies!K:K, "follow up today")
Total asked (sent): =SUMIFS(companies!G:G, companies!H:H, "<>")

Below the counts, keep your own details in fixed cells: CSR-1 registration number, 12A registration, 80G approval, PAN, the year you started this kind of work, and the link to your last audited accounts. The letter below pulls them in, so they are the same in every proposal.

What the status values mean

statusMeaningWhat to do
okSite readUse the inbox found, or check Found on if it looks wrong
blocked-by-robotsThe site asks bots not to crawlOpen its CSR or contact page yourself
blocked-by-termsThe site's terms forbid scraping (clause quoted in error)Same
blocked-by-tos-listThe "website" is a platform page such as LinkedIn or FacebookFind the company's own site
blocked-by-site, rate-limited, failedHTTP 401/403/429, too many requests, or unreachableRetry later

The first letter and the follow-up

Subject: CSR proposal: [project] in [district], ₹[ask], [your NGO]

Hello,

Your CSR policy lists [focus area from column F]. We run [one line on
the project] in [place] for [who benefits, how many], and would like
[company] to fund [what exactly] for [period] at ₹[ask].

About us: [legal form: trust / society / section 8 company],
CSR-1 registration [number], 12A [number], 80G [number],
working on [this kind of work] since [year].

A two-page proposal and budget are attached. Could we have
20 minutes with your CSR team in the next two weeks?

Thank you,
[Name], [role], [NGO], [phone]
Follow-up, same thread, about two weeks later:

Hello, a short follow-up on our CSR proposal below for [project].
If this year's CSR budget is already committed, we would be glad
to know when you plan next year's projects.
Thank you, [Name]

Check before you send

Partner programme opening soon

Partner programme opening soon: join the free waitlist. Planned terms are 50% of each referred sale (75% once you have 5+ paying customers), single level, paid through Gumroad only from revenue received.

Sources

Related

← All guides

Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.