const GAPCHECK = [ ['Muster roll and wage register', 'Whether Forms 12, 13 and 14 exist for the last three months, and whether they reconcile to what was actually paid.'], ['Wage revision arrears', 'Dearness allowance changes on 1 January and 1 July and is notified late, with retrospective effect. We check whether the revision was applied and arrears paid.'], ['PF and ESIC', 'Last three challans against headcount on site. Workers who worked a single day still belong in the return.'], ['BOCW', 'Registration status, cess position and whether receipts are on file. This is the one that holds up an occupancy certificate.'], ['CLRA records', 'Form XII and XIII for your principal-employer file, and licences held by any contractor on site.'], ['Worker documents', 'ID, bank, UAN and ESIC IP coverage across the current headcount, and what proportion is missing or expired.'], ]; function ContactPage() { const [sent, setSent] = useState(false); const [mode, setMode] = useState('gap'); const [role, setRole] = useState('Builder / developer'); const [f, setF] = useState({ company: '', name: '', mobile: '', email: '', city: 'Pune city', sites: '', workers: 'Under 25', handler: 'Nobody in particular', week: 'This week', notes: '', consent: false }); const [busy, setBusy] = useState(false); const set = k => e => setF(p => ({ ...p, [k]: e.target.type === 'checkbox' ? e.target.checked : e.target.value })); const gap = mode === 'gap'; const send = async () => { setBusy(true); try { await LTData.submit('leads', { kind: gap ? 'gap' : 'enquiry', name: f.name, company: f.company, role_type: role, mobile: f.mobile, email: f.email, city: f.city, sites: gap ? f.sites : '', workers: gap ? f.workers : '', message: gap ? [f.notes, 'Handled today by: ' + f.handler, 'Preferred week: ' + f.week].filter(Boolean).join(' \u00b7 ') : f.notes, consent: !!f.consent, status: 'New', }); } catch (e) { console.warn(e); } setBusy(false); setSent(true); }; return (
{sent ? (
Received

{gap ? 'We will confirm a slot within one working day.' : 'Thanks — we will come back within one working day.'}

{gap ? 'The visit takes 45 minutes at your site office. Bring the muster roll and the last three PF and ESIC challans if you have them — if you do not, that is itself a finding. Your note follows within 48 hours of the visit.' : 'If your city is not open yet we will tell you when it is scheduled, and you can register in the meantime.'}

) : (

{gap ? 'Book a compliance gap check' : 'Send us an enquiry'}

Fields marked * are required.

{gap ? (
) : (
)} {gap &&

Free of charge. The findings note is yours to keep whether or not you engage us.

}
)}
What we look at

Six things, 45 minutes, one site.

{GAPCHECK.map(([t, b]) =>
{t}
{b}
)}
Reach us
{[['map-pin', 'Office', '101, First Floor, Ganesha Building, Phase 1, Rajiv Gandhi Infotech Park, Hinjawadi, Maharashtra 411057'], ['phone', 'Phone', '+91 73979 13806'], ['mail', 'Email', 'support@labourtech.in'], ['clock', 'Hours', 'Monday to Saturday, 9:30am – 6:30pm IST']].map(([ic, t, v]) => (
{t}{v}
))}

Labour Tech · GSTIN 27GCDPS7749F1Z0

Already decided?

Contractors can register and subscribe without talking to us. Retainers start with a gap check so the scope is priced against what your site actually needs.

{[['Within 48 hours', 'A two-page findings note: what is in place, what is missing, and what the exposure is on that site. Written for your finance head, not for us.'], ['On page two', 'A retainer quote for that site if you want one — seats by trade, scope, and the monthly figure. No obligation to take it.'], ['If you do nothing', 'The note is still yours. Several things on it you can fix yourself in a week, and we will say which.']].map(([t, b]) => (

{t}

{b}

))}
The gap check is an observation-based review, not a statutory audit or legal opinion. It does not create a compliance certification and does not transfer liability. Where something needs a lawyer or your CA, we will say so.
); } LTMount('contact', );